Combinar alarmes
Com o CloudWatch, você pode combinar vários alarmes em um único alarme composto para criar um indicador de integridade resumido e agregado de toda uma aplicação ou grupo de recursos. Os alarmes compostos são alarmes que determinam seu estado monitorando os estados de outros alarmes. Você define regras para combinar o status desses alarmes monitorados usando a lógica booleana.
Você pode usar alarmes compostos para reduzir o ruído do alarme, tomando medidas apenas em um nível agregado. Por exemplo, você pode criar um alarme composto para enviar uma notificação à sua equipe de servidor Web se algum alarme relacionado ao seu servidor Web for acionado. Quando qualquer um desses alarmes entra no estado ALARME, o alarme composto entra no estado ALARME e envia uma notificação à sua equipe. Se outros alarmes relacionados ao seu servidor Web também entrarem no estado ALARME, sua equipe não será sobrecarregada com novas notificações, pois o alarme composto já notificou a equipe sobre a situação existente.
Você também pode usar alarmes compostos para criar condições de alarme complexas e realizar ações somente quando muitas condições diferentes forem atendidas. Por exemplo, é possível criar um alarme composto que combine um alarme de CPU e um alarme de memória e que só notificaria a sua equipe se os alarmes de CPU e de memória fossem acionados.
Como usar alarmes compostos
Ao usar alarmes compostos, você tem duas opções:
-
Configure as ações que você deseja executar somente no nível de alarme composto e crie os alarmes monitorados subjacentes sem ações.
-
Configure um conjunto diferente de ações no nível do alarme composto. Por exemplo, as ações de alarme composto podem envolver uma equipe diferente no caso de um problema generalizado.
Os alarmes compostos podem executar apenas as seguintes ações:
-
Notificar tópicos do Amazon SNS
-
Invocar funções do Lambda
-
Criar OpsItems no centro operacional do Systems Manager
-
Criar incidentes no Systems Manager Incident Manager
nota
Todos os alarmes subjacentes em seu alarme composto devem estar na mesma conta e na mesma região que seu alarme composto. No entanto, se você configurar um alarme composto em uma conta de monitoramento da observabilidade entre contas do CloudWatch, os alarmes subjacentes poderão observar métricas em contas de origem diferentes e na própria conta de monitoramento. Para saber mais, consulte Observabilidade entre contas do CloudWatch.
Um único alarme composto pode monitorar 100 alarmes subjacentes, e 150 alarmes compostos podem monitorar um único alarme subjacente.
Expressões de regra
Todos os alarmes compostos contêm expressões de regras. As expressões de regras informam aos alarmes compostos quais outros alarmes devem ser monitorados e determinam seus estados iniciais. Uma expressão de regra pode se referir a alarmes de métrica e a alarmes compostos. Ao fazer referência a um alarme em uma expressão de regra, você designa uma função para o alarme que determina em qual destes três estados o alarme estará:
-
ALARME
ALARM ("alarm-name ou alarm-ARN") será TRUE se o alarme estiver no estado ALARM (ALARME).
-
OK
OK ("alarm-name ou alarm-ARN") será TRUE se o alarme estiver no estado OK.
-
INSUFFICIENT_DATA
INSUFFICIENT_DATA ("alarm-name ou alarm-ARN") será TRUE se o alarme nomeado estiver no estado INSUFFICIENT_DATA (DADOS_INSUFICIENTES).
nota
TRUE (VERDADEIRO) é sempre avaliado como VERDADEIRO, e FALSE (FALSO) é sempre avaliado como FALSO.
Referências de alarme
Ao referenciar um alarme, usando o nome ou o ARN do alarme, a sintaxe da regra pode exigir que a referência ao nome ou ao ARN do alarme seja com ou sem aspas (").
-
Se a especificação for sem aspas, nomes ou ARNs de alarme não deverão conter espaços, parênteses nem vírgulas.
-
Se a especificação for com aspas, os nomes ou ARNs de alarme que incluírem aspas duplas (") deverão colocar as aspas entre caracteres de escape de barra invertida (\) para que a referência seja interpretada corretamente.
Sintaxe
A sintaxe da expressão usada para combinar vários alarmes em um alarme composto usa lógica e funções booleanas. A tabela a seguir descreve os operadores e as funções disponíveis nas expressões de regra:
| Operador/função | Descrição |
|---|---|
AND |
Operador lógico AND. Retorna TRUE quando todas as condições especificadas são TRUE. |
OR |
Operador lógico OR. Retorna TRUE quando, pelo menos, uma das condições especificadas é TRUE. |
NOT |
Operador lógico NOT. Retorna TRUE quando a condição especificada é FALSE. |
AT_LEAST |
Função que retorna TRUE quando um número ou porcentagem mínima de alarmes especificados está no estado exigido. Formato: AT_LEAST(M, STATE_CONDITION, (alarm1,
alarm2, ...alarmN)) onde M pode ser um número absoluto ou uma porcentagem (por exemplo, 50%) e STATE_CONDITION pode ser ALARM, OK, INSUFFICIENT_DATA, NOT ALARM, NOT OK ou NOT INSUFFICIENT_DATA. |
Você pode usar parênteses para agrupar condições e controlar a ordem de avaliação de expressões complexas.
Exemplos de expressões
Como o parâmetro da solicitação AlarmRule é compatível com o uso dos operadores lógicos AND, OR e NOT, e com a função AT_LEAST, é possível combinar várias funções em uma única expressão. Os exemplos de expressões a seguir mostram como os alarmes subjacentes podem ser configurados no alarme composto:
-
ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)A expressão especifica que o alarme composto só passará a
ALARMseCPUUtilizationTooHigheDiskReadOpsTooHighestiverem no estadoALARM. -
AT_LEAST(2, ALARM, (WebServer1CPU, WebServer2CPU, WebServer3CPU, WebServer4CPU))A expressão especifica que o alarme composto entre no estado
ALARMquando, pelo menos, 2 dos 4 alarmes da CPU do servidor Web estiverem no estado deALARM. Isso permite acionar alertas com base em um limite de recursos afetados, em vez de exigir que todos, ou apenas um, estejam em estado de alarme. -
AT_LEAST(50%, OK, (DatabaseConnection1, DatabaseConnection2, DatabaseConnection3, DatabaseConnection4))A expressão especifica que o alarme composto entre no estado de
ALARMquando, pelo menos, 50% dos alarmes de conexão do banco de dados estiverem no estado deOK. O uso de porcentagens permite que a regra se adapte dinamicamente à medida que você adiciona ou remove alarmes monitorados. -
ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)A expressão especifica que o alarme composto passará a
ALARMseCPUUtilizationTooHighestiver no estadoALARMeDeploymentInProgressnão estiver no estadoALARM. Este é um exemplo de um alarme composto que reduz o ruído do alarme durante uma janela de implantação. -
AT_LEAST(2, ALARM, (AZ1Health, AZ2Health, AZ3Health)) AND NOT ALARM(MaintenanceWindow)A expressão especifica que o alarme composto passe para o estado de
ALARMquando, pelo menos, 2 dos 3 alarmes de integridade da zona de disponibilidade estiverem no estado deALARMe o alarme da janela de manutenção não estiver no estado deALARM. Isso combina a função AT_LEAST com outros operadores lógicos em cenários de monitoramento mais complexos.