Tous les produits
Search
Centre de documentation

Cloud Monitor:Expressions de règle d'alerte

Dernière mise à jour :Aug 08, 2026

Les expressions de règle d'alerte permettent de configurer des conditions d'alerte complexes lors de la création d'une règle. Une expression se compose d'éléments de base tels que les noms de métriques, les opérateurs et les fonctions, et prend en charge la comparaison avec les données historiques.

Éléments

Cloud Monitor évalue les expressions de règle d'alerte par rapport aux données agrégées des métriques ou aux instances individuelles. Si les données de surveillance satisfont à l'expression, une alerte est déclenchée. Une expression comprend des noms de métriques, des membres de métriques, des opérateurs, des fonctions et des données de surveillance. Exemple : @cpu_total[60].$instanceId != 'i-2ze3jvsy7620giru****' && @cpu_total[60].$Average > 60.

  • Noms de métriques

    Pour plus d'informations sur les métriques des différents services cloud, consultez la rubrique Annexe 1 : Métriques pour les produits Alibaba Cloud.

    Une expression de métrique utilise le format @Metric name[Aggregation period]. Par exemple, pour surveiller une instance Elastic Compute Service (ECS) à l'aide de la métrique CPUUtilization, utilisez @CPUUtilization[60].

    Remarque
    • La période d'agrégation des métriques ECS s'affiche dans la colonne Min Periods du tableau de la page Metric List page for ECS. Pour afficher la période d'agrégation des métriques d'un autre service cloud, sélectionnez ce service dans la liste déroulante.

    • Un nom de métrique doit respecter l'expression régulière [a-zA-Z][_a-zA-Z0-9]*. Si un nom de métrique ne correspond pas à cette expression régulière, utilisez le format @(Metric name)[Aggregation period], par exemple @('vm.DiskIORead')[60].

    Combinez les noms de métriques avec des membres de métriques pour spécifier la portée des données de surveillance.

  • Membres de métriques

    Les membres de métriques définissent la portée des données de surveillance pour une métrique. Un membre de métrique doit commencer par un signe dollar ($). Utilisez le format @Metric name[Aggregation period].$Metric member. Par exemple, les méthodes statistiques disponibles pour la métrique CPUUtilization d'ECS sont Average, Minimum et Maximum. L'expression correspondant à la valeur moyenne est @CPUUtilization[60].$Average. Les dimensions de la métrique CPUUtilization d'ECS sont userId et instanceId. L'expression pour une instance spécifique est @CPUUtilization[60].$instanceId.

    Remarque

    Les membres des métriques ECS s'affichent dans les colonnes Dimensions et Statistics du tableau de la page Metric List page for ECS. Pour afficher les membres des métriques d'un autre service cloud, sélectionnez ce service dans la liste déroulante.

  • Opérateurs

    Les opérateurs déterminent si les données de surveillance satisfont à la condition d'alerte.

    • Opérateurs de base

      Catégorie

      Opérateur et description

      Opérateurs mathématiques

      • + : addition

      • - : soustraction

      • * : multiplication

      • / : division

      • % : modulo

      • ** : exponentiation

      Opérateurs de comparaison

      • == : égal à

      • ! = : différent de

      • > : supérieur à

      • >= : supérieur ou égal à

      • < : inférieur à

      • <= : inférieur ou égal à

      Opérateurs logiques

      • && ou and : ET

      • || ou or : OU

      • ! ou not : NON

      Exemple : $Average > 50 && $instanceId != 'i-not-exist'.

      Remarque

      Si les valeurs de part et d'autre d'un opérateur mathématique ou de comparaison ne sont pas du même type, la chaîne est convertie en nombre. Par exemple : '123' + 321 == 123 + '321' == 444.

    • Opérateurs de chaîne

      Opérateur de chaîne

      Description

      Exemple

      matches

      Correspond à une expression régulière.

      Utilisez l'opérateur logique NOT avec matches pour inverser la correspondance d'une expression régulière.

      !("hello" matches "^fo.+")

      Remarque

      L'opérateur ! a une priorité supérieure à celle de l'opérateur matches. Vous devez donc placer l'expression régulière entre parenthèses ().

      contains

      Contient une chaîne.

      'abcdef' contains 'cde'

      startsWith

      Vérifie si une chaîne commence par un préfixe spécifié.

      'abcdef' startsWith 'abc'

      endsWith

      Vérifie si une chaîne se termine par un suffixe spécifié.

      'abcdef' endsWith 'def'

    • Opérateurs d'appartenance

      Opérateur d'appartenance

      Description

      Exemple

      in

      Contient

      • userld in [120886317861****, 425876]

        La valeur de userld est 120886317861** ou 20654616023382**.

      • "foo" in {'foo':1, 'bar':2}

        La valeur de foo est foo ou bar.

      not in

      Ne contient pas

      • userld not in [120886317861****, 425876]

        La valeur de userld n'est ni 120886317861** ni 20654616023382**.

      • "foo" not in {'foo1':1, 'bar':2}

        La valeur de foo n'est ni foo1 ni bar.

    • Opérateurs ternaires

      ?: : Fonctionne comme l'opérateur ternaire en C et Java. Par exemple : @CPUUtilization[60].$Average > 30? "ok": "lower".

  • Opérations sur les données

    • Types de données

      Type de données

      Description

      Exemple

      string

      Chaîne entourée de guillemets simples ou doubles.

      "hello", 'hello'

      number

      Nombre entier ou à virgule flottante.

      Remarque

      Pour les entiers, vous pouvez utiliser des traits de soulignement (_) comme séparateurs afin d'améliorer la lisibilité.

      • 103, 2,5, .5, 2e+6

      • 1_000_000

      array

      Tableau.

      [1, 2, 3]

      map ou dict

      Dictionnaire.

      {"foo":"bar"}

      bool

      Valeur booléenne.

      true ou false

      nil

      Valeur vide.

      nil

    • Fonctions intégrées

      Fonction intégrée

      Description

      `len(array

      map

      string)`

      Renvoie la longueur d'un tableau, d'un map ou d'une chaîne.

      now()

      Renvoie un horodatage UTC en millisecondes.

      abs(number)

      Renvoie la valeur absolue (un nombre à virgule flottante).

      rand()

      Renvoie un nombre à virgule flottante compris entre [0, 1).

      rand(N)

      Renvoie un nombre à virgule flottante compris entre [0, N).

      toLower(string)

      Convertit une chaîne en minuscules.

      toUpper(string)

      Convertit une chaîne en majuscules.

    • Comparaison

      Remarque
      • Exemple de métrique : @cpu_total[60].

      • Une méthode d'agrégation est une chaîne. Exemple : '$Average'.

      • Le résultat de la comparaison est une valeur booléenne. Si la valeur de la métrique de la période actuelle est supérieure à celle de la période précédente, le résultat de la comparaison est true. Si la valeur de la métrique de la période actuelle est inférieure à celle de la période précédente, le résultat de la comparaison est false.

      Fonction

      Description

      CompareLastPeriod(metric, aggregation method, comparison result)

      Renvoie le pourcentage de variation par rapport à la période précédente. Exemple : CompareLastPeriod(@cpu_total[60], '$Average', true).

      Par exemple, si la valeur moyenne de cpu_total est de 20 % pendant la période actuelle et de 15 % pendant la période précédente, la valeur renvoyée dépend du résultat de la comparaison.

      • Si le résultat de la comparaison est true, cette fonction renvoie (20 - 15) × 100/20.

      • Si le résultat de la comparaison est false, cette fonction renvoie (15 - 20) × 100/20.

      CompareLastHour(metric, aggregation method, comparison result)

      Renvoie le pourcentage de variation par rapport à l'heure précédente.

      CompareLastHour(@cpu_total[60], '$Average', true) > 10 : Une alerte est déclenchée si la valeur moyenne de cpu_total augmente de 10 % par rapport à hier.

      CompareLastWeek(metric, aggregation method, comparison result)

      Obtient les données comparées à celles d'hier.

      CompareYesterday(@cpu_total[60], '$Average', true) > 10 : Une alerte est déclenchée si la valeur moyenne de cpu_total augmente de 10 % par rapport à la semaine précédente.

      CompareLastWeek(metric, aggregation method, comparison result)

      Obtient les données comparées à celles de la semaine précédente.

      CompareLastWeek(@cpu_total[60], '$Average', true) > 10 : Une alerte est déclenchée si la valeur moyenne de cpu_total augmente de 10 % par rapport à la semaine précédente.

      ComparePast(metric, aggregation method, comparison result, seconds)

      Renvoie le pourcentage de variation par rapport au nombre de seconds spécifié avant l'heure actuelle.

      Les quatre fonctions précédentes sont des formes simplifiées de cette fonction.

      • CompareLastHour(@cpu_total[60], '$Average', true) est équivalent à ComparePast(@cpu_total[60], '$Average', true, 3600).

      • CompareYesterday(@cpu_total[60], '$Average', true) est équivalent à ComparePast(@cpu_total[60], '$Average', true, 246060).

      • CompareLastWeek(@cpu_total[60], '$Average', true) est équivalent à ComparePast(@cpu_total[60], '$Average', true, 72460*60).

    • Fonctions historiques

      Fonction

      Description

      LastPeriod(metric)

      Renvoie les données de la période précédente. Exemple : LastPeriod(@cpu_total[60]).$Average > 75. Une alerte est déclenchée si la valeur moyenne de cpu_total dépasse 75 % lors de la période précédente.

      LastHour(metric)

      Renvoie les données de l'heure précédente. Exemple : LastHour(@cpu_total[60]).$Average > 75. Une alerte est déclenchée si la valeur moyenne de cpu_total dépasse 75 % lors de l'heure précédente.

      Yesterday(metric)

      Renvoie les données du jour précédent. Exemple : Yesterday(@cpu_total[60]).$Average > 75. Une alerte est déclenchée si la valeur moyenne de cpu_total dépasse 75 % la veille.

      LastWeek(metric)

      Renvoie les données de la semaine précédente. Exemple : LastWeek(@cpu_total[60]).$Average > 75. Une alerte est déclenchée si la valeur moyenne de cpu_total dépasse 75 % lors de la semaine précédente.

      Past(metric, seconds)

      Renvoie les données datant du nombre de secondes spécifié avant l'heure actuelle. Ce nombre doit être un multiple entier de la période d'agrégation de la métrique. Les fonctions précédentes sont des abréviations de cette fonction. Par exemple, Past(@cpu_total[60], 3600) > 75 est équivalent à LastHour(@cpu_total[60]).$Average > 75.

Scénarios

Le tableau suivant répertorie les scénarios courants pour les expressions de règle d'alerte.

Scénario

Expression de règle d'alerte

Description

Définir un seuil dédié pour une instance spécifique et un seuil différent pour les autres instances

@cpu_total[60].$Average > (@cpu_total[60].$instanceId == 'i-io8kfvcpp7x5****'? 80: 50)

Une alerte est déclenchée pour l'instance i-io8kfvcpp7x5**** si la valeur moyenne de cpu_total dépasse 80. Pour les autres instances, une alerte est déclenchée si la valeur moyenne de cpu_total dépasse 50.

Exclure une instance spécifique de l'alerte

@cpu_total[60].$instanceId != 'i-io8kfvcpp7x5****' && @cpu_total[60].$Average > 50

Pour l'instance i-io8kfvcpp7x5****, la valeur false est renvoyée et aucune alerte n'est déclenchée. Pour les autres instances, une alerte est déclenchée si la valeur moyenne de cpu_total dépasse 50.

Définir une condition d'alerte basée sur plusieurs métriques

@cpu_total[60].$Average > 50 && @memory_usage[60].$Average > 80

Une alerte est déclenchée si la valeur moyenne de cpu_total pour une instance dépasse 50 % et si la valeur moyenne de memory_usage pour cette instance dépasse 80 %.

Surveiller la latence de reporting des métriques

now() - @heartbeat[60].$reportTime > 60_000

Une alerte est déclenchée si le délai d'expiration du signal heartbeat dépasse une minute.

Remarque

Le paramètre reportTime indique quand une métrique a été signalée. Il s'agit d'un paramètre intégré de chaque métrique. La fonction now() renvoie un horodatage UTC en millisecondes.