Tous les produits
Search
Centre de documentation

CloudOps Orchestration Service:ACS::AlarmTrigger

Dernière mise à jour :Aug 11, 2026

L'action ACS::AlarmTrigger surveille une métrique CloudMonitor et déclenche les tâches suivantes d'un modèle OOS lorsque la métrique franchit un seuil. Utilisez-la pour créer des workflows d'auto-réparation, par exemple pour redémarrer automatiquement une instance ECS lorsque son utilisation du CPU dépasse 90 %.

Fonctionnement

  1. Une exécution OOS contenant ACS::AlarmTrigger démarre avec le statut Pending.

  2. Lorsque la métrique spécifiée atteint le seuil, l'exécution passe au statut Active.

  3. OOS exécute les tâches suivantes définies dans le modèle pour remédier à l'alerte.

Important

AlarmTrigger prend en charge deux types de métriques CloudMonitor :

  • Métriques natives ECS : disponibles sans configuration supplémentaire.

  • Métriques collectées par l'agent : nécessitent l'installation de l'agent CloudMonitor sur l'instance. Pour installer l'agent, accédez à la console CloudMonitor, allez dans Host Monitoring, sélectionnez l'instance cible et cliquez sur Install. Consultez les descriptions des métriques CloudMonitor pour déterminer le type auquel appartient une métrique.

Limites

  • Un modèle ne peut contenir qu'une seule action de déclenchement.

  • L'action de déclenchement doit être la première tâche du modèle.

  • Les actions de déclenchement ne peuvent pas être utilisées dans les modèles enfants (modèles imbriqués).

Propriétés

Propriété Obligatoire Type Description
Namespace Oui String Namespace CloudMonitor du service à surveiller (par exemple, acs_ecs_dashboard pour ECS). Interrogez les valeurs valides à l'aide de l'opération DescribeMetricMetaList.
MetricName Oui String Nom de la métrique (par exemple, cpu_total). Interrogez les valeurs valides à l'aide de DescribeMetricMetaList.
Statistics Oui String Méthode d'agrégation appliquée aux données de métrique, telle que Average, Maximum ou Minimum. Interrogez les valeurs valides à l'aide de DescribeMetricMetaList.
ComparisonOperator Oui String Opérateur qui compare la valeur de la métrique au seuil. Voir Opérateurs de comparaison.
Threshold Oui String Valeur qui déclenche l'alerte (par exemple, "90" pour une utilisation du CPU de 90 %).
Resources Oui String Tableau JSON spécifiant les ressources à surveiller. Voir Formats de ressource.
Times Oui Integer Nombre de violations consécutives requises avant le déclenchement de l'alerte.
Interval Non Integer Intervalle d'évaluation en secondes. Par défaut : 60.
SilenceTime Non Integer Durée de mise en sourdine en secondes. Pendant cette période, une seule notification d'alerte est envoyée même si la métrique dépasse continuellement le seuil. Par défaut : 86400 (24 heures). Minimum : 3600 (1 heure).
Period Non Integer Période d'agrégation en secondes. Par défaut : période de rapport originale de la métrique (généralement 60 pour les métriques ECS).
Tags Non JSON Filtrez les ressources surveillées par tag. Format : [{"Key": "k1", "Value": "v1"}]. Mutuellement exclusif avec ResourceGroup.
ResourceGroup Non String Filtrez les ressources surveillées par ID de groupe de ressources (par exemple, rg-xxxx). Mutuellement exclusif avec Tags.

Opérateurs de comparaison

Valeur Signification
GreaterThanOrEqualToThreshold >= seuil
GreaterThanThreshold > seuil
LessThanOrEqualToThreshold <= seuil
LessThanThreshold < seuil
NotEqualToThreshold != seuil
GreaterThanYesterday Augmentation par rapport à la même heure la veille
LessThanYesterday Diminution par rapport à la même heure la veille
GreaterThanLastWeek Augmentation par rapport à la même heure la semaine précédente
LessThanLastWeek Diminution par rapport à la même heure la semaine précédente
GreaterThanLastPeriod Augmentation par rapport à la période précédente
LessThanLastPeriod Diminution par rapport à la période précédente

Formats de ressource

Étendue Format
Toutes les ressources sous le compte actuel [{"resource":"_ALL"}]
Une instance spécifique [{"instanceId":"i-bp123467zxcvb"}]
Une partition de disque spécifique [{"instanceId":"i-bp123467zxcvb","device":"/dev/vda1"}]
Plusieurs partitions de disque [{"instanceId":"i-bp123467zxcvb","device":"/dev/vda1"},{"instanceId":"i-bp123467zxcvb","device":"/dev/vdb1"}]

Sorties

Utilisez le bloc Outputs pour extraire des valeurs du JSON de l'événement d'alerte. Spécifiez un ValueSelector à l'aide d'une expression de chemin JSON (par exemple, .instanceId).

Structure JSON de l'événement d'alerte :

{
  "curLevel": "INFO",
  "Minimum": "34.00",
  "Maximum": "95.00",
  "instanceId": "i-abc12345zxcv",
  "Average": "85.00",
  "ruleName": "alarmtrigger-13012345678-exec-2130c0c073fa487098d3",
  "userId": "13012345678",
  "timestamp": "1598349720000",
  "executionId": "exec-2130c0c073fa487098d3",
  "sourceAliUid": "13012345678"
}
Champ Description
instanceId ID de l'instance qui a déclenché l'alerte
curLevel Niveau de gravité de l'alerte
Average / Minimum / Maximum Valeurs de métrique agrégées
ruleName Nom de la règle d'alerte
userId ID du compte Alibaba Cloud
timestamp Horodatage Unix (millisecondes) de l'événement d'alerte
executionId ID d'exécution OOS

Syntaxe

YAML

Tasks:
  - Name: <task-name>
    Action: 'ACS::AlarmTrigger'
    Properties:
      Namespace: 'acs_ecs_dashboard'
      MetricName: 'cpu_total'
      Statistics: 'Average'
      ComparisonOperator: 'GreaterThanThreshold'
      Threshold: '90'
      Resources: '[{"resource":"_ALL"}]'
      Times: 1
      Interval: 60
      SilenceTime: 3600
    Outputs:
      instanceId:
        Type: String
        ValueSelector: .instanceId

JSON

{
  "Tasks": [
    {
      "Name": "<task-name>",
      "Action": "ACS::AlarmTrigger",
      "Properties": {
        "Namespace": "acs_ecs_dashboard",
        "MetricName": "cpu_total",
        "Statistics": "Average",
        "ComparisonOperator": "GreaterThanThreshold",
        "Threshold": "90",
        "Resources": "[{\"resource\":\"_ALL\"}]",
        "Times": 1,
        "Interval": 60,
        "SilenceTime": 3600
      },
      "Outputs": {
        "instanceId": {
          "Type": "String",
          "ValueSelector": ".instanceId"
        }
      }
    }
  ]
}

Exemple : Redémarrer une instance ECS en cas de CPU élevé

Ce modèle surveille les instances ECS correspondant à des tags spécifiques. Lorsque l'utilisation moyenne du CPU d'une instance dépasse le seuil dans une fenêtre d'évaluation d'une minute, OOS vérifie que l'instance possède le tag attendu, puis la redémarre.

Prérequis :

  • L'agent CloudMonitor est installé sur les instances cibles

  • Le rôle RAM OOSServiceRole existe (ou spécifiez un rôle personnalisé)

YAML

FormatVersion: OOS-2019-06-01
Description:
  en: Reboot ECS instance with specified tag when its CPU utilization exceeded threshold. The selected instance must already have the Cloud Monitor agent installed.
  name-en: ACS-ECS-RebootInstanceAtHighCpuByTags
  categories:
    - alarm-trigger
Parameters:
  tags:
    Type: Json
    Description:
      en: The tags to select ECS instances.
    AssociationProperty: Tags
  threshold:
    Type: Number
    Description:
      en: The CPU utilization threshold.
  silenceTime:
    Type: Number
    Description:
      en: The silence time of alarm (seconds).
    Default: 60
  OOSAssumeRole:
    Description:
      en: The RAM role to be assumed by OOS.
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: alarmTrigger
    Action: 'ACS::AlarmTrigger'
    Description:
      en: Set the CPU utilization alarm for ECS instance.
    Properties:
      Namespace: acs_ecs_dashboard
      MetricName: cpu_total
      Statistics: Average
      ComparisonOperator: GreaterThanThreshold
      Threshold: '{{threshold}}'
      Times: 1
      SilenceTime: '{{ silenceTime }}'
      Period: 60
      Interval: 60
    Outputs:
      InstanceId:
        Type: String
        ValueSelector: .instanceId
  - Name: CheckForInstances
    Action: 'ACS::CheckFor'
    Description:
      en: Check ECS instance has specified tag.
    OnError: 'ACS::END'
    Properties:
      Service: ECS
      API: DescribeInstances
      Parameters:
        Tags: '{{ tags }}'
        InstanceIds: '["{{ alarmTrigger.instanceId }}"]'
      PropertySelector: TotalCount
      DesiredValues:
        - 1
  - Name: RebootInstance
    Action: 'ACS::ECS::RebootInstance'
    Description:
      en: Restarts the ECS instances.
    Properties:
      instanceId: '{{ alarmTrigger.instanceId }}'

JSON

{
  "FormatVersion": "OOS-2019-06-01",
  "Description": {
    "en": "Reboot ECS instance with specified tag when its CPU utilization exceeded threshold. The selected instance must already have the Cloud Monitor agent installed.",
    "name-en": "ACS-ECS-RebootInstanceAtHighCpuByTags",
    "categories": ["alarm-trigger"]
  },
  "Parameters": {
    "tags": {
      "Type": "Json",
      "Description": { "en": "The tags to select ECS instances." },
      "AssociationProperty": "Tags"
    },
    "threshold": {
      "Type": "Number",
      "Description": { "en": "The CPU utilization threshold." }
    },
    "silenceTime": {
      "Type": "Number",
      "Description": { "en": "The silence time of alarm (seconds)." },
      "Default": 60
    },
    "OOSAssumeRole": {
      "Description": { "en": "The RAM role to be assumed by OOS." },
      "Type": "String",
      "Default": "OOSServiceRole"
    }
  },
  "RamRole": "{{ OOSAssumeRole }}",
  "Tasks": [
    {
      "Name": "alarmTrigger",
      "Action": "ACS::AlarmTrigger",
      "Description": { "en": "Set the CPU utilization alarm for ECS instance." },
      "Properties": {
        "Namespace": "acs_ecs_dashboard",
        "MetricName": "cpu_total",
        "Statistics": "Average",
        "ComparisonOperator": "GreaterThanThreshold",
        "Threshold": "{{threshold}}",
        "Times": 1,
        "SilenceTime": "{{ silenceTime }}",
        "Period": 60,
        "Interval": 60
      },
      "Outputs": {
        "InstanceId": {
          "Type": "String",
          "ValueSelector": ".instanceId"
        }
      }
    },
    {
      "Name": "CheckForInstances",
      "Action": "ACS::CheckFor",
      "Description": { "en": "Check ECS instance has specified tag." },
      "OnError": "ACS::END",
      "Properties": {
        "Service": "ECS",
        "API": "DescribeInstances",
        "Parameters": {
          "Tags": "{{ tags }}",
          "InstanceIds": "[\"{{ alarmTrigger.instanceId }}\"]"
        },
        "PropertySelector": "TotalCount",
        "DesiredValues": [1]
      }
    },
    {
      "Name": "RebootInstance",
      "Action": "ACS::ECS::RebootInstance",
      "Description": { "en": "Restarts the ECS instances." },
      "Properties": {
        "instanceId": "{{ alarmTrigger.instanceId }}"
      }
    }
  ]
}