Use as variáveis annotations, fire_results e results em um modelo de alerta para incluir dados de consulta de log nas notificações de alerta.
O Simple Log Service (SLS) pode incorporar detalhes de alerta diretamente nas notificações, permitindo que você visualize o contexto necessário assim que o alerta chegar. Para incluir dados de log em uma notificação, configure os parâmetros necessários ao criar uma regra de monitoramento de alerta e referencie a variável annotations, fire_results ou results no modelo de alerta. Para obter mais informações, consulte Variables in alert templates.
As três variáveis atendem a propósitos diferentes:
|
Variável |
O que contém |
Mais indicada para |
|
|
Pares de chave-valor definidos por você, além de dois valores padrão do SLS ( |
Resumir o contexto do alerta de forma legível |
|
|
As linhas de dados brutos que dispararam o alerta |
Listar todos os registros correspondentes de forma rápida |
|
|
Metadados completos da consulta, resultados brutos e a linha que disparou o alerta |
Depuração ou criação de conteúdo detalhado para notificações |
annotations: as anotações de um alerta
fire_results: os registros de dados que dispararam o alerta
results: os parâmetros de consulta e resultados intermediários
Por exemplo, para monitorar erros de acesso NGINX, execute a consulta a seguir para obter o código de status HTTP, o endereço IP de origem e a contagem de erros. Em seguida, crie uma regra de monitoramento de alerta e referencie esses dados no modelo de alerta. Quando um código de status atingir 400 ou mais, o SLS envia uma notificação com o código de status, o IP de origem e a contagem.
-
Instrução de consulta
status >=400 | SELECT status, __source__ AS ip, count(*) AS cnt GROUP BY status,ip Resultados da consulta

Usar a variável annotations
Adicione a variável annotations a um modelo de alerta para incluir pares de chave-valor de anotação nas notificações de alerta.
-
Regra de monitoramento de alerta
Adicione pares de chave-valor de anotação manualmente ou ative a opção Auto-Add Annotations para que o SLS os preencha automaticamente quando o alerta disparar. Para obter mais informações, consulte Annotations.
NotaO SLS fornece duas anotações por padrão.
Por exemplo, para incluir o código de status, o IP de origem e a contagem de erros nas mensagens de alerta, adicione anotações como
status:${status},ip:${ip}ecnt:${cnt}.Adicionar informações sobre anotações manualmente

Ativar Auto-Add Annotations para adicionar informações sobre anotações automaticamente

-
Mensagem de alerta
Após o disparo do alerta, o SLS gera uma mensagem contendo as anotações configuradas:
{ "annotations": { "title": "Alert is triggered by an NGINX access error", "desc": "The error that is indicated by the status code 400 occurred 15 times" "status": "400" "ip": "127.0.0.1" "cnt": "15" "__count__": "1" } } -
Modelo de alerta
Adicione a variável
annotationsao modelo de alerta para referenciar conteúdo específico de log nas notificações. Para obter mais informações sobre como criar um modelo de alerta, consulte Create an alert template.
Usar a variável fire_results
Adicione a variável fire_results a um modelo de alerta para listar todas as linhas de dados que dispararam o alerta.
-
Regra de monitoramento de alerta
O SLS gera mensagens de alerta com base na regra de monitoramento de alerta criada.

-
Mensagem de alerta
Após o disparo do alerta, o SLS gera uma mensagem contendo todas as linhas correspondentes à condição de disparo — neste exemplo, o código de status, o IP de origem e a contagem de erros de cada linha correspondente.
{ "fire_results": [ { "status": "401", "ip": "127.0.0.1", "cnt": "3" }, { "status": "400", "ip": "127.0.0.1", "cnt": "7" }, { "status": "501", "ip": "127.0.0.1", "cnt": "4" }, { "status": "404", "ip": "127.0.0.1", "cnt": "4" }, { "status": "402", "ip": "127.0.0.1", "cnt": "6" }, null ] } -
Modelo de alerta
Adicione a variável
fire_resultsao modelo de alerta para referenciar conteúdo específico de log nas notificações. Para obter mais informações sobre como criar um modelo de alerta, consulte Create an alert template.
Usar a variável results
Adicione a variável results a um modelo de alerta para incluir o contexto completo da consulta nas notificações de alerta.
-
Regra de monitoramento de alerta
O SLS gera mensagens de alerta com base na regra de monitoramento de alerta criada.

-
Mensagem de alerta
Após o disparo do alerta, o SLS gera uma mensagem contendo o contexto completo da consulta.
NotaSe uma regra de monitoramento de alerta contiver várias instruções de consulta, o array results/@parmname conterá vários itens. Cada item corresponde a uma instrução de consulta.
{ "results": [{ "store_type": "log", "region": "cn-hangzhou", "project": "test-alert", "store": "nginx-access-log", "query": "status >= 400 | select status, __source__ as ip, count(*) as cnt group by status, ip", "start_time": 1640006894, "end_time": 1640007014, "dashboard_id": "", "raw_results": [ { "status": "401", "ip": "127.0.0.1", "cnt": "3" }, { "status": "400", "ip": "127.0.0.1", "cnt": "7" }, { "status": "501", "ip": "127.0.0.1", "cnt": "4" }, { "status": "404", "ip": "127.0.0.1", "cnt": "4" }, { "status": "402", "ip": "127.0.0.1", "cnt": "6" }, null ], "raw_result_count": 6, "fire_result": { "status": "401", "ip": "127.0.0.1", "cnt": "3" }, "has_sql": true, "truncated": false, "role_arn": "" }] }Cada item no array
resultscontém os seguintes campos:Campo
Descrição
store_typeTipo de armazenamento de dados consultado, como
logregionRegião do projeto
projectNome do projeto SLS
storeNome do Logstore
queryInstrução de consulta executada
start_timeHorário de início da consulta (timestamp Unix)
end_timeHorário de término da consulta (timestamp Unix)
dashboard_idID do painel associado, se houver
raw_resultsTodas as linhas retornadas pela consulta
raw_result_countNúmero total de linhas em
raw_resultsfire_resultLinha específica que disparou o alerta
has_sqlIndica se a consulta contém uma instrução de análise SQL
truncatedIndica se o conjunto de resultados foi truncado
role_arnARN da função RAM usada na consulta, se houver
-
Modelo de alerta
Adicione a variável
resultsao modelo de alerta para referenciar conteúdo específico de log nas notificações. Para obter mais informações sobre como criar um modelo de alerta, consulte Create an alert template.
Variáveis de modelo
Ao referenciar uma variável em formato JSON em um modelo de alerta — por exemplo, {{ alert.results[0].raw_results | to_json }} — o valor aparece como uma string JSON na notificação. Use um loop para exibir resultados com várias linhas, apresentando cada linha individualmente. Para obter mais informações, consulte Syntax for new alert templates.
{%- for result in alert.fire_results %}
- status: {{ result.status }}, count: {{ result.cnt }}
{%- endfor %}
O SLS oferece funções integradas para formatar o conteúdo das notificações. Para obter mais informações, consulte Syntax for new alert templates e Built-in template functions.