Quando um alerta do Prometheus dispara, os responsáveis frequentemente acessam o console do ARMS para verificar a tendência das métricas. Adicionar um gráfico de tendência ao card de alerta do DingTalk oferece contexto visual imediato diretamente na notificação, sem sair do DingTalk.
Duas anotações personalizadas na regra de alerta controlam qual métrica será plotada e qual nome será exibido no gráfico.
Os gráficos de tendência de métricas são compatíveis apenas com cards de alerta de grupos do DingTalk. Outros canais de notificação (e-mail, webhooks) não são compatíveis com este recurso.
Como funciona
Uma regra de alerta do Prometheus avalia uma expressão PromQL com uma condição de limiar, como cpu_usage > 80. Para renderizar um gráfico de tendência, o ARMS precisa de uma expressão PromQL separada — a mesma consulta sem o limiar — para plotar os valores brutos da métrica ao longo do tempo.
Forneça essa consulta e um nome de exibição por meio de duas anotações:
|
Chave da anotação |
Finalidade |
Exemplo de valor |
|
|
Expressão PromQL que retorna os dados da métrica a ser plotada. Remova quaisquer condições de limiar ou operadores lógicos (AND, OR) da expressão de alerta. |
|
|
|
Nome de exibição da métrica mostrada no gráfico. |
|
O gráfico é renderizado somente quando os rótulos no resultado da consulta _aliyun_display_promql correspondem aos rótulos no resultado da PromQL da regra de alerta. Para mais detalhes, consulte Por que o gráfico não aparece?
A consulta _aliyun_display_promql pode retornar até 512 KB de dados de métricas.
Pré-requisitos
Antes de começar, verifique se você tem:
Um grupo do DingTalk configurado como canal de notificação. Consulte DingTalk chatbot
Uma política de notificação que roteie alertas para o grupo do DingTalk. Consulte Notification policies
Criar ou editar uma regra de alerta com gráfico de tendência
Faça login no ARMS console.
No painel de navegação à esquerda, escolha Managed Service for Prometheus > Prometheus Alert Rules.
Na página Prometheus Alert Rules, clique em Create Prometheus Alert Rule no canto superior direito.
Na seção Alert Notification, selecione Simple Mode e, em seguida, selecione a política de notificação que usa seu grupo do DingTalk como contato.
-
Expanda Advanced Settings, localize a seção Annotations e clique em Create Annotation. Adicione as duas anotações a seguir:
Defina a chave como
_aliyun_display_promqle o valor como sua expressão PromQL sem o limiar. Por exemplo, se a regra de alerta usacpu_usage > 80, defina o valor comocpu_usage.Clique em Create Annotation novamente. Defina a chave como
_aliyun_display_namee o valor como um nome descritivo para a métrica, comoContainer CPU utilization.
Configure os demais parâmetros da regra de alerta conforme necessário. Consulte Prometheus alert rules.
Clique em Save e, em seguida, clique em Complete.
Verificar o gráfico
Após o disparo da regra de alerta, abra o grupo do DingTalk e verifique o card de alerta. O gráfico de tendência da métrica aparece embutido, exibindo os valores da métrica que antecederam o alerta.
Para saber como agir sobre alertas recebidos no DingTalk, consulte Handle alerts in a notification group.
Perguntas frequentes
Por que preciso de uma expressão PromQL separada para o gráfico?
A expressão PromQL de uma regra de alerta inclui condições de limiar e operadores lógicos (por exemplo, cpu_usage > 80). Esses elementos filtram o conjunto de resultados em vez de retornar os valores brutos da métrica necessários para o gráfico. A anotação _aliyun_display_promql recebe a mesma consulta sem o limiar, permitindo que o ARMS recupere os dados de série temporal subjacentes e os plote.
Por que o gráfico não aparece depois que defini as anotações?
O gráfico é renderizado somente quando os rótulos no resultado da consulta _aliyun_display_promql correspondem aos rótulos no resultado da PromQL da regra de alerta. Uma expressão PromQL pode retornar múltiplas séries temporais, e o ARMS seleciona a correspondente com base em seus rótulos.
Por exemplo, se cpu_usage > 80 retorna séries temporais com os rótulos pod_name e container, a consulta _aliyun_display_promql também deve retornar séries temporais que incluam ambos os rótulos. Se os rótulos diferirem, o ARMS não consegue associar os resultados e o gráfico não é renderizado.
Para solucionar o problema:
Execute a consulta
_aliyun_display_promqle a expressão PromQL da regra de alerta separadamente no editor de consultas do Prometheus.Compare os conjuntos de rótulos das séries temporais retornadas.
Ajuste a expressão
_aliyun_display_promqlpara que seus rótulos de resultado correspondam aos da regra de alerta.