Como posso 'unir' duas métricas em uma consulta do Prometheus?

Estou usando ocônsul exportador ingerir a saúde e o status dos meus serviços no Prometheus. Gostaria de acionar alertas quando o status dos serviços e nós no Consul for crítico e, em seguida, usar tags extraídas do Consul ao rotear esses alertas.

Eu entendo deessa discussão é provável que as tags de serviço sejam exportadas como uma métrica separada, mas não sei como associar uma série a outra para poder aproveitar as tags com o status de integridade.

Por exemplo, a seguinte consulta:

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

poderia retornar:

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

mas eu também gostaria de 'env' desta série:

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

para unir-se ao longo do nó e do service_name para passar o seguinte ao Alertmanager como uma única série:

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

Eu poderia então corresponder 'env' no meu roteamento.

Há alguma maneira de fazer isso? Não me parece que nenhuma operação ou função me permita agrupar ou ingressar assim. Pelo que pude ver, as tags já precisariam ser etiquetas na métrica consul_health_service_status.

questionAnswers(1)

yourAnswerToTheQuestion