Прометей не соскребает статистику d экспортер

#docker-compose #mapping #prometheus #statsd #k6

Вопрос:

Я совершенно новичок в docker,k6, Prometheus,statds.

Сценарий — Создайте файл компоста docker, который будет запускать создание

  1. Нагрузочный тест K6, который имеет пользовательские показатели. Отправьте результат экспортеру Statsd (идея состоит в том, чтобы использовать Prometheus в качестве базы данных, но поскольку K6 не поддерживает прямую поддержку Prometheus, я использую Statsd. Если у кого-нибудь есть более простое решение, чем это, пожалуйста, не стесняйтесь предлагать.).
  2. Прометей, который соскребет результаты с экспортера статсд.
  3. Графана — которая соединится с Прометеем и покажет визуализацию.

Но что происходит, так это то, что метрики Statsd генерируются, включая мои пользовательские метрики. Но «Прометей» не соскабливает его. Задание prometheus не отображается на странице Статус-gt;Цели на prometheus.

Ниже приведен мой файл docker-compose.

 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-адрес, локальный хост тоже.)

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

Following is the mapping file for statds exporter for K6 mapping.

 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"  

When I use the command docker compose up I can see

  1. In the docker desktop that all the four services are up and running. K6 exits after the script execution is done.
  2. I can see the Statsd Metrics at http://localhost:9102/metrics
  3. Я вижу, что «Прометей» установлен в http://localhost:9090. Но в разделе Статус-gt;Цели я не вижу экспортера Statsd. Вот в чем, я думаю, проблема. Прометей и Статс-экспортер не разговаривают друг с другом. Это может быть причиной, по которой я не могу запросить пользовательские показатели, которые находятся в экспортере statsd от Prometheus.

Ниже приведена конфигурация в Prometheus.

 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  

Может ли кто-нибудь помочь мне понять, в чем именно проблема?

Комментарии:

1. Я не помню OTOH, но создается ли DNS-сервер с statsdex помощью (имя службы) или statsd_exporter (имя контейнера)? Или то и другое? Вы используете statsd_exporter конфигурацию Prometheus и, возможно, захотите переключить ее на statsdex

2. Возможно, вам захочется проверить журналы на наличие ошибок docker-compose logs statsdex или ... prometheus

Ответ №1:

Я разобрался в проблеме и пришел к решению.

прометей и статсдекс не разговаривали друг с другом. «Прометей» выскребал сам себя вместо «статсдекса». Я изменил свою композицию docker для prometheus и предоставил сведения о файле prometheus yml. Я хранил файл «прометей» в указанном точном месте. итак, прометей читает из конфигурационного файла.

прометей: изображение: прометей/прометей команда: — ‘—config.file=/etc/прометей/прометей.имя контейнера yml: прометей порты: — 9090:9090
тома:
— ./прометей:/и т. Д./прометей — прометей-данные:/прометей

В файле prometheus yml я указал ip-адрес вместо имени службы.

scrape_configs:

  • имя задания: ‘statsdex’ путь к метрикам: /метрики
    static_configs:

    • цели: [‘x.x.x.1:9102’]

Это сработало как заклинание.