Gérer efficacement les données de métriques dans Prometheus peut être complexe.
Sans un bon filtrage, les données inutiles peuvent encombrer le stockage et compliquer l’analyse.
Cet article explore comment write_relabel_configs peut transformer et filtrer les données avant leur envoi vers un stockage comme InfluxDB.
Devenez expert dans la supervision d'infrastructures avec Prometheus.

Le mécanisme de write_relabel_configs dans Prometheus permet de manipuler les données avant de les envoyer au stockage distant. Il peut être utilisé pour effectuer plusieurs actions sur les données de métriques, telles que la suppression de certaines métriques ou la modification des labels avant qu’elles ne soient envoyées à un stockage externe, tel que InfluxDB.
Quand write_relabel_configs s'applique-t-il ?
Le write_relabel_configs est appliqué lors de l’écriture des données dans un stockage distant. Cela intervient après la collecte des données mais avant leur transfert vers le système de stockage. Cela permet de filtrer ou de transformer les données en fonction des besoins avant leur envoi.
Sélectionner les données pour InfluxDB
Avec write_relabel_configs, vous pouvez choisir de ne pas envoyer certaines métriques au stockage distant. Par exemple, si vous ne souhaitez pas conserver certaines métriques comme node_load1, vous pouvez utiliser une action drop pour les exclure de l’écriture.
Dans cet exemple, nous choisissons d’exclure la métrique node_load1 de l’envoi au stockage distant en appliquant un write_relabel_configs avec l’action drop.
Modifier labels avec write_relabel_configs
Vous pouvez également modifier ou renommer les labels des métriques avant de les envoyer au stockage distant. Cela peut être utile pour uniformiser les noms des labels, par exemple, en remplaçant le label instance par host.
Enrichir données Prometheus efficacement
Il est aussi possible d’ajouter de nouveaux labels ou d’autres métadonnées aux données envoyées, ce qui peut être utile pour enrichir les informations avant de les stocker à long terme dans un système externe.
Exemple de write relabel configs
Dans cette démonstration, nous allons illustrer l’utilisation du mécanisme write_relabel_configs dans Prometheus pour manipuler et filtrer les métriques avant leur transfert vers un stockage distant, comme InfluxDB.
Accéder à InfluxDB via le terminal :
influx
Cela ouvre un shell interactif permettant d’exécuter des requêtes InfluxQL directement sur votre base de données InfluxDB. Cette étape est essentielle pour administrer et interroger la base.
Utiliser la base de données prometheus :
use prometheus
Cela permet de sélectionner la base de données prometheus comme contexte actif. Toutes les requêtes exécutées après cette commande s’appliqueront uniquement à cette base.
Exécuter une première requête pour vérifier la métrique node_load1 :
select count(*) from node_load1;
Cette commande vérifie si des données existent pour cette métrique et peut être utilisée comme point de référence avant de modifier ou d’exclure cette métrique.
Exécuter une seconde requête pour vérifier que la métrique a été mise à jour :
select count(*) from node_load1;
Cela permet de vérifier que la métrique node_load1 n’est plus mise à jour dans la base.
Ajouter la configuration write_relabel_configs dans Prometheus pour exclure node_load1 : Dans le fichier prometheus.yml :
remote_write:
url: "http://localhost:8086/api/v1/prom/write?db=prometheus"
write_relabel_configs:
- source_labels: [ _name ]
regex: node_load1
action: drop
Ce paramètre utilise write_relabel_configs pour filtrer les métriques avant qu’elles ne soient envoyées. Ici, toute métrique dont le nom correspond à node_load1 sera ignorée.
Vérifier les résultats des métriques après application de la configuration :
select count(*) from node_load1;
Vérifier les métriques restantes :
select count(*) from node_load15;
Cela garantit que l’exclusion de node_load1 n’a pas affecté les autres métriques et que Prometheus fonctionne correctement avec la nouvelle configuration.
Filtrer et transformer : résultats attendus
Après avoir appliqué la configuration de write_relabel_configs et effectué les requêtes dans InfluxDB, les métriques node_load1 ont été supprimées du stockage distant, comme indiqué par la valeur de 0 pour cette métrique. Les autres métriques, comme node_load15, sont toujours présentes et ont été envoyées correctement au stockage distant.
Résultat des requêtes pour vérifier l’absence de node_load1.
Conclusion sur write_relabel_configs
Le mécanisme de write_relabel_configs dans Prometheus offre une flexibilité puissante pour gérer les données de métriques avant leur envoi vers un stockage distant comme InfluxDB. Il permet de filtrer, transformer, ou enrichir les métriques selon les besoins spécifiques de l’infrastructure.
Dans l’exemple présenté, write_relabel_configs a été utilisé pour exclure la métrique node_load1 du stockage distant, démontrant son efficacité pour réduire le volume de données inutiles et optimiser l’espace de stockage. Cette configuration a également permis de vérifier que les autres métriques, comme node_load15, sont correctement transférées.
En somme, write_relabel_configs est un outil essentiel pour personnaliser le traitement des métriques et adapter leur gestion aux objectifs d’analyse et de stockage à long terme.
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 write_relabel_configs est-il appliqué dans Prometheus ?
Comment choisir quelles données envoyer au stockage avec write_relabel_configs ?
Comment modifier les labels des métriques avec write_relabel_configs ?
Peut-on enrichir les données envoyées avec write_relabel_configs ?
Quels sont les résultats attendus après configuration de write_relabel_configs ?
Conclusion
En somme, write_relabel_configs est un outil essentiel pour personnaliser le traitement des métriques dans Prometheus. Quelle est votre prochaine étape pour optimiser votre gestion des données de métriques ?