普罗米修斯并不是在刮统计数据和出口商



我对docker、k6、Prometheus、statds非常陌生。

场景-创建一个docker堆肥文件,该文件将运行create

  1. K6负载测试,具有自定义指标。将结果发送到Statsd Exporter(想法是使用Prometheus作为数据库,但由于K6不支持直接支持Prometheus,我使用Statsd。如果有人有比这更简单的解决方案,请随时提出建议。(
  2. 普罗米修斯将从国家统计局出口商那里获得结果
  3. Grafana-它将连接到普罗米修斯并显示可视化

但是会生成Statsd度量,包括我的自定义度量。但是普罗米修斯并没有刮到它。普罗米修斯的工作没有被列入状态->普罗米修斯的目标页面。

以下是我的docker撰写文件。

version: '3.7'
services:
statsdex:
image: "prom/statsd-exporter:latest"
container_name: statsd_exporter
ports:
- 9102:9102
volumes:
- ./loadtesting/statsd_mapping.yml:/tmp/statsd_mapping.yml 
k6:
image: "loadimpact/k6:0.32.0"
command: ["run", "/scripts/K6-script.js","-q", "-o","statsd"]
depends_on:
- statsdex
environment:
K6_STATSD_ADDR: "statsdex:9125"
K6_STATSD_ENABLE_TAGS: "true"
K6_STATSD_PUSH_INTERVAL: 1s
#K6_STATSD_BUFFER_SIZE: 7000
volumes:
- "./loadtesting:/scripts"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_BASIC_ENABLED=false      
- GF_INSTALL_PLUGINS=michaeldmoore-scatter-panel
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana/dashboards:/etc/grafana/dashboards/
- ./grafana/datasources:/etc/grafana/datasources/
- ./grafana:/etc/grafana/provisioning/
prometheus:
image: prom/prometheus
container_name: prometheus
ports:
- 9090:9090
volumes:
- ./loadtesting/prometheus.yml:/etc/prometheus/prometheus.yml 
volumes:
grafana-storage:
external: true

以下是我的Prometheus yaml文件,我认为该文件正试图从statds导出器输出结果的同一端口获取数据。(我在普罗米修斯中没有看到这份工作。我也试着给出ip地址localhost。(

scrape_configs:
- job_name: 'statsd_exporter'
static_configs:
- targets: ['statsd_exporter:9102']

以下是K6映射的statds导出器的映射文件。

defaults:
observer_type: histogram
mappings:
- match: "k6.*"
name: "k6_${1}"
- match: "k6.check.*.*.*"
name: "k6_check"
labels:
http_name: "$1"
check_name: "$2"
outcome: "$3"

当我使用命令docker组合时,我可以看到

  1. 在docker桌面中,所有四个服务都已启动并运行。K6在脚本执行完成后退出
  2. 我可以在http://localhost:9102/metrics
  3. 我可以看到普罗米修斯被安置在http://localhost:9090.但在状态->目标部分我没有看到Statsd Exporter。我认为这就是问题所在。普罗米修斯和挪威国家统计局的出口商没有相互交谈。这可能是我无法查询普罗米修斯的statsd导出器中的自定义度量的原因

以下是普罗米修斯中的配置。

global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
alerting:
alertmanagers:
- follow_redirects: true
scheme: http
timeout: 10s
api_version: v2
static_configs:
- targets: []
scrape_configs:
- job_name: prometheus
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
follow_redirects: true
static_configs:
- targets:
- localhost:9090
- job_name: wmi_exporter
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
follow_redirects: true
static_configs:
- targets:
- localhost:9182

有人能帮我弄清楚到底是什么问题吗?

我发现了问题并找到了解决方案。

普罗米修斯和斯塔斯德克斯没有说话。普罗米修斯在刮自己,而不是刮statsdex。我更改了我为普罗米修斯编写的docker,并提供了普罗米修斯yml文件的详细信息。我把普罗米修斯的档案放在指定的确切位置。因此promethus从配置文件中读取。

普罗米修斯:图片:prom/prometheus命令:-'--config.file=/etc/prometheus/prometheus.yml'容器名称:普罗米修斯端口:-9090:9090
卷:
-/普罗米修斯-普罗米修斯数据:/prometheus

在prometheus-yml文件中,我给出了ip adderes,而不是服务的名称。

scrape_configs:

  • 作业名称:'statsdex'metrics_path:/metrics
    静态配置:
    • 目标:['x.x.x.1:9102']

它就像一个符咒。

最新更新