Tous les produits
Search
Centre de documentation

Simple Log Service:Syntaxe des conditions de déclenchement dans les règles d'alerte

Dernière mise à jour :Aug 18, 2026

Cette rubrique décrit la syntaxe des conditions de déclenchement dans les règles d'alerte.

Utilisez des variables pour faire référence aux champs de journal dans la condition de déclenchement d'une règle d'alerte. Pour évaluer la règle, Simple Log Service exécute des requêtes de journal basées sur les instructions spécifiées dans la règle et vérifie si les résultats satisfont la condition de déclenchement. Si la condition est remplie, une alerte est déclenchée.

Limites

Cette section répertorie les limites applicables aux conditions de déclenchement :

  • Les nombres négatifs doivent être placés entre parenthèses (), par exemple x+(-100)<100.

  • Les valeurs numériques sont converties en nombres à virgule flottante 64 bits. Par conséquent, le résultat de l'évaluation d'une règle d'alerte peut être imprécis lors d'une comparaison.

  • Un nom de variable ne peut contenir que des lettres et des chiffres, et doit commencer par une lettre.

  • Une condition de déclenchement doit comporter entre 1 et 128 caractères.

  • Si une règle d'alerte est associée à plusieurs graphiques, plusieurs requêtes sont exécutées lors de chaque évaluation. Plusieurs ensembles d'entrées de journal sont alors renvoyés. Simple Log Service sélectionne une entrée de journal dans chaque ensemble et vérifie si la combinaison des entrées sélectionnées satisfait la condition de déclenchement. Pour chaque évaluation, Simple Log Service vérifie un maximum de 1 000 combinaisons d'entrées de journal. Une alerte est déclenchée si l'une des combinaisons satisfait la condition.

  • Une règle d'alerte peut être associée à un maximum de trois graphiques ou instructions de requête.

  • Si le résultat d'une condition de déclenchement est true, cela signifie que la condition est remplie et qu'une alerte est déclenchée. Par exemple, si la condition de déclenchement est 100+100, le résultat est 200 et aucune alerte n'est déclenchée.

  • Simple Log Service réserve deux mots : true et false. Il réserve également deux caractères spéciaux : le signe dollar ($) et le point (.). Ces mots et caractères spéciaux ne peuvent pas être utilisés comme variables.

Syntaxe

Le tableau suivant répertorie la syntaxe utilisée dans les conditions de déclenchement.

Type de syntaxe

Opération

Description

Opérateurs arithmétiques

Prend en charge les opérateurs d'addition (+), de soustraction (-), de multiplication (*), de division (/) et de modulo (%).

  • x * 100 + y > 200

  • x % 10 > 5

Opérateurs de comparaison

Prend en charge huit opérateurs de comparaison : supérieur à (>), supérieur ou égal à (>=), inférieur à (<), inférieur ou égal à (<=), égal à (==), différent de (!=), correspondance (=~) et non-correspondance (!~).

Remarque
  • Les barres obliques inverses (\) dans les expressions régulières doivent être échappées.

  • La syntaxe Regular Expression 2 (RE2) est utilisée. Pour plus d'informations, consultez Syntax.

  • x >= 0

  • x < 100

  • x <= 100

  • x == 100

  • x == "foo"

  • x =~ "\\w +"

Opérateurs logiques

Prend en charge les opérateurs AND (&&) et OR (||).

  • x >= 0 && y <= 100

  • x > 0 || y >0

Opérateur NOT

Prend en charge l'opérateur NOT (!).

!(a < 1 && a > 100)

Constantes numériques

Prend en charge les constantes numériques. Simple Log Service convertit les constantes numériques en nombres à virgule flottante 64 bits.

x > 100

Constantes de chaîne

Prend en charge les constantes de chaîne au format 'String', par exemple 'string'.

foo == 'string'

Constantes booléennes

Prend en charge true et false.

(x > 100) == true

Parenthèses

Prend en charge les parenthèses (). Utilisez des parenthèses pour remplacer l'ordre de priorité standard et forcer Simple Log Service à évaluer la partie de la condition de déclenchement entre parenthèses avant la partie non parenthésée.

x * (y + 100) > 100

Fonction nommée contains

Prend en charge la fonction contains. La fonction contains vérifie si une chaîne contient une sous-chaîne. Par exemple, contains(foo, 'hello') renvoie true si la chaîne référencée par la variable foo inclut la sous-chaîne hello.

contains(foo, 'hello')

Conditions de déclenchement dans les règles d'alerte associées à plusieurs graphiques

  • Syntaxe

    Une règle d'alerte peut être associée à plusieurs instructions de requête. Pour utiliser une variable dans la condition de déclenchement afin de faire référence à un champ issu du résultat d'une instruction de requête, préfixez la variable avec le numéro de série de l'instruction de requête au format $N.fieldname. Le numéro de série d'une instruction de requête est identique à celui du graphique qui représente le résultat de cette instruction. Pour plus d'informations, consultez Comment afficher le numéro de série d'un graphique ? La plage de valeurs de N va de 0 à 2, car chaque règle d'alerte est associée à un maximum de trois instructions de requête. Par exemple, $0.foo fait référence à la valeur du champ foo issue du résultat de la première instruction de requête. Si une règle d'alerte est associée à une seule instruction de requête, vous n'avez pas besoin de spécifier le préfixe dans la condition de déclenchement.

  • Évaluation

    Lors de l'évaluation d'une règle d'alerte, si plusieurs requêtes sont exécutées et que plusieurs ensembles d'entrées de journal sont renvoyés, Simple Log Service utilise uniquement les résultats de requête dont les champs sont référencés dans la condition de déclenchement. Par exemple, trois ensembles d'entrées de journal sont renvoyés. Le nombre d'entrées de journal dans le premier ensemble est z, dans le deuxième ensemble est y et dans le troisième ensemble est z. Si la condition de déclenchement est $0.foo > 100 && $1.bar < 100, Simple Log Service utilise uniquement le premier et le deuxième ensemble lors de l'évaluation. Simple Log Service sélectionne une entrée de journal dans chacun des deux ensembles et vérifie si la combinaison des entrées sélectionnées satisfait la condition de déclenchement. Simple Log Service vérifie x × y combinaisons. Si le résultat de x × y dépasse 1 000, Simple Log Service vérifie uniquement 1 000 combinaisons. Si l'une des combinaisons satisfait la condition de déclenchement, Simple Log Service déclenche une alerte.

Implémentation des opérateurs

Remarque
  • Simple Log Service convertit toutes les valeurs numériques en nombres à virgule flottante 64 bits.

  • Une constante de chaîne doit être placée entre guillemets simples ('') ou doubles (""), par exemple 'string' ou "string".

  • Les valeurs booléennes incluent true et false.

Opérateur

Implémentation

Opération entre variables

Opération entre une constante non-chaîne et une variable

Opération entre une constante de chaîne et une variable

Opérateurs arithmétiques : addition (+), soustraction (-), multiplication (*), division (/) et modulo (%)

Avant l'application d'un opérateur arithmétique, les opérandes gauche et droite sont convertis en nombres à virgule flottante 64 bits.

Non pris en charge.

Opérateurs de comparaison :

supérieur à (>), supérieur ou égal à (>=), inférieur à (<), inférieur ou égal à (<=), égal à (==) et différent de (!=)

Simple Log Service utilise les règles de comparaison suivantes, classées par ordre de priorité :

  1. Les opérandes gauche et droite sont convertis en nombres à virgule flottante 64 bits, puis comparés selon l'ordre numérique. Si la conversion échoue, la règle suivante s'applique.

  2. Les opérandes gauche et droite sont convertis en chaînes, puis comparés selon l'ordre lexicographique.

Les opérandes gauche et droite sont convertis en nombres à virgule flottante 64 bits, puis comparés selon l'ordre numérique.

Les opérandes gauche et droite sont convertis en chaînes, puis comparés selon l'ordre lexicographique.

Opérateurs d'expression régulière :

correspondance regex (=~) et non-correspondance regex (!~)

Avant l'application d'un opérateur de correspondance, les opérandes gauche et droite sont convertis en chaînes.

Non pris en charge.

Avant l'application d'un opérateur de correspondance, les opérandes gauche et droite sont convertis en chaînes.

Opérateurs logiques :

AND (&&) et OR (||)

Un opérateur logique ne peut pas être appliqué aux champs de journal. Les opérandes gauche et droite doivent être des expressions conditionnelles. Le résultat renvoyé par un opérateur logique est de type booléen.

Opérateur NOT (!)

L'opérateur NOT ne peut pas être appliqué aux champs de journal. L'opérande droite doit être une expression conditionnelle. Le résultat renvoyé par l'opérateur NOT est de type booléen.

Fonction nommée contains

Avant l'exécution de la fonction contains, les paramètres d'entrée sont convertis en chaînes.

Non pris en charge.

Avant l'exécution de la fonction contains, les paramètres d'entrée sont convertis en chaînes.

Parenthèses ()

Les parenthèses sont utilisées pour remplacer l'ordre de priorité standard et forcer Simple Log Service à évaluer la partie de la condition de déclenchement entre parenthèses avant la partie non parenthésée.

Exemples

  • Exemple 1 : Déclenchez une alerte si le taux de réussite des tâches tombe en dessous de 90 % et si la latence dépasse 60 secondes dans une plage de temps relative de 1 jour. Définissez le nom de l'alerte sur Task Latency Alert et associez deux graphiques : le graphique 0 est nommé Task Success Rate, avec l'instruction de requête * | select round(sum(case when code = 200 then 1 else 0 end) * 100.0 / count(*), 2) as success et une plage de temps de requête de 1 day (relative) ; le graphique 1 est nommé Latency Status, avec l'instruction de requête delay > 0 | select time_series(__time__, '10m', '%m-%d %H:%i', '0') as time, round(avg(delay)/100, 3) as delay group by time order by time limit 14400 et une plage de temps de requête de 1 day (relative). Définissez l'intervalle d'évaluation sur un intervalle fixe de 15 minutes et définissez la condition de déclenchement sur $0.success < 90 && $1.delay > 60.

  • Exemple 2 : Déclenchez une alerte si le code d'état 500 apparaît 10 fois en 15 minutes. Définissez le nom de l'alerte sur 500 Status Code Alert. Associez le graphique 0, nommé Response Status Distribution, à l'instruction de requête * | SELECT status, COUNT(*) as total GROUP BY status et à une plage de temps de requête de 15 minutes (relative). Définissez l'intervalle d'évaluation sur un intervalle fixe de 15 minutes et définissez la condition de déclenchement sur $0.status == 500 && $0.total > 10.

  • Exemple 3 : Déclenchez une alerte si le taux de traitement tombe en dessous de 1 000 entrées par seconde en 1 heure. Définissez le nom de l'alerte sur Low Data Processing Rate Alert. Associez le graphique 0, nommé Processing Rate (lines/s), à l'instruction de requête __topic__: __etl-log-status__ AND __tag__: __schedule_type__: Resident and event_id: "shard_worker:metrics:checkpoint" | select time_series(__time__, '1m', '%y/%m/%d %H:%i', '0') as dt, round(sum("progress.accept") / 60.0, 3) as "accept", round(sum("progress.dropped") / 60.0, 3) as "dropped", round(sum("progress.delivered") / 60.0, 3) as "delivered", round(sum("progress.failed") / 60.0, 3) as "failed" group by dt order by dt asc limit 10000 et à une plage de temps de requête de 1 hour (relative). Définissez l'intervalle d'évaluation sur un intervalle fixe de 1 heure et définissez la condition de déclenchement sur $0.accept < 1000.