From 15c042f2c044f50297b224fe47eb48d3be6e88f9 Mon Sep 17 00:00:00 2001 From: wjunLu Date: Tue, 19 Mar 2024 10:19:07 +0800 Subject: [PATCH] Add grafana-agent docker image. --- grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile | 14 +++ grafana-agent/0.40.2/22.03-lts-sp3/agent.yaml | 17 ++++ grafana-agent/README.md | 30 ++++++ grafana-agent/doc/image-info.yml | 88 ++++++++++++++++++ grafana-agent/doc/picture/logo.png | Bin 0 -> 24929 bytes grafana-agent/meta.yml | 2 + 6 files changed, 151 insertions(+) create mode 100644 grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile create mode 100644 grafana-agent/0.40.2/22.03-lts-sp3/agent.yaml create mode 100644 grafana-agent/README.md create mode 100644 grafana-agent/doc/image-info.yml create mode 100644 grafana-agent/doc/picture/logo.png create mode 100644 grafana-agent/meta.yml diff --git a/grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile b/grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile new file mode 100644 index 0000000..c93d9a9 --- /dev/null +++ b/grafana-agent/0.40.2/22.03-lts-sp3/Dockerfile @@ -0,0 +1,14 @@ +ARG BASE=openeuler/openeuler:22.03-lts-sp3 +FROM ${BASE} + +ARG TARGETARCH +ARG VERSION=0.40.2 + +RUN curl -fSL --output grafana-agent.rpm https://github.com/grafana/agent/releases/download/v${VERSION}/grafana-agent-${VERSION}-1.${TARGETARCH}.rpm && \ + yum -y install grafana-agent.rpm && \ + rm -rf grafana-agent.rpm + +COPY agent.yaml /etc/agent/agent.yaml + +ENTRYPOINT ["grafana-agent"] +CMD ["--config.file=/etc/agent/agent.yaml", "--metrics.wal-directory=/etc/agent/data"] diff --git a/grafana-agent/0.40.2/22.03-lts-sp3/agent.yaml b/grafana-agent/0.40.2/22.03-lts-sp3/agent.yaml new file mode 100644 index 0000000..5aae63d --- /dev/null +++ b/grafana-agent/0.40.2/22.03-lts-sp3/agent.yaml @@ -0,0 +1,17 @@ +server: + log_level: info + +metrics: + global: + scrape_interval: 1m + configs: + - name: test + host_filter: false + scrape_configs: + - job_name: local_scrape + static_configs: + - targets: ['127.0.0.1:12345'] + labels: + cluster: 'localhost' + remote_write: + - url: http://localhost:9009/api/prom/push \ No newline at end of file diff --git a/grafana-agent/README.md b/grafana-agent/README.md new file mode 100644 index 0000000..72e7054 --- /dev/null +++ b/grafana-agent/README.md @@ -0,0 +1,30 @@ +# Grafana-agent + +# Quick reference + +- The official Grafana-agent docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative) + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community) + +# Build reference + +1. Build images and push: +```shell +docker buildx build -t "openeuler/grafana-agent:$TAG" --platform linux/amd64,linux/arm64 . --push +``` + +We are using `buildx` in here to generate multi-arch images, see more in [Docker Buildx](https://docs.docker.com/buildx/working-with-buildx/) + +2. Run: +```shell +docker run -d openeuler/grafana-agent:$TAG +``` + +# Supported tags and respective Dockerfile links + +- 0.40.2-oe2203sp3: grafana-agent v0.40.2, openEuler 22.03-LTS-SP3 + +## Operating System +Linux/Unix, ARM64 or x86-64 architecture. diff --git a/grafana-agent/doc/image-info.yml b/grafana-agent/doc/image-info.yml new file mode 100644 index 0000000..8870728 --- /dev/null +++ b/grafana-agent/doc/image-info.yml @@ -0,0 +1,88 @@ +name: grafana-agent +category: cloud +description: Grafana Agent是一个供应商中立的、包含电池的遥测收集器,其配置灵感来自Terraform。它被设计为灵活、高性能,并与Prometheus和OpenTelemetry等多个生态系统兼容。 +environment: " + 本应用以容器镜像的方式供用户使用,运行于预置docker的Linux环境。Docker的推荐安装方式如下: + ## apt安装 + ### 1.更新系统软件包依赖 + ``` + sudo spt update + sudo apt install ca-certificates curl gnupg lsb-release + ``` + ### 2.添加Docker官方GPG密钥 + ``` + sudo mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg + sudo chmod a+r /etc/apt/keyrings/docker.gpg + ``` + ### 3.添加Docker官方APT源 + ``` + echo \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + ``` + ### 4.再次更新软件包索引 + ``` + sudo apt update + ``` + ### 5.安装Docker + ``` + sudo apt install docker-ce docker-ce-cli containerd.io + ``` + + ## yum安装 + ### 1.安装yum-utils + ``` + sudo yum install -y yum-utils + ``` + ### 2.添加Docker源 + ``` + sudo yum-config-manager \ + > --add-repo \ + > https://download.docker.com/linux/centos/docker-ce.repo + ``` + ### 3.安装Docker + ``` + sudo yum install -y docker-ce docker-ce-cli containerd.io + ``` + + 注意,在openEuler环境安装docker时,可执行如下命令一键安装 + ``` + yum install -y docker + ``` + + ## 脚本安装 + ### 1.下载安装脚本 + ``` + curl -fsSL https://get.docker.com -o get-docker.sh + ``` + ### 2.使用root权限执行脚本 + ``` + sudo sh get-docker.sh + ``` + 使用脚本安装方式时,如果用户要指定安装的docker版本,需要自行修改`get-docker.sh`的源码内容。 + + ## 验证 + ``` + sudo docker run hello-world + ``` + " +download: " + 获取容器镜像 + ``` + docker pull openeuler/grafana-agent:{TAG} + ``` + " +install: " + 启动容器 + ``` + docker run --name grafana-agent openeuler/grafana-agent:{TAG} + ``` + 用户可根据自身需求,自定义启动选项。 + " +license: MIT license +similar_packages: + - Telegraf: Telegraf是一个开源的代理程序,用于从各种数据源收集指标数据。它支持多种输入和输出插件,可以从系统、应用程序、数据库等收集数据,并将其发送到不同的目标,如InfluxDB、Prometheus等。 + - Collectd: collectd是一个轻量级的系统统计数据收集守护程序,用于收集各种系统和应用程序指标。它支持多个插件和输出目标,可以将数据发送到后端存储,如Graphite、InfluxDB等。 + - StatsD: StatsD是一个用于应用程序性能监测的守护程序。它接收应用程序发送的指标数据,并进行聚合、计数和计时,然后将数据转发给后端存储,如Graphite、InfluxDB等。 + - Prometheus Node Exporter: Prometheus Node Exporter是一个用于收集系统级别指标数据的开源软件。它可以收集CPU使用率、内存使用量、磁盘空间、网络流量等系统指标,并将其公开为Prometheus可以抓取的格式。 +dependency: + - N/A \ No newline at end of file diff --git a/grafana-agent/doc/picture/logo.png b/grafana-agent/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..44ec568c0cd443f5767d2953f0a298780a02994f GIT binary patch literal 24929 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 c(8ovD*jM!lo5R)=(KpvXpJ^yo%UiwuKN