Tous les produits
Search
Centre de documentation

Simple Log Service:Spécifier des expressions d'évaluation

Dernière mise à jour :Aug 18, 2026

Dans une règle d'alerte, les expressions d'évaluation déterminent si la condition de déclenchement d'une alerte est remplie et évaluent sa gravité dynamique.

Présentation

Les résultats des instructions de requête servent d'entrée ; les champs issus des résultats d'opérations ensemblistes sont utilisés comme variables. Si l'expression d'évaluation renvoie true, le système déclenche une alerte.

image

Limites

Les expressions d'évaluation dans les règles d'alerte sont soumises aux limites suivantes :

  • Entourez les nombres négatifs de parenthèses (). Exemple : x+(-100)<100.

  • Le système convertit les valeurs numériques en nombres à virgule flottante 64 bits. Des erreurs peuvent survenir lors de comparaisons, notamment les vérifications d'égalité.

  • Les noms de variables ne doivent contenir que des lettres et des chiffres, et commencer par une lettre.

  • Une expression d'évaluation doit comporter entre 1 et 128 caractères.

  • Le système ne déclenche une alerte que si l'expression d'évaluation renvoie true et que le nombre de fois consécutives où la condition de déclenchement est satisfaite atteint la valeur du paramètre Seuil de déclenchements continus. Par exemple, si une expression d'évaluation est 100+100, le résultat du calcul est 200, ce qui ne correspond pas à la valeur true. Dans ce cas, aucune alerte n'est déclenchée.

  • true, false, le signe dollar ($) et le point (.) sont des mots réservés pour les expressions d'évaluation. Vous ne pouvez pas utiliser ces mots réservés comme variables.

Syntaxe

Le tableau suivant décrit les types de syntaxe pris en charge par les expressions d'évaluation.

Remarque

Les noms de champs font référence aux champs renvoyés dans un ensemble de résultats. Utilisez des chaînes de caractères comme noms de champs. Évitez les noms de champs composés uniquement de chiffres ou de caractères spéciaux tels que le signe pourcentage (%). Si un nom de champ contient des caractères spéciaux ou uniquement des chiffres, placez-le entre crochets []. Exemples :

  • [5xx percentage (%)] > 20

  • [404] > 20

Type de syntaxe

Opérateur

Méthode d'opération

Exemple

Opération entre variables

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

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

Opérateurs arithmétiques

addition (+), soustraction (-), multiplication (*), division (/) et modulo (%)

Avant l'application d'un opérateur arithmétique, le système convertit les opérandes gauche et droite en nombres à virgule flottante 64 bits.

Avant l'application d'un opérateur arithmétique, le système convertit les opérandes gauche et droite en nombres à virgule flottante 64 bits.

Non pris en charge.

  • x * 100 + y > 200

  • x % 10 > 5

Opérateurs de comparaison

Opérateurs de comparaison :

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

Simple Log Service applique les règles de comparaison suivantes par ordre de priorité :

  1. Le système convertit les opérandes gauche et droite en nombres à virgule flottante 64 bits, puis les compare selon l'ordre numérique. Si la conversion échoue, il applique la règle de priorité suivante.

  2. Le système convertit les opérandes gauche et droite en chaînes de caractères, puis les compare selon l'ordre alphabétique.

Le système convertit les opérandes gauche et droite en nombres à virgule flottante 64 bits, puis les compare.

Le système convertit les opérandes gauche et droite en chaînes de caractères, puis les compare selon l'ordre alphabétique.

  • x >= 0

  • x < 100

  • x <= 100

  • x == 100

  • x == "foo"

  • (x > 100) == true

    Remarque

    Les constantes booléennes sont prises en charge.

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

correspondance d'expression régulière (=~) et non-correspondance d'expression régulière (!~)

Remarque
  • Échappez les barres obliques inverses (\).

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

Avant l'application d'un opérateur d'expression régulière, le système convertit les opérandes gauche et droite en chaînes de caractères.

Non pris en charge.

Avant l'application d'un opérateur d'expression régulière, le système convertit les opérandes gauche et droite en chaînes de caractères.

Correspondance d'expression régulière : x =~ "\\w+".

Opérateurs logiques

Opérateurs logiques :

AND (&&) et OR (||)

Les opérandes gauche et droite doivent être des sous-expressions, et le résultat de l'opération doit être une valeur booléenne. Par exemple, l'expression d'évaluation est $0.success_ratio < 90 && $1.Average response time > 60.

Les opérandes gauche et droite doivent être des sous-expressions, et le résultat de l'opération doit être une valeur booléenne. Par exemple, l'expression d'évaluation est $0.success_ratio < 90 && $1.Average response time > 60.

Les opérandes gauche et droite doivent être des sous-expressions, et le résultat de l'opération doit être une valeur booléenne. Par exemple, l'expression d'évaluation est $0.success_ratio < 90 && $1.Average response time > 60.

  • x >= 0 && y <= 100

  • x > 0 || y >0

Opérateur NOT

Opérateur NOT (!)

L'opérande requis doit être une sous-expression, et le résultat de l'opération doit être une valeur booléenne. Par exemple, l'expression d'évaluation est !($0.success_ratio < 90).

Vous ne pouvez pas utiliser directement cet opérateur sur les champs présents dans les résultats d'opérations ensemblistes.

L'opérande requis doit être une sous-expression, et le résultat de l'opération doit être une valeur booléenne. Par exemple, l'expression d'évaluation est !($0.success_ratio < 90).

Vous ne pouvez pas utiliser directement cet opérateur sur les champs présents dans les résultats d'opérations ensemblistes.

L'opérande requis doit être une sous-expression, et le résultat de l'opération doit être une valeur booléenne. Par exemple, l'expression d'évaluation est !($0.success_ratio < 90).

Vous ne pouvez pas utiliser directement cet opérateur sur les champs présents dans les résultats d'opérations ensemblistes.

!(a < 1 && a > 100)

Fonction contains

Fonction contains

Avant l'exécution de la fonction contains, le système convertit les opérandes gauche et droite en chaînes de caractères.

Non pris en charge.

Avant l'exécution de la fonction contains, le système convertit les opérandes gauche et droite en chaînes de caractères.

contains(foo, 'hello'): Si la valeur renvoyée est true, la chaîne foo contient la sous-chaîne hello.

Parenthèses

Parenthèses ()

Les parenthèses () permettent de modifier l'ordre de priorité standard des calculs.

Les parenthèses () permettent de modifier l'ordre de priorité standard des calculs.

Les parenthèses () permettent de modifier l'ordre de priorité standard des calculs.

x * (y + 100) > 100

Évaluer les résultats d'opérations ensemblistes

Simple Log Service prend en charge la surveillance associée pour jusqu'à trois ensembles de données et évalue les résultats d'opérations ensemblistes.

Résultats d'opérations ensemblistes

Les résultats des instructions de requête servent d'entrée, et les champs issus des résultats d'opérations ensemblistes servent de variables pour évaluer s'il convient de déclencher une alerte. Pour plus d'informations sur les opérations ensemblistes, consultez la rubrique Corrélation de plusieurs résultats d'analyse de requêtes. Le tableau suivant décrit les résultats d'opérations ensemblistes.

Remarque

Des opérations ensemblistes telles que CROSS JOIN et LEFT JOIN sont effectuées sur les résultats de requête et d'analyse.

  • Si les résultats de requête et d'analyse ne contiennent pas de champs en double, vous pouvez référencer les champs dans une expression d'évaluation sans ajouter de préfixes. Les préfixes incluent $0, $1 et $2. Exemple : name == 'sls'.

  • Si les résultats de requête et d'analyse contiennent des champs en double, vous pouvez référencer les champs dans une expression d'évaluation en ajoutant des préfixes. Les préfixes incluent $0, $1 et $2. Exemple : $0.name == 'sls' || $1.name == 'ecs'.

Catégorie

Sous-catégorie

Description

Journal

Une instruction de requête ne contenant pas SELECT

Seule une instruction de recherche est utilisée pour interroger les journaux.

Lorsque vous spécifiez une expression d'évaluation pour une condition de déclenchement, vous pouvez référencer les champs contenus dans les résultats de la requête.

Une instruction de requête contenant SELECT * FROM log

Lorsque vous spécifiez une expression d'évaluation pour une condition de déclenchement, vous pouvez référencer les champs pour lesquels l'option Activer l'analyse est activée.

Une instruction de requête contenant SELECT * FROM (SELECT...)

Lorsque vous spécifiez une expression d'évaluation pour une condition de déclenchement, vous pouvez référencer les champs contenus dans la sous-requête SELECT spécifiée.

Métrique

Une instruction de requête contenant SELECT promql(...)

Les fonctions promql_query(string) et promql_query_range(string, string) peuvent toujours renvoyer les champs suivants : metric, labels, time et value. Simple Log Service développe le champ labels au format map.

Lorsque vous spécifiez une expression d'évaluation pour une condition de déclenchement, vous pouvez référencer les champs suivants : metric, labels, time et value. Vous pouvez également référencer les sous-champs du champ labels.

Une instruction de requête contenant SELECT a, b FROM (SELECT promql(...))

Lorsque vous spécifiez une expression d'évaluation pour une condition de déclenchement, vous pouvez référencer les champs pour lesquels l'option Activer l'analyse est activée.

Une instruction de requête contenant SELECT * FROM log

Lorsque vous spécifiez une expression d'évaluation pour une condition de déclenchement, vous pouvez référencer les champs pour lesquels l'option Activer l'analyse est activée.

Données de ressource

Aucun

La valeur d'un champ dans les données de ressource peut être de type chaîne, nombre à virgule flottante ou numérique. Le type JSON n'est pas pris en charge.

Lorsque vous spécifiez une expression d'évaluation pour une condition de déclenchement, vous pouvez référencer l'ID d'un champ dans les données de ressource.

Configurer une condition de déclenchement

L'expression d'évaluation évalue les résultats d'opérations ensemblistes. Si elle renvoie true, le système déclenche une alerte. Les types de conditions de déclenchement suivants sont pris en charge :

  • Des données sont renvoyées : Vérifie le nombre de lignes dans le résultat de l'opération ensembliste. La condition est remplie si au moins une ligne est renvoyée.

    image

  • Le résultat de la requête contient : Vérifie le nombre de lignes dans le résultat de l'opération ensembliste. Les opérateurs pris en charge incluent supérieur à, inférieur à et égal à. La condition est remplie si le nombre de lignes satisfait la condition spécifiée. Par exemple, si l'ensemble de résultats contient 4 lignes et que la condition de déclenchement est Le résultat de la requête contient > 10, la condition n'est pas remplie et aucune alerte n'est générée.

    image

  • Les données correspondent à l'expression : Vérifie le contenu des lignes dans le résultat de l'opération ensembliste. La condition est remplie si le contenu d'au moins une ligne correspond à l'expression d'évaluation. Par exemple, si l'ensemble de résultats contient une ligne (pv=900) et que la condition de déclenchement est Les données correspondent à l'expression, pv > 1000, la condition n'est pas remplie et aucune alerte n'est générée.

    image

  • Le résultat de la requête contient et correspond : Vérifie à la fois le nombre et le contenu des lignes dans le résultat de l'opération ensembliste. Une alerte est déclenchée uniquement lorsqu'un nombre spécifique de lignes correspond à l'expression d'évaluation. Par exemple, si l'ensemble de résultats comporte quatre lignes (pv=900, pv=1100, pv=1200, pv=1001) et que la condition de déclenchement est Le résultat de la requête contient et correspond > 3, pv > 1000, la condition est remplie et une alerte est générée.

    image

Exemples

Exemple 1

Si le taux de réussite des requêtes est inférieur à 90 % et que le temps de réponse moyen des requêtes est supérieur à 60 secondes sur une période de 15 minutes, une alerte est déclenchée. Détails de la configuration :

Statistiques de requête :

  • s0 : Calculez le taux de réussite des requêtes, indiqué par success_ratio. Instruction de requête : * | select round(sum(if(status < 300, 1, 0)) * 100.0 / count(1) , 2) as success_ratio.

  • s1 : Calculez le temps de réponse moyen des requêtes par minute. Instruction de requête : * | select date_format(date_trunc('minute',__time__), '%m-%d %H:%i') as t,avg(request_time) as "Average response time(s)" group by t order by t asc limit 2000

Trigger Condition : L'expression d'évaluation est configurée comme suit : $0.success_ratio < 90 && $1.[Average response time(s)] > 60

image

Exemple 2

Si le nombre de fois où le code d'état HTTP 500 est renvoyé dépasse 10 sur une période de 15 minutes, une alerte est déclenchée. Détails de la configuration :

Statistiques de requête : Comptez les occurrences de chaque code d'état. Instruction de requête : * | select status, COUNT(*) as total group by status

Trigger Condition : L'expression d'évaluation est configurée comme suit : status == 500 && total > 10

image