Utilisez les variables annotations, fire_results et results dans un modèle d'alerte pour inclure les données de requête de journal dans les notifications d'alerte.
Simple Log Service (SLS) peut intégrer directement les détails de l'alerte dans les notifications, afin que vous disposiez d'un contexte exploitable dès la réception de l'alerte. Pour inclure des données de journal dans une notification, configurez les paramètres requis lors de la création d'une règle de surveillance d'alerte, puis référencez la variable annotations, fire_results ou results dans le modèle d'alerte. Pour plus d'informations, consultez la rubrique Variables dans les modèles d'alerte.
Ces trois variables ont des objectifs distincts :
|
Variable |
Contenu |
Cas d'utilisation recommandé |
|
|
Paires clé-valeur définies par l'utilisateur, ainsi que deux valeurs par défaut SLS ( |
Résumer le contexte de l'alerte sous une forme lisible |
|
|
Les lignes de données brutes ayant déclenché l'alerte |
Lister tous les enregistrements correspondants en un coup d'œil |
|
|
Métadonnées complètes de la requête, résultats bruts et ligne déclencheuse |
Débogage ou création de contenu de notification détaillé |
annotations : les annotations d'une alerte
fire_results : les enregistrements de données pour lesquels une alerte est déclenchée
results : les paramètres de requête et les résultats intermédiaires
Par exemple, pour surveiller les erreurs d'accès NGINX, exécutez la requête suivante afin d'obtenir le code d'état HTTP, l'adresse IP source et le nombre d'erreurs. Créez ensuite une règle de surveillance d'alerte et référencez ces données dans le modèle d'alerte. Lorsqu'un code d'état atteint 400 ou plus, SLS envoie une notification incluant le code d'état, l'IP source et le compteur.
-
Instruction de requête
status >=400 | SELECT status, __source__ AS ip, count(*) AS cnt GROUP BY status,ip Résultats de la requête

Utilisation de la variable annotations
Ajoutez la variable annotations à un modèle d'alerte pour inclure les paires clé-valeur d'annotation dans les notifications d'alerte.
-
Règle de surveillance d'alerte
Ajoutez manuellement des paires clé-valeur d'annotation ou activez Auto-Add Annotations pour permettre à SLS de les remplir automatiquement lorsque l'alerte se déclenche. Pour plus d'informations, consultez la rubrique Annotations.
RemarqueSLS fournit deux annotations par défaut.
Par exemple, pour inclure le code d'état, l'IP source et le nombre d'erreurs dans les messages d'alerte, ajoutez des annotations telles que
status:${status},ip:${ip}etcnt:${cnt}.Ajout manuel d'informations sur les annotations

Activation de l'option Auto-Add Annotations pour ajouter automatiquement des informations sur les annotations

-
Message d'alerte
Après le déclenchement d'une alerte, SLS génère un message d'alerte contenant les annotations que vous avez configurées :
{ "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" } } -
Modèle d'alerte
Ajoutez la variable
annotationsau modèle d'alerte pour référencer un contenu de journal spécifique dans les notifications. Pour plus d'informations sur la création d'un modèle d'alerte, consultez la rubrique Create an alert template.
Utilisation de la variable fire_results
Ajoutez la variable fire_results à un modèle d'alerte pour lister chaque ligne de données ayant déclenché l'alerte.
-
Règle de surveillance d'alerte
SLS génère des messages d'alerte basés sur la règle de surveillance d'alerte que vous créez.

-
Message d'alerte
Après le déclenchement d'une alerte, SLS génère un message d'alerte contenant toutes les lignes correspondant à la condition de déclenchement — dans cet exemple, le code d'état, l'IP source et le nombre d'erreurs pour chaque ligne correspondante.
{ "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 ] } -
Modèle d'alerte
Ajoutez la variable
fire_resultsau modèle d'alerte pour référencer un contenu de journal spécifique dans les notifications. Pour plus d'informations sur la création d'un modèle d'alerte, consultez la rubrique Create an alert template.
Utilisation de la variable results
Ajoutez la variable results à un modèle d'alerte pour inclure le contexte complet de la requête dans les notifications d'alerte.
-
Règle de surveillance d'alerte
SLS génère des messages d'alerte basés sur la règle de surveillance d'alerte que vous créez.

-
Message d'alerte
Après le déclenchement d'une alerte, SLS génère un message d'alerte contenant le contexte complet de la requête.
RemarqueSi une règle de surveillance d'alerte contient plusieurs instructions de requête, le tableau results/@parmname contient plusieurs éléments. Chaque élément correspond à une instruction de requête.
{ "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": "" }] }Chaque élément du tableau
resultscontient les champs suivants :Champ
Description
store_typeType de magasin de données interrogé, par exemple
logregionRégion du projet
projectNom du projet SLS
storeNom du Logstore
queryInstruction de requête exécutée
start_timeHeure de début de la requête (horodatage Unix)
end_timeHeure de fin de la requête (horodatage Unix)
dashboard_idID du tableau de bord associé, le cas échéant
raw_resultsToutes les lignes renvoyées par la requête
raw_result_countNombre total de lignes dans
raw_resultsfire_resultLigne spécifique ayant déclenché l'alerte
has_sqlIndique si la requête contient une instruction d'analyse SQL
truncatedIndique si l'ensemble de résultats a été tronqué
role_arnARN du rôle RAM utilisé pour la requête, le cas échéant
-
Modèle d'alerte
Ajoutez la variable
resultsau modèle d'alerte pour référencer un contenu de journal spécifique dans les notifications. Pour plus d'informations sur la création d'un modèle d'alerte, consultez la rubrique Create an alert template.
Variables de modèle
Lorsque vous référencez une variable au format JSON dans un modèle d'alerte — par exemple, {{ alert.results[0].raw_results | to_json }} — la valeur apparaît sous forme de chaîne JSON dans la notification. Utilisez une boucle pour afficher les résultats multilignes ligne par ligne. Pour plus d'informations, consultez la rubrique Syntax for new alert templates.
{%- for result in alert.fire_results %}
- status: {{ result.status }}, count: {{ result.cnt }}
{%- endfor %}
SLS fournit des fonctions intégrées pour formater le contenu des notifications. Pour plus d'informations, consultez les rubriques Syntax for new alert templates et Built-in template functions.