Todos os produtos
Search
Central de documentação

CloudOps Orchestration Service:ACS::AlarmTrigger

Última atualização: Jun 28, 2026

A ação ACS::AlarmTrigger monitora uma métrica do CloudMonitor e aciona tarefas subsequentes em um modelo OOS quando a métrica ultrapassa um limiar. Use este recurso para criar fluxos de trabalho de autorrecuperação, como reiniciar automaticamente uma instância ECS quando o uso da CPU exceder 90%.

Funcionamento

  1. Uma execução OOS com ACS::AlarmTrigger inicia com o status Pending.

  2. Quando a métrica atinge o limiar especificado, a execução muda para o status Active.

  3. O OOS executa as tarefas seguintes definidas no modelo para remediar o alerta.

Importante

O AlarmTrigger oferece suporte a dois tipos de métricas do CloudMonitor:

  • Métricas nativas do ECS: disponíveis sem configuração adicional.

  • Métricas coletadas por agente: exigem o agente do CloudMonitor na instância. Para instalar o agente, acesse o console CloudMonitor, acesse Host Monitoring, selecione a instância de destino e clique em Install. Consulte as descrições de métricas do CloudMonitor para identificar o tipo de cada métrica.

Limitações

  • Um modelo pode conter apenas uma ação de gatilho.

  • A ação de gatilho deve ser a primeira tarefa do modelo.

  • Não é possível usar ações de gatilho em modelos filhos (modelos incorporados).

Propriedades

Propriedade

Obrigatória

Tipo

Descrição

Namespace

Sim

String

Namespace do CloudMonitor do serviço monitorado (por exemplo, acs_ecs_dashboard para ECS). Consulte os valores válidos na operação DescribeMetricMetaList.

MetricName

Sim

String

Nome da métrica (exemplo: cpu_total). Consulte os valores válidos com DescribeMetricMetaList.

Statistics

Sim

String

Método de agregação aplicado aos dados da métrica, como Average, Maximum ou Minimum. Consulte os valores válidos com DescribeMetricMetaList.

ComparisonOperator

Sim

String

Operador que compara o valor da métrica com o limiar. Veja Operadores de comparação.

Threshold

Sim

String

Valor que dispara o alerta (por exemplo, "90" indica 90% de uso de CPU).

Resources

Sim

String

Array JSON que especifica os recursos a monitorar. Consulte Formatos de recurso.

Times

Sim

Integer

Quantidade de violações consecutivas necessárias para disparar o alerta.

Interval

Não

Integer

Intervalo de avaliação em segundos. Padrão: 60.

SilenceTime

Não

Integer

Duração do silêncio em segundos. Nesse período, o sistema envia apenas uma notificação de alerta, mesmo que a métrica continue acima do limiar. Padrão: 86400 (24 horas). Mínimo: 3600 (1 hora).

Period

Não

Integer

Período de agregação em segundos. Padrão: período original de relatório da métrica (geralmente 60 para métricas de ECS).

Tags

Não

JSON

Filtra os recursos monitorados por tag. Formato: [{"Key": "k1", "Value": "v1"}]. Mutuamente exclusivo com ResourceGroup.

ResourceGroup

Não

String

Filtra os recursos monitorados pelo ID do grupo de recursos (exemplo: rg-xxxx). Mutuamente exclusivo com Tags.

Operadores de comparação

Valor

Significado

GreaterThanOrEqualToThreshold

>= limiar

GreaterThanThreshold

> limiar

LessThanOrEqualToThreshold

<= limiar

LessThanThreshold

< limiar

NotEqualToThreshold

!= limiar

GreaterThanYesterday

Aumento em relação ao mesmo horário de ontem

LessThanYesterday

Redução em relação ao mesmo horário de ontem

GreaterThanLastWeek

Aumento em relação ao mesmo horário da semana passada

LessThanLastWeek

Redução em relação ao mesmo horário da semana passada

GreaterThanLastPeriod

Aumento em relação ao período anterior

LessThanLastPeriod

Redução em relação ao período anterior

Formatos de recurso

Escopo

Formato

Todos os recursos da conta atual

[{"resource":"_ALL"}]

Uma instância específica

[{"instanceId":"i-bp123467zxcvb"}]

Uma partição de disco específica

[{"instanceId":"i-bp123467zxcvb","device":"/dev/vda1"}]

Várias partições de disco

[{"instanceId":"i-bp123467zxcvb","device":"/dev/vda1"},{"instanceId":"i-bp123467zxcvb","device":"/dev/vdb1"}]

Saídas

Use o bloco Outputs para extrair valores do JSON do evento de alerta. Especifique um ValueSelector com uma expressão de caminho JSON (por exemplo, .instanceId).

Estrutura JSON do evento de alerta:

{
  "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"
}

Campo

Descrição

instanceId

ID da instância que disparou o alerta

curLevel

Nível de severidade do alerta

Average / Minimum / Maximum

Valores agregados da métrica

ruleName

Nome da regra de alerta

userId

ID da conta Alibaba Cloud

timestamp

Timestamp Unix (milissegundos) do evento de alerta

executionId

ID da execução OOS

Sintaxe

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"
        }
      }
    }
  ]
}

Exemplo: Reiniciar uma instância ECS devido a alto uso de CPU

Este modelo monitora instâncias ECS com tags específicas. Quando o uso médio de CPU de uma instância ultrapassa o limiar em uma janela de avaliação de 1 minuto, o OOS verifica se a instância possui a tag esperada e a reinicia.

Pré-requisitos:

  • Agente do CloudMonitor instalado nas instâncias de destino.

  • Função RAM OOSServiceRole existente (ou especifique uma função personalizada).

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 }}"
      }
    }
  ]
}