Outils pour utilisateurs

Outils du site


software:applications:prometheus:depannage:pb_echantillonage_lors_du_scraping

:TODO_DOCUPDATE:

Prometheus : multiples échantillonnages de la métrique lors du scraping

La problématique rencontrée est que lors de la collecte, pendant une période de quelques minutes (environ 5min), la même valeur de la métrique est collectée plusieurs fois (toutes les 15s).

Les graphes construits par la suite via Grafana présentent des plateaux de valeurs constantes alors qu'on souhaiterait ici n'avoir q'un seul relevé pour la métrique:

Dans le cas présent, la métrique est exposée par l'exporteur mqtt2prometheus avec son timestamp de réception.

Ci-dessous on utilise wget pour afficher les métriques et s'assurer du format exposé par l'exporteur:

wget -O - http://mqtt2prometheus:9641/metrics"
...
# HELP sensor_battery_percent Battery level in percent
# TYPE sensor_battery_percent gauge   
sensor_battery_percent{sensor="shellyht-795EDD",sensor_type="Shelly H&T",topic="shellies/shellyht-795EDD/sensor/battery"} 100 1676294284206
sensor_battery_percent{sensor="shellyht-799B72",sensor_type="Shelly H&T",topic="shellies/shellyht-799B72/sensor/battery"} 100 1676285085515
sensor_battery_percent{sensor="shellyht-79A241",sensor_type="Shelly H&T",topic="shellies/shellyht-79A241/sensor/battery"} 100 1676281878932
sensor_battery_percent{sensor="shellyht-79A7E2",sensor_type="Shelly H&T",topic="shellies/shellyht-79A7E2/sensor/battery"} 100 1676289837693
# HELP sensor_humidity_percent Humidity air-water mixture in percent
# TYPE sensor_humidity_percent gauge  
sensor_humidity_percent{sensor="shellyht-795EDD",sensor_type="Shelly H&T",topic="shellies/shellyht-795EDD/sensor/humidity"} 39 1676294284206
sensor_humidity_percent{sensor="shellyht-799B72",sensor_type="Shelly H&T",topic="shellies/shellyht-799B72/sensor/humidity"} 35.5 1676285085514
sensor_humidity_percent{sensor="shellyht-79A241",sensor_type="Shelly H&T",topic="shellies/shellyht-79A241/sensor/humidity"} 46.5 1676281878932
sensor_humidity_percent{sensor="shellyht-79A7E2",sensor_type="Shelly H&T",topic="shellies/shellyht-79A7E2/sensor/humidity"} 52 1676289837693
# HELP sensor_temperature_celsius Temperature in Celsius
# TYPE sensor_temperature_celsius gauge
sensor_temperature_celsius{sensor="shellyht-795EDD",sensor_type="Shelly H&T",topic="shellies/shellyht-795EDD/sensor/temperature"} 19.62 1676294284205
sensor_temperature_celsius{sensor="shellyht-799B72",sensor_type="Shelly H&T",topic="shellies/shellyht-799B72/sensor/temperature"} 18.25 1676285085514
sensor_temperature_celsius{sensor="shellyht-79A241",sensor_type="Shelly H&T",topic="shellies/shellyht-79A241/sensor/temperature"} 13.88 1676281878932
sensor_temperature_celsius{sensor="shellyht-79A7E2",sensor_type="Shelly H&T",topic="shellies/shellyht-79A7E2/sensor/temperature"} 16.5 1676289837693

Coté Prometheus, on peut afficher la configuration de l'application grâce au navigateur, on obtient le résultat suivant (extrait):

global:
  scrape_interval: 15s
  scrape_timeout: 10s
  evaluation_interval: 15s
...
scrape_configs:
- job_name: scrap_mqtt_broker
  honor_timestamps: true
  scrape_interval: 5m
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  follow_redirects: true
  static_configs:
  - targets:
    - mqtt2prometheus:9641

Après modification du fichier de configuration, relancer le service ou envoyer un signal SIGHUP pour recharger le fichier:

docker container kill --signal SIGHUP monitoring_prometheus

Afficher les logs

 
level=info ts=2023-02-13T14:31:36.499Z caller=main.go:969 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml

:TODO:

Le problème constaté est du a un mauvais échantillonnage paramétré lors de la génération du graphe. Les paramétrages de scrapping sont corrects.

Références

software/applications/prometheus/depannage/pb_echantillonage_lors_du_scraping.txt · Dernière modification : 2023/02/13 16:14 de yoann