Criar alertas de métricas

É possível criar um alerta do Monitoring para notificar você quando a métrica de um job ou cluster do Serviço gerenciado para Apache Spark ultrapassar um limite especificado.

Criar um alerta

  1. Abra a página Alertas no console do Google Cloud .

  2. Clique em + Criar política para abrir a página Criar política de alertas.

    1. Clique em Selecionar métrica.
    2. Na caixa de entrada "Filtrar por nome do recurso ou da métrica", digite "dataproc" para listar as métricas do serviço gerenciado para Apache Spark. Navegue pela hierarquia de métricas do Cloud Managed Service para Apache Spark e selecione uma métrica de cluster, job, lote ou sessão.
    3. Clique em Aplicar.
    4. Clique em Próxima para abrir o painel Configurar gatilho de alerta.
    5. Defina um valor limite para acionar o alerta.
    6. Clique em Próxima para abrir o painel Configurar notificações e finalizar o alerta.
    7. Defina canais de notificação, documentação e o nome da política de alertas.
    8. Clique em Próxima para revisar a política de alertas.
    9. Clique em Criar política para criar o alerta.

Exemplos de alertas

Nesta seção, descrevemos um alerta de exemplo para um job enviado ao Managed Service para Apache Spark e um alerta para um job executado como um aplicativo YARN.

Alerta de job de longa duração do Managed Service for Apache Spark

O Managed Service for Apache Spark emite a métrica dataproc.googleapis.com/job/state, que rastreia há quanto tempo um job está em diferentes estados. Essa métrica está no Metrics Explorer do console Google Cloud , no recurso Job do serviço gerenciado pelo Cloud para Apache Spark (cloud_dataproc_job). Use essa métrica para configurar um alerta que notifica você quando o estado do job RUNNING excede um limite de duração (limite máximo : 7 dias). Para configurar um alerta para um job que deve ser executado por mais de sete dias, consulte Alerta de aplicativo YARN de longa duração.

Configuração de alerta de duração do job

Este exemplo usa a linguagem de consulta do Prometheus (PromQL) para criar uma política de alertas. Para mais informações, consulte Criar políticas de alertas baseadas em PromQL (console).

sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING"
}) != 0

Para acionar esse alerta quando um job estiver em execução por mais de 30 minutos, na guia Configurar acionador, defina o Intervalo de avaliação como 30 minutos.

Para modificar a consulta, filtre por job_id e aplique a um job específico:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING",
  "job_id"="1234567890"
}) != 0

Alerta de aplicativo YARN de longa duração

O exemplo anterior mostra um alerta que é acionado quando um job do Managed Service para Apache Spark é executado por mais tempo do que uma duração especificada, mas ele só se aplica a jobs enviados ao serviço Managed Service para Apache Spark usando o console Google Cloud , a Google Cloud CLI ou chamadas diretas à API jobs do Managed Service para Apache Spark. Também é possível usar métricas de OSS para configurar alertas semelhantes que monitoram o tempo de execução de aplicativos YARN.

Primeiro, um pouco de contexto. O YARN emite métricas de tempo de execução em vários grupos. Por padrão, o YARN mantém 60, 300 e 1440 minutos como limites de bucket e emite quatro métricas: running_0, running_60, running_300 e running_1440:

  • running_0 registra o número de jobs com um tempo de execução entre 0 e 60 minutos.

  • running_60 registra o número de jobs com um tempo de execução entre 60 e 300 minutos.

  • running_300 registra o número de jobs com um tempo de execução entre 300 e 1.440 minutos.

  • running_1440 registra o número de jobs com um tempo de execução maior que 1.440 minutos.

Por exemplo, um job executado por 72 minutos será registrado em running_60, mas não em running_0.

Esses limites padrão de intervalos podem ser modificados transmitindo novos valores para a yarn:yarn.resourcemanager.metrics.runtime.buckets propriedade do cluster durante a criação do cluster do Managed Service para Apache Spark. Ao definir limites personalizados de agrupamento, você também precisa definir substituições de métricas. Por exemplo, para especificar limites de bucket de 30, 60 e 90 minutos, o comando gcloud dataproc clusters create precisa incluir as seguintes flags:

  • limites de bucket: ‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90

  • substituições de métricas: ‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90

Exemplo de comando de criação de cluster

gcloud dataproc clusters create test-cluster  \
   --properties ^#^yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90  \
   --metric-sources=yarn  \
   --metric-overrides=yarn:ResourceManager:QueueMetrics:running_0,yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60,yarn:ResourceManager:QueueMetrics:running_90

Essas métricas estão listadas no Metrics Explorer do console Google Cloud no recurso Instância de VM (gce_instance).

Configuração de alertas de aplicativos YARN

  1. Crie um cluster com os intervalos e as métricas necessárias ativados.

  2. Crie uma política de alertas que seja acionada quando o número de aplicativos em um bucket de métricas do YARN exceder um limite especificado.

    • Se quiser, adicione um filtro para gerar alertas sobre clusters que correspondem a um padrão.

    • Configure o limite para acionar o alerta.

Alerta de job com falha do Managed Service for Apache Spark

Também é possível usar a métrica dataproc.googleapis.com/job/state (consulte Alerta de job de longa duração do Managed Service para Apache Spark) para alertar quando um job do Managed Service para Apache Spark falha.

Falha na configuração do alerta de vagas

Este exemplo usa a linguagem de consulta do Prometheus (PromQL) para criar uma política de alertas. Para mais informações, consulte Criar políticas de alertas baseadas em PromQL (console).

Alerta do PromQL
sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR"
}) != 0
Configuração do gatilho de alerta

No exemplo a seguir, o alerta é acionado quando um job do Managed Service for Apache Spark falha no seu projeto.

Para modificar a consulta, filtre por job_id e aplique a um job específico:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR",
  "job_id"="1234567890"
}) != 0

Alerta de desvio de capacidade do cluster

O Managed Service for Apache Spark emite a métrica dataproc.googleapis.com/cluster/capacity_deviation, que informa a diferença entre a contagem de nós esperada no cluster e a contagem de nós YARN ativos. Essa métrica pode ser encontrada no Metrics Explorer do consoleGoogle Cloud , em Serviço gerenciado do Cloud para cluster do Apache Spark. Você pode usar essa métrica para criar um alerta que notifique quando a capacidade do cluster divergir da capacidade esperada por mais tempo do que uma duração de limite especificada.

As operações a seguir podem causar uma subnotificação temporária de nós de cluster na métrica capacity_deviation. Para evitar alertas de falso positivo, defina o limite do alerta de métricas para considerar estas operações:

  • Criação e atualizações de cluster:a métrica capacity_deviation não é emitida durante as operações de criação ou atualização de cluster.

  • Ações de inicialização do cluster:são realizadas depois que um nó é provisionado.

  • Atualizações de workers secundários:os workers secundários são adicionados de forma assíncrona, após a conclusão da operação de atualização.

Configuração de alerta de desvio de capacidade

Este exemplo usa a linguagem de consulta do Prometheus (PromQL) para criar uma política de alertas. Para mais informações, consulte Criar políticas de alertas baseadas em PromQL (console).

{
  "__name__"="dataproc.googleapis.com/cluster/capacity_deviation",
  "monitored_resource"="cloud_dataproc_cluster"
} != 0

No exemplo a seguir, o alerta é acionado quando o desvio da capacidade do cluster é diferente de zero por mais de 30 minutos.

Ver alertas

Quando um alerta é acionado por uma condição de limite de métrica, o Monitoring cria um incidente e um evento correspondente. Você pode ver os incidentes na página Alertas do Monitoring no console Google Cloud .

O Monitoring também envia uma notificação do incidente se tiver sido definido na política de alerta algum mecanismo de notificação, como notificações por e-mail ou por SMS.

A seguir