¿Cómo puedo 'unir' dos métricas en una consulta de Prometheus?
Estoy usando elcónsul exportador para ingerir la salud y el estado de mis servicios en Prometheus. Me gustaría disparar alertas cuando el estado de los servicios y nodos en Consul es crítico y luego usar etiquetas extraídas de Consul al enrutar esas alertas.
Entiendo deesta discusión es probable que las etiquetas de servicio se exporten como una métrica separada, pero no estoy seguro de cómo unir una serie con otra para poder aprovechar las etiquetas con el estado de mantenimiento.
Por ejemplo, la siguiente consulta:
max(consul_health_service_status{status="critical"}) by (service_name, status,node) == 1
podría volver:
{node="app-server-02",service_name="app-server",status="critical"} 1
pero también me gustaría 'env' de esta serie:
consul_service_tags{node="app-server-02",service_name="app-server",env="prod"} 1
para unirse a lo largo del nodo y service_name para pasar lo siguiente al Alertmanager como una serie única:
{node="app-server-02",service_name="app-server",status="critical",env="prod"} 1
Entonces podría coincidir con 'env' en mi ruta.
¿Hay alguna forma de hacer esto? No me parece que ninguna operación o función me dé la capacidad de agruparme o unirme de esta manera. Por lo que puedo ver, las etiquetas ya deberían ser etiquetas en la métrica consul_health_service_status.