Le suivi des métriques de processus courts ou ad hoc est souvent difficile.
Cela peut entraîner des lacunes dans la surveillance, compromettant ainsi l’efficacité de votre infrastructure.
L’article explore comment utiliser le Pushgateway de Prometheus pour envoyer et visualiser facilement des métriques via un script Bash.
Devenez expert dans la supervision d'infrastructures avec Prometheus.
L’objectif est d’envoyer des métriques (de type counter , gauge , ou histogram ) au Pushgateway de Prometheus, un composant conçu pour accepter des métriques poussées par des processus courts ou ad hoc.
Syntaxe d'envoi de métriques Pushgateway
Pour envoyer des données au Pushgateway, vous utilisez une requête HTTP POST au format texte, compatible avec Prometheus. La syntaxe générale est :
URL :>}]
job_name : Nom du job ou processus.
label_name : Nom des labels optionnels (par ex. instance, identifier).
Exemple de payload :
# TYPE metric_name metric_type
# HELP metric_name Description of the metric
metric_name{label1="value1", label2="value2"} value
Processus d’envoi de métriques au Pushgateway :
HTTP POST pour Prometheus Pushgateway
Les méthodes HTTP couramment utilisées avec le Pushgateway sont :
POST : Permet d’envoyer ou de mettre à jour des métriques.
DELETE : Supprime les métriques associées à un job ou un label via l’interface du Pushgateway.
Exemple d’envoi de données avec curl :
curl -X POST -H "Content-Type: text/plain" \
"http://localhost:9091/metrics/job/my_job" \
-d "# TYPE my_metric counter
my_metric{label=\"example\"} 42"
Composants de la requête HTTP vers le Pushgateway :
Labels pour métriques Prometheus
Les labels permettent de fournir des informations supplémentaires aux métriques. Ils sont spécifiés sous forme de paires clé-valeur dans des accolades {}. Exemple :
my_metric{label1="value1", label2="value2"} 42
Labels courants :
job : Identifie le processus.
instance : Une sous-partie du processus.
custom labels : Personnalisés, par exemple, type, status.
Script Bash pour Pushgateway
Pour créer le script Bash, commencez par ouvrir un éditeur de texte comme vi ou nano et définissez les étapes nécessaires à l’envoi des métriques. Le script inclura l’URL du Pushgateway, des fonctions pour différents types de métriques ( counter , gauge , histogram ), et des appels HTTP avec curl pour envoyer les données. Une fois le script rédigé, il pourra être exécuté pour transmettre automatiquement les métriques.
Commande pour créer le fichier
sudo vi send_data_to_pushgateway.sh
Contenu du script
#!/bin/bash
# Définir l'URL du Pushgateway
push_gateway="http://localhost:9091"
# Définir les paramètres d'identification
instance="process_users"
identifier="AC756"
# Fonction pour envoyer des métriques de type counter
send_counter_metrics() {
curl -X POST -H "Content-Type: text/plain" \
"${push_gateway}/metrics/job/user_process/instance/${instance}/identifier/${identifier}" -d "
# TYPE user_process_counter counter
# HELP user_process_counter Nombre de traitements réussis ou échoués
user_process_counter{type=\"successful\"} 123456
user_process_counter{type=\"failed\"} 654321
"
}
# Fonction pour envoyer des métriques de type gauge
send_gauge_metrics() {
curl -X POST -H "Content-Type: text/plain" \
"${push_gateway}/metrics/job/user_process/instance/${instance}/identifier/${identifier}" -d "
# TYPE user_process_gauge gauge
# HELP user_process_gauge État du traitement (en cours d'exécution ou arrêté)
user_process_gauge{status=\"running\"} 1
user_process_gauge{status=\"stopped\"} 0
"
}
# Fonction pour envoyer des métriques de type histogram
send_histogram_metrics() {
curl -X POST -H "Content-Type: text/plain" \
"${push_gateway}/metrics/job/user_process/instance/${instance}/identifier/${identifier}" -d "
# TYPE user_process_histogram histogram
# HELP user_process_histogram Distribution des temps de traitement
user_process_histogram_bucket{le=\"0.1\"} 60
user_process_histogram_bucket{le=\"1\"} 120
user_process_histogram_bucket{le=\"+Inf\"} 180
user_process_histogram_sum 86.37
user_process_histogram_count 180
"
}
# Envoi des métriques
send_counter_metrics
send_gauge_metrics
send_histogram_metrics
echo "Les métriques ont été envoyées au Pushgateway avec succès."
Permissions et exécution du Bash
Après avoir attribué les permissions d’exécution, vous pouvez lancer le script pour envoyer les métriques au Pushgateway. Une fois exécuté, le script affiche un message confirmant le succès de l’opération.
Pour permettre l’exécution du script :
sudo chmod a+x send_data_to_pushgateway.sh
Lancez le script :
./send_data_to_pushgateway.sh
Si tout fonctionne, le script affichera :
Les métriques ont été envoyées au Pushgateway avec succès.
Visualiser métriques via Pushgateway
Pour visualiser les métriques, accédez à l’interface Web du Pushgateway via http://localhost:9091 . Vous y verrez les métriques organisées par job et labels. Pour une vue brute, rendez-vous sur http://localhost:9091/metrics , où les données sont affichées en format texte. Les métriques peuvent également être supprimées directement depuis l’interface en cliquant sur Delete à côté de celles que vous souhaitez retirer.
Interface Web de Pushgateway :
Accédez à l’URL du Pushgateway dans votre navigateur :
http://localhost:9091
Vous verrez les métriques sous forme d’une liste hiérarchique
Conclusion sur envoi de métriques
En conclusion, nous avons exploré l’envoi de métriques au Pushgateway à l’aide d’un script Bash, en abordant les différentes méthodes HTTP nécessaires pour interagir avec l’outil. Nous avons également vu comment spécifier des labels pour enrichir les données, attribuer les permissions nécessaires pour exécuter le script, et visualiser les métriques via l’interface Web de Pushgateway. Ce processus peut être intégré dans des solutions d’automatisation ou des pipelines CI/CD, offrant ainsi une méthode efficace de surveillance et de gestion des processus en temps réel.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment envoyer des métriques au Pushgateway ?
Quels sont les types de métriques supportés par Pushgateway ?
Comment visualiser les métriques dans Pushgateway ?
Comment créer un script Bash pour envoyer des données ?
Quelles sont les méthodes HTTP utilisées avec Pushgateway ?
Conclusion
En conclusion, maîtriser l’envoi de métriques au Pushgateway améliore considérablement la gestion et le suivi des processus en temps réel. Quelle stratégie adopteriez-vous pour intégrer ce processus dans votre flux de travail actuel ?