Criar alertas de métricas

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

Criar um alerta

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

  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 de recurso ou métrica", digite "dataproc" para listar as métricas do Serviço Gerenciado para Apache Spark. Navegue pela hierarquia de métricas do Serviço Gerenciado para Apache Spark do Cloud para selecionar 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 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

Esta seção descreve um exemplo de alerta para um job enviado ao Serviço Gerenciado para Apache Spark e um alerta para um job executado como um aplicativo YARN.

Alerta de job de longa duração do Serviço Gerenciado para Apache Spark

O Serviço Gerenciado para Apache Spark emite a métrica dataproc.googleapis.com/job/state, que acompanha o tempo que um job ficou em diferentes estados. Essa métrica é encontrada no Google Cloud Metrics Explorer do console no recurso Job do Serviço Gerenciado para Apache Spark do Cloud (cloud_dataproc_job). É possível usar essa métrica para configurar um alerta que notifica quando o estado RUNNING do job 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 7 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.

É possível modificar a consulta filtrando pelo job_id para aplicá-la 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 Serviço Gerenciado para Apache Spark é executado por mais tempo do que uma duração especificada, mas ele só se aplica a jobs enviados ao Serviço Gerenciado para Apache Spark usando o Google Cloud console, a Google Cloud CLI ou chamadas diretas à API jobs do Serviço Gerenciado 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, algumas informações básicas. O YARN emite métricas de tempo de execução em vários buckets. Por padrão, o YARN mantém 60, 300 e 1440 minutos como limites de bucket e emite 4 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 1440 minutos.

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

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

Esses limites de bucket padrão podem ser modificados transmitindo novos valores para a yarn:yarn.resourcemanager.metrics.runtime.buckets propriedade de cluster durante a criação do cluster do Serviço Gerenciado para Apache Spark. Ao definir limites de bucket personalizados, também é necessário 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 são listadas no Google Cloud Metrics Explorer do console no recurso Instância de VM (gce_instance).

Configuração de alerta de aplicativo YARN

  1. Crie um cluster com os buckets e métricas necessários ativados.

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

    • Opcionalmente, adicione um filtro para alertar sobre clusters que correspondam a um padrão.

    • Configure o limite para acionar o alerta.

Alerta de job com falha do Serviço Gerenciado para Apache Spark

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

Configuração de alerta de vagas com falha

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).

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

No exemplo a seguir, o alerta é acionado quando qualquer job do Serviço Gerenciado para Apache Spark falha no seu projeto.

É possível modificar a consulta filtrando pelo job_id para aplicá-la 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 Serviço Gerenciado para 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 Google Cloud console Metrics Explorer no recurso Cluster do Serviço Gerenciado para Apache Spark do Cloud. É possível usar essa métrica para criar um alerta que notifica quando a capacidade do cluster se desvia 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 falsos positivos, defina o limite de alerta de métrica para considerar essas 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 do cluster.

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

  • Atualizações de worker secundário: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 de 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. É possível conferir os incidentes na página de alertas do Monitoring no Google Cloud console.

O Monitoring 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