Cenário: Dividir Mensagens por Stream de Métricas

Percorra a configuração de um alarme para enviar uma mensagem para cada stream de métrica. Neste exemplo, você deseja ser notificado sempre que um servidor exceder um limite. Com esta configuração, você recebe mensagens específicas do servidor.

Cuidado

Com as mensagens divididas por stream de métrica, considere o número de recursos monitorados pelo alarme. Se centenas de recursos acionarem simultaneamente o alarme, várias mensagens serão enviadas ao mesmo tempo. Muitas mensagens podem inundar o telefone (SMS), a caixa de entrada (e-mail) ou outro ponto final da mensagem, e algumas mensagens podem ser atrasadas por causa dos limites do serviço. Para obter mais informações sobre limites e melhores práticas, consulte Limites de Mensagens de Alarme.

Política de IAM Obrigatória

Este tópico descreve os requisitos de acesso para o cenário.

Para usar o Oracle Cloud Infrastructure, um administrador deve ser membro de um grupo ao qual foi concedido acesso de segurança em uma política por um administrador da tenancy. Esse acesso será necessário se você estiver usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Se você receber uma mensagem informando que não tem permissão ou está não autorizado, verifique com o administrador da tenancy qual tipo de acesso você tem e qual compartimento seu acesso funciona.

Se você for membro do grupo Administradores, já terá o acesso necessário para concluir esse cenário.

Administradores: Para políticas comuns que permitem aos usuários gerenciar alarmes e criar tópicos, consulte Acesso ao Alarme para Grupos.

Objetivo

O objetivo desse cenário hipotético é receber mensagens de alarme distintas por servidor. Digamos que você esteja monitorando 50 servidores que emitem uma métrica de utilização de CPU personalizada e queira saber se algum deles excede 80% de utilização de CPU. Você deseja receber uma mensagem sempre que as métricas de um servidor individual acionarem o alarme.

Configurando este Cenário

A configuração envolve a criação de um alarme de limite ativado para mensagens específicas do stream de métrica. Nesse cenário hipotético, você seleciona a métrica personalizada MyCustomCPUMetric e o grupo de recursos MyServerResourceGroup.

Você pode concluir essas tarefas na Console, CLI ou API do Oracle Cloud Infrastructure.

    1. Na página de lista Definições de Alarme, selecione Criar Alarme. Se precisar de ajuda para localizar a página da lista, consulte Listando Alarmes.
    2. Na página Criar alarme, em Definir alarme, informe um Nome de alarme.

      Exemplo: Mensagens Específicas do Servidor

      Opcionalmente, altere a gravidade do alarme e informe o texto das mensagens para o Corpo do alarme.

    3. Em Descrição da métrica, selecione a métrica personalizada e defina a consulta.
      • Compartimento: Selecione o compartimento.
      • Namespace de métricas: Selecione o namespace para a métrica personalizada.
      • Grupo de recursos: MyServerResourceGroup
      • Nome da métrica: MyCustomCPUMetric

        Observação

        É possível selecionar qualquer métrica ou métrica personalizada do OCI.
      • Intervalo: 1m
      • Estatística: Contagem
    4. Ignore Dimensões de métricas.
    5. Em Regra de acionamento, defina o limite para 80 e atrase as mensagens em 10 minutos:
      • Operador: maior que
      • Valor: 80
      • Minutos de atraso do acionador: 10
    6. Em Definir notificações de alarme, Destino, forneça os seguintes valores:
      • Serviço de destino: Notificações
      • Compartimento: Selecione o compartimento que contém o tópico.
      • Tópico: Selecione o tópico para o qual você deseja enviar notificações. Nesse cenário, o tópico já existe e contém as assinaturas desejadas (SMS, e-mail e outras).
      Esse cenário usa um tópico para notificações de alarme. Você pode optar por usar um stream, o que é útil quando você espera um alto volume de notificações de alarme. Para obter mais informações, consulte Limites de Mensagens de Alarme.
    7. Em Agrupamento de mensagem, selecione Dividir notificações por stream de métrica.
      Essa opção é obrigatória para receber uma mensagem de cada stream de métrica.
    8. Selecione Repetir notificação? e deixe a definição padrão em 60 minutos.
      As mensagens são enviadas a cada hora, desde que o alarme esteja no estado Firing para um ou mais streams de métrica.
    9. Selecione Salvar alarme.
    O serviço Monitoring inicia a avaliação de métricas de servidores no compartimento selecionado, enviando uma única mensagem do alarme (por assinatura) para cada fluxo de métricas.
  • Crie o alarme usando o comando oci monitoring alarm create. Para configurar o alarme para mensagens divididas por stream de métrica, defina --is-notifications-per-metric-dimension-enabled como true.

    Exemplo de comando
    oci monitoring alarm create 
    --compartment-id "<compartment_OCID>"
    --destinations ["<topic_OCID>"]
    --display-name "Server-Specific Messages"
    --is-enabled true
    --is-notifications-per-metric-dimension-enabled true
    --message-format "ONS_OPTIMIZED"
    --metric-compartment-id "<metric_compartment_OCID>"
    --namespace "<custom_metric_namespace>"
    --query-text "MyCustomCPUMetric[1m].count() > 80"
    --repeat-notification-duration "PT1H"
    --resource-group "MyServerResourceGroup"
    --severity "CRITICAL"

    Para obter uma lista completa de flags e opções de variáveis para comandos da CLI, consulte a Referência de Linha de Comando.

  • Use a operação CreateAlarm para criar o alarme. Para configurar o alarme para mensagens divididas por stream de métrica, defina isNotificationsPerMetricDimensionEnabled como true.

    Exemplo de solicitação
    POST /20180401/alarms
    Host: telemetry.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "body": "Server exceeded CPU utilization threshold",
      "compartmentId": "<compartment_OCID>",
      "destinations": ["<topic_OCID>"],
      "displayName": "Server-Specific Messages",
      "isEnabled": true
      "isNotificationsPerMetricDimensionEnabled": true
      "messageFormat": "ONS_OPTIMIZED",
      "metricCompartmentId": "<metric_compartment_OCID>",
      "namespace": "<custom_metric_namespace>",
      "query": "MyCustomCPUMetric[1m].count() > 80",
      "repeatNotificationDuration": "PT1H",
      "resourceGroup": "MyServerResourceGroup",
      "severity": "CRITICAL"
    }