2017-06-09 1 views
4

J'utilise le consul exporter pour intégrer l'état et la santé de mes services dans Prometheus. Je voudrais déclencher des alertes lorsque le statut des services et des nœuds dans Consul est critique, puis utiliser les balises extraites de Consul lors du routage de ces alertes. Je sais par this discussion que les balises de service sont susceptibles d'être exportées en tant que métrique distincte, mais je ne suis pas sûr de savoir comment joindre une série à une autre afin de pouvoir exploiter les balises avec l'état d'intégrité.Comment joindre deux métriques dans une requête Prometheus?

Par exemple, la requête suivante:

max(consul_health_service_status{status="critical"}) by (service_name, status,node) == 1 

pourrait retourner:

{node="app-server-02",service_name="app-server",status="critical"} 1 

mais je voudrais aussi que 'env' de cette série:

consul_service_tags{node="app-server-02",service_name="app-server",env="prod"} 1 

pour obtenir joint le long de node et service_name pour transmettre le suivant au Alertmanager en une seule série:

{node="app-server-02",service_name="app-server",status="critical",env="prod"} 1 

Je pourrais alors faire correspondre 'env' dans mon routage.

Y at-il un moyen de le faire? Il ne me semble pas que les opérations ou les fonctions me donnent la possibilité de regrouper ou de rejoindre comme ça. Autant que je puisse voir, les étiquettes devraient déjà être des étiquettes sur la métrique de consul_health_service_status.

Répondre