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 (email) ou outro ponto final de mensagens, e algumas mensagens podem ser atrasadas por causa de limites de serviço. Para obter mais informações sobre limites e melhores práticas, consulte Limites de Mensagens de Alarme.

Política Obrigatória do Serviço IAM

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

Para usar o Oracle Cloud Infrastructure, você deve receber de um administrador o acesso de segurança em uma política . Esse acesso é necessário, quer você esteja usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Se você receber uma mensagem de que não tem permissão ou que não está autorizado, verifique com o administrador qual tipo de acesso você tem e em qual compartimento vai trabalhar.

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, na CLI ou na API do Oracle Cloud Infrastructure.

    1. Abra o menu de navegação e clique em Observabilidade & Gerenciamento. Em Monitoring, clique em Definições do alarme.
    2. Clique em Criar alarme.
    3. Na página Criar alarme, em Definir alarme, informe um Nome do alarme.

      Exemplo: Mensagens Específicas do Servidor

      Opcionalmente, altere a Prioridade do alarme e informe o texto da mensagem para Corpo do alarme.

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

        Observação

        Qualquer métrica do OCI ou métrica personalizada pode ser selecionada.
      • Intervalo: 1m
      • Estatística: Contagem
    5. Ignore Dimensões de métricas.
    6. Em Regra do acionador, defina o limite como 80 e adie as mensagens em 10 minutos:
      • Operador: maior que
      • Valor: 80
      • Minutos de atraso do acionador: 10
    7. 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 deseja enviar notificações. Neste cenário, o tópico já existe e contém as assinaturas desejadas (SMS, e-mail e outras).
      Este cenário usa um tópico para notificações de alarme. Você pode optar por usar um fluxo, 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.
    8. Em Agrupamento de mensagens, selecione Dividir notificações por fluxo de métricas.
      Essa opção é obrigatória para receber uma mensagem de cada stream de métrica.
    9. 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.
    10. Clique em Salvar alarme.
    O serviço Monitoring começa a avaliar métricas para servidores no compartimento selecionado, enviando uma única mensagem de alarme (por assinatura) para cada stream de métrica.
  • 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"
    }