Tous les produits
Search
Centre de documentation

Resource Orchestration Service:ALIYUN::SLS::Alert

Dernière mise à jour :Aug 12, 2026

ALIYUN::SLS::Alert permet de créer une règle d'alerte.

Syntaxe

{
  "Type": "ALIYUN::SLS::Alert",
  "Properties": {
    "Project": String,
    "Detail": Map
  }
}

Propriétés

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Project

String

Oui

Non

Nom du projet.

Aucune.

Detail

Map

Oui

Oui

Détails de la règle d'alerte.

Pour plus d'informations, consultez Propriétés Detail.

Syntaxe Detail

"Detail": {
  "Type": String,
  "Description": String,
  "Configuration": Map,
  "State": String,
  "Schedule": Map,
  "DisplayName": String,
  "Name": String
}

Propriétés Detail

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Type

String

Non

Non

Type de la règle d'alerte.

Aucune.

Description

String

Non

Oui

Description de la règle d'alerte.

Aucune.

Configuration

Map

Oui

Oui

Configuration de la règle d'alerte.

Pour plus d'informations, consultez Propriétés Configuration.

State

String

Non

Non

Indique si la règle d'alerte est activée.

Valeurs valides :

  • Enable

  • Disabled

Schedule

Map

Oui

Oui

Intervalle d'évaluation de la règle d'alerte par Log Service.

Si l'évaluation retourne plus de 100 entrées de journal, seules les 100 premières sont vérifiées.

Pour plus d'informations, consultez Propriétés Schedule.

DisplayName

String

Oui

Oui

Nom d'affichage de la règle d'alerte.

Le nom doit comporter entre 1 et 64 caractères.

Name

String

Oui

Non

Nom de la règle d'alerte.

Aucune.

Syntaxe Configuration

"Configuration": {
  "Throttling": String,
  "Condition": String,
  "NotificationList": List,
  "NotifyThreshold": Integer,
  "Dashboard": String,
  "QueryList": List,
  "Type": String,
  "GroupConfiguration": Map,
  "NoDataFire": Boolean,
  "Threshold": Integer,
  "SeverityConfigurations": List,
  "Labels": List,
  "AutoAnnotation": Boolean,
  "PolicyConfiguration": Map,
  "SendResolved": Boolean,
  "NoDataSeverity": Integer,
  "Annotations": List,
  "MuteUntil": Integer,
  "JoinConfigurations": List,
  "Version": String
}

Propriétés Configuration

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Throttling

String

Non

Oui

Intervalle entre les envois de notifications d'alerte par Log Service.

Aucune.

Condition

String

Non

Oui

Condition de déclenchement.

Opérateurs arithmétiques pris en charge : addition (+), soustraction (-), multiplication (*), division (/) et modulo (%). Opérateurs de comparaison pris en charge : supérieur à (>), supérieur ou égal à (>=), inférieur à (<), inférieur ou égal à (<=), égal à (==), différent de (!=), correspondance (=~) et non-correspondance (!~).

Pour plus d'informations, consultez Syntaxe des conditions de déclenchement dans les règles d'alerte.

NotificationList

List

Non

Oui

Liste des notifications d'alerte.

Pour plus d'informations, consultez Propriétés NotificationList.

NotifyThreshold

Integer

Non

Oui

Seuil de déclenchement des notifications d'alerte.

Aucune.

Dashboard

String

Oui

Oui

Tableau de bord associé à la règle d'alerte.

Aucune.

QueryList

List

Oui

Oui

Liste des instructions de requête.

Pour plus d'informations, consultez Propriétés QueryList.

Type

String

Non

Oui

Type de la règle d'alerte.

Définissez la valeur sur default.

GroupConfiguration

Map

Non

Oui

Configuration de l'évaluation groupée.

Pour plus d'informations, consultez Propriétés GroupConfiguration.

NoDataFire

Boolean

Non

Oui

Indique si la fonctionnalité d'alerte en cas d'absence de données est activée.

Valeur par défaut : false. Valeurs valides :

  • true : active la fonctionnalité d'alerte en cas d'absence de données.

    Si cette propriété est définie sur true, une alerte se déclenche lorsque le nombre de fois où aucune donnée n'est retournée pour un résultat de requête et d'analyse dépasse la valeur de la propriété Threshold.

    Remarque

    En présence de plusieurs résultats de requête et d'analyse, une alerte se déclenche lorsque le nombre de fois où aucune donnée n'est retournée pour une opération d'ensemble sur ces résultats dépasse la valeur de la propriété Threshold.

    Pour plus d'informations, consultez Alerte en cas d'absence de données.

  • false : désactive la fonctionnalité d'alerte en cas d'absence de données.

Threshold

Integer

Non

Oui

Seuil de déclenchement de l'alerte.

Une alerte se déclenche lorsque le nombre consécutif de fois où la condition de déclenchement est remplie atteint le seuil spécifié. Le système ne comptabilise pas les occurrences où la condition n'est pas remplie.

SeverityConfigurations

List

Non

Oui

Condition de déclenchement. Spécifiez au moins une condition de déclenchement.

Pour plus d'informations, consultez Propriétés SeverityConfigurations.

Labels

List

Non

Oui

Libellés de la règle d'alerte.

Pour plus d'informations, consultez Propriétés Labels.

AutoAnnotation

Boolean

Non

Oui

Indique si le système peut ajouter automatiquement des annotations à la règle d'alerte.

Valeur par défaut : true. Valeurs valides :

  • true : autorise le système à ajouter automatiquement des annotations telles que __count__ à la règle d'alerte.

    Pour plus d'informations, consultez Commutateur Auto-Add.

  • false : empêche le système d'ajouter automatiquement des annotations à la règle d'alerte.

PolicyConfiguration

Map

Non

Oui

Configuration de la politique d'alerte.

Pour plus d'informations, consultez Propriétés PolicyConfiguration.

SendResolved

Boolean

Non

Oui

Indique si une notification de rétablissement est envoyée lors de la résolution d'une alerte.

Valeur par défaut : false. Valeurs valides :

  • true : envoie une notification de rétablissement lors de la résolution d'une alerte.

    Pour plus d'informations, consultez Notifications de rétablissement.

  • false : n'envoie pas de notification de rétablissement lors de la résolution d'une alerte.

NoDataSeverity

Integer

Non

Oui

Niveau de gravité d'une alerte en cas d'absence de données.

Pour plus d'informations, consultez Gravités des alertes.

Annotations

List

Non

Oui

Annotations de la règle d'alerte.

Pour plus d'informations, consultez Propriétés Annotations.

MuteUntil

Integer

Non

Oui

Seuil de déclenchement de l'alerte.

Aucune.

JoinConfigurations

List

Non

Oui

Configuration des opérations d'ensemble.

Pour plus d'informations, consultez Propriétés JoinConfigurations.

  • Si vous ne spécifiez qu'une seule instruction de requête dans la propriété QueryList, la propriété JoinConfigurations n'est pas nécessaire.

  • Si vous spécifiez deux ou trois instructions de requête dans la propriété QueryList, définissez la propriété JoinConfigurations pour associer les résultats de requête et d'analyse.

    Pour plus d'informations, consultez Opérations multi-ensembles.

Version

String

Non

Oui

Version de la règle d'alerte.

Définissez la valeur sur 2,0.

Syntaxe NotificationList

"NotificationList": [
  {
    "Type": String,
    "MobileList": List,
    "ServiceUri": String,
    "Content": String,
    "EmailList": List,
    "Method": String,
    "Headers": Map
  }
]

Propriétés NotificationList

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Type

String

Oui

Non

Méthode d'envoi des notifications d'alerte.

Valeurs valides :

  • Email : E-mail

  • MessageCenter : Message Center

  • DingTalk : Webhook de chatbot DingTalk

  • Webhook : Webhook personnalisé

Content

String

Non

Non

Contenu de la notification d'alerte.

Vous pouvez utiliser les variables de modèle suivantes dans le contenu : ${Project}, ${Condition}, ${AlertName}, ${AlertID}, ${Dashboard}, ${FireTime}, and ${Results}.

Pour plus d'informations, consultez Configurer les méthodes de notification.

MobileList

List

Non

Non

Liste des numéros de téléphone mobile.

Un numéro de téléphone mobile peut recevoir jusqu'à 50 SMS par jour.

ServiceUri

String

Non

Non

URL de la requête.

Cette propriété est requise si la propriété Type est définie sur Webhook ou DingTalk.

EmailList

List

Non

Non

Liste des adresses e-mail.

Cette propriété est requise si la propriété Type est définie sur Email.

Une adresse e-mail peut recevoir jusqu'à 100 e-mails par jour.

Method

String

Non

Non

Méthode de requête HTTP.

Aucune.

Headers

Map

Non

Non

Détails de l'en-tête de requête.

Aucune.

Syntaxe QueryList

"QueryList": [
  {
    "Query": String,
    "LogStore": String,
    "Start": String,
    "TimeSpanType": String,
    "End": String,
    "ChartTitle": String,
    "DashboardId": String,
    "Region": String,
    "RoleArn": String,
    "StoreType": String,
    "PowerSqlMode": String,
    "Project": String,
    "Store": String
  }
]

Propriétés QueryList

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Query

String

Oui

Non

Instruction de requête.

Aucune.

LogStore

String

Non

Non

Logstore concerné.

Aucune.

Start

String

Oui

Non

Début de la plage temporelle de la requête.

Aucune.

TimeSpanType

String

Oui

Non

Plage temporelle de la requête.

Aucune.

End

String

Oui

Non

Fin de la plage temporelle de la requête.

Aucune.

ChartTitle

String

Non

Non

Titre du graphique.

Aucune.

DashboardId

String

Non

Non

ID du tableau de bord associé à la règle d'alerte.

Aucune.

Region

String

Non

Non

Région du projet.

Aucune.

RoleArn

String

Non

Non

Alibaba Cloud Resource Name (ARN) du rôle RAM requis pour accéder aux données.

Pour plus d'informations, consultez Configurer les politiques de contrôle d'accès.

StoreType

String

Non

Non

Type de source de données.

Valeurs valides :

  • log : Données Logstore

  • metric : Données Metricstore

  • meta : Données de ressource

PowerSqlMode

String

Non

Non

Indique si le système peut activer Dedicated SQL.

Valeurs valides :

  • auto : Le système active ou désactive automatiquement Dedicated SQL.

  • enable : Le système active Dedicated SQL.

  • disable : Le système désactive Dedicated SQL.

Project

String

Non

Non

Projet associé à l'instruction de requête.

Aucune.

Store

String

Non

Non

Logstore, Metricstore ou données de ressource associé(e) à l'instruction de requête.

Aucune.

Syntaxe Schedule

"Schedule": {
  "Type": String,
  "Interval": String,
  "Hour": Integer,
  "DayOfWeek": Integer,
  "CronExpression": String,
  "Delay": Integer,
  "RunImmediately": Boolean
}

Propriétés Schedule

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Type

String

Oui

Oui

Type de planification déterminant le déclenchement de la règle d'alerte.

Valeurs valides :

  • Hourly : Déclenchement toutes les heures.

  • Daily : Déclenchement quotidien.

  • Weekly : Déclenchement hebdomadaire.

  • FixedRate : Déclenchement à intervalle régulier.

  • Cron : Déclenchement basé sur une expression CRON.

Interval

String

Non

Oui

Intervalle de temps pour le déclenchement régulier de la règle d'alerte.

Cette propriété est requise si la propriété Type est définie sur FixedRate.

Valeurs valides :

  • 10d : Déclenchement tous les 10 jours.

  • 10h : Déclenchement toutes les 10 heures.

  • 10m : Déclenchement toutes les 10 minutes.

Hour

Integer

Non

Oui

Heure de la journée à laquelle la règle d'alerte se déclenche.

Cette propriété est requise si la propriété Type est définie sur Daily ou Weekly.

Valeurs valides : 0 à 23.

DayOfWeek

Integer

Non

Oui

Jour de la semaine auquel la règle d'alerte se déclenche.

Cette propriété est requise si la propriété Type est définie sur Weekly.

Valeurs valides : 1 à 7.

CronExpression

String

Non

Oui

Expression CRON déterminant le déclenchement de la règle d'alerte.

Cette propriété est requise si la propriété Type est définie sur Cron.

RunImmediately

Boolean

Non

Oui

Indique si la règle d'alerte doit se déclencher immédiatement.

Valeurs valides :

  • true

  • false

Delay

Integer

Non

Oui

Indique si le déclenchement de la règle d'alerte doit être différé.

Aucune.

Syntaxe SeverityConfigurations

"SeverityConfigurations": {
 "EvalCondition": Map,
 "Severity": Integer
}

Propriétés SeverityConfigurations

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

EvalCondition

Map

Non

Non

Condition de déclenchement.

Pour plus d'informations, consultez Propriétés EvalCondition.

Severity

Integer

Oui

Non

Niveau de gravité de l'alerte.

Pour plus d'informations, consultez Structure de données d'une règle de surveillance d'alerte.

Syntaxe EvalCondition

"EvalCondition": {
"Condition": String,
"CountCondition": String
}

Propriétés EvalCondition

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Condition

String

Non

Non

Expression utilisée pour faire correspondre les données.

  • Si aucune correspondance de données n'est nécessaire, définissez la valeur sur une chaîne vide.

  • Dans les autres cas, définissez la valeur sur une expression. Exemple : errCnt > 10.

CountCondition

String

Non

Non

Expression utilisée pour faire correspondre le nombre d'entrées de données.

  • Pour que l'expression corresponde lorsqu'il existe des données, définissez la valeur sur une chaîne vide.

  • Dans les autres cas, définissez la valeur sur une expression. Exemple : __count__ > 3.

Syntaxe Labels

"Labels": [{
 "Value": String,
 "Key": String
}]

Propriétés Labels

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Value

String

Oui

Non

Valeur du champ.

Aucune.

Key

String

Oui

Non

Clé du champ.

Aucune.

Syntaxe GroupConfiguration

"GroupConfiguration": {
 "Type": String,
 "Fields": List
}

Propriétés GroupConfiguration

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Type

String

Oui

Non

Type d'évaluation groupée.

Valeurs valides :

  • no_group : Les résultats de requête et d'analyse ne sont pas groupés.

  • custom : Les résultats de requête et d'analyse sont groupés selon le champ personnalisé spécifié.

  • labels_auto : Les résultats de requête et d'analyse sont automatiquement groupés selon les libellés spécifiés. Cette valeur est prise en charge uniquement pour les données de séries temporelles.

Fields

List

Non

Non

Champs utilisés pour l'évaluation groupée.

Aucune.

Syntaxe Annotations

"Annotations": [{
 "Value": String,
 "Key": String
}]

Propriétés Annotations

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Key

String

Oui

Non

Clé du champ.

Aucune.

Value

String

Oui

Non

Valeur du champ.

Aucune.

Syntaxe JoinConfigurations

"JoinConfigurations": {
 "Type": String,
 "Condition": String
}

Propriétés JoinConfigurations

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

Condition

String

Non

Non

Expression conditionnelle.

Cette propriété est requise si la propriété Type est définie sur cross_join, concat ou no_join. Exemple : $0.host == $1.ip.

Type

String

Oui

Non

Type d'opération d'ensemble.

Valeurs valides :

  • cross_join : Produit cartésien.

  • inner_join : Jointure interne.

  • left_join : Jointure gauche

  • right_join : Jointure droite.

  • full_join : Jointure complète.

  • left_exclude : Exclusion gauche.

  • right_exclude : Exclusion droite.

  • concat : Concaténation. Le système parcourt chaque jeu de données séquentiellement.

  • no_join : Aucune jointure. Le système utilise uniquement le premier jeu de données.

Syntaxe PolicyConfiguration

"PolicyConfiguration": {
"RepeatInterval": String,
 "ActionPolicyId": String,
 "AlertPolicyId": String,
 "UseDefault": Boolean
}

Propriétés PolicyConfiguration

Propriété

Type

Obligatoire

Modifiable

Description

Contrainte

RepeatInterval

String

Non

Non

Intervalle de répétition.

Aucune.

ActionPolicyId

String

Non

Non

ID de la politique d'action.

En mode avancé, si la politique d'alerte n'utilise pas de politique d'action dynamique, définissez la valeur sur une chaîne vide.

AlertPolicyId

String

Non

Non

ID de la politique d'alerte.

  • En mode simple ou standard, définissez la valeur sur sls.builtin.dynamic. Cette valeur correspond à une politique d'alerte dynamique intégrée.

  • En mode avancé, définissez la valeur sur l'ID de la politique d'alerte souhaitée.

UseDefault

Boolean

Non

Non

Champ de compatibilité.

Définissez la valeur sur false.

Valeurs de retour

Fn::GetAtt

Name : nom de la règle d'alerte.

Exemples

  • YAML format

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters: {}
    Resources:
      Alert:
        Type: ALIYUN::SLS::Alert
        Properties:
          Project: TestSlsProject
          Detail:
            DisplayName: ros-test-alert
            Description: test
            Schedule:
              Delay: 1
              Interval: 15m
              Type: FixedRate
              RunImmediately: false
            State: Enabled
            Configuration:
              Throttling: 5m
              NotifyThreshold: 1
              QueryList:
                - End: now
                  LogStore: audit-cf5362d1f87754fb29
                  ChartTitle: k8s-log-c7b729e7ea122425182133bc2c3ea
                  Start: '-15m'
                  Query: |-
                    objectRef.resource : "networkpolicies" and verb : create NOT  user.username: node NOT  user.username: serviceaccount NOT  user.username: apiserver NOT  user.username: kube-scheduler NOT  user.username: kube-controller-manager       | SELECT auditID as "Event ID", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as "Operation time", "objectRef.name" as "Name", "objectRef.namespace" as "Namespace", "responseStatus.code" as "Status code",
                     CASE WHEN "user.username" != 'kubernetes-admin' then "user.username"
                     WHEN "user.username" = 'kubernetes-admin' and regexp_like("annotations.authorization.k8s.io/reason", 'RoleBinding') then regexp_extract("annotations.authorization.k8s.io/reason", ' to User "(\w+)"', 1) ELSE 'kubernetes-admin' END
                     as "Username",
                    CASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END
                    as "Source IP address" order by "Operation time"
                  TimeSpanType: Custom
              Dashboard: audit-cf5362d1f87754fb4a_network_policy_op_cn
              NotificationList:
                - Content: Message
                  ServiceUri: http://xxxx
                  Type: DingTalk
                - Content: Email Message
                  EmailList:
                    - abc@test.com
                  Type: Email
                - MobileList:
                    - 132373830xx
                  Content: Cellphone message
                  Type: SMS
              Condition: total  > 1
            Type: Alert
            Name: alert_2
    Outputs:
      Name:
        Description: Alert name.
        Value:
          Fn::GetAtt:
            - Alert
            - Name
  • JSON format

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
      },
      "Resources": {
        "Alert": {
          "Type": "ALIYUN::SLS::Alert",
          "Properties": {
            "Project": "TestSlsProject",
            "Detail": {
              "DisplayName": "ros-test-alert",
              "Description": "test",
              "Schedule": {
                "Delay": 1,
                "Interval": "15m",
                "Type": "FixedRate",
                "RunImmediately": false
              },
              "State": "Enabled",
              "Configuration": {
                "Throttling": "5m",
                "NotifyThreshold": 1,
                "QueryList": [
                  {
                    "End": "now",
                    "LogStore": "audit-cf5362d1f87754fb29",
                    "ChartTitle": "k8s-log-c7b729e7ea122425182133bc2c3ea",
                    "Start": "-15m",
                    "Query": "objectRef.resource : \"networkpolicies\" and verb : create NOT  user.username: node NOT  user.username: serviceaccount NOT  user.username: apiserver NOT  user.username: kube-scheduler NOT  user.username: kube-controller-manager       | SELECT auditID as \"Event ID\", date_format(from_unixtime(__time__), '%Y-%m-%d %T' ) as \"Operation time\", \"objectRef.name\" as \"Name\", \"objectRef.namespace\" as \"Namespace\", \"responseStatus.code\" as \"Status code\",\n CASE WHEN \"user.username\" != 'kubernetes-admin' then \"user.username\"\n WHEN \"user.username\" = 'kubernetes-admin' and regexp_like(\"annotations.authorization.k8s.io/reason\", 'RoleBinding') then regexp_extract(\"annotations.authorization.k8s.io/reason\", ' to User \"(\\w+)\"', 1) ELSE 'kubernetes-admin' END  \n as \"Username\", \nCASE WHEN json_array_length(sourceIPs) = 1 then json_format(json_array_get(sourceIPs, 0)) ELSE  sourceIPs END\nas \"Source IP address\" order by \"Operation time\"",
                    "TimeSpanType": "Custom"
                  }
                ],
                "Dashboard": "audit-cf5362d1f87754fb4a_network_policy_op_cn",
                "NotificationList": [
                  {
                    "Content": "Message",
                    "ServiceUri": "http://xxxx",
                    "Type": "DingTalk"
                  },
                  {
                    "Content": "Email Message",
                    "EmailList": [
                      "abc@test.com"
                    ],
                    "Type": "Email"
                  },
                  {
                    "MobileList": [
                      "132373830xx"
                    ],
                    "Content": "Cellphone message",
                    "Type": "SMS"
                  }
                ],
                "Condition": "total  > 1"
              },
              "Type": "Alert",
              "Name": "alert_2"
            }
          }
        }
      },
      "Outputs": {
        "Name": {
          "Description": "Alert name.",
          "Value": {
            "Fn::GetAtt": [
              "Alert",
              "Name"
            ]
          }
        }
      }
    }