Criar alertas de métricas do Dataproc

É possível criar um alerta do Monitoring para notificar quando a métrica de um job ou cluster do Dataproc ultrapassar 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 do recurso ou da métrica", digite "dataproc" para listar as métricas do Dataproc. Navegue pela hierarquia de métricas do Cloud Dataproc 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 o gatilho de alertas.
    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

Esta seção descreve um exemplo de alerta para um job enviado ao serviço do Dataproc e um alerta para um job executado como um aplicativo YARN.

Alerta de job do Dataproc de longa duração

O Dataproc 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 doconsole, no recurso Job do Cloud Dataproc (cloud_dataproc_job). Use essa métrica para configurar um alerta que notifica 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 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 acionado quando um job do Dataproc é executado por mais tempo do que uma duração especificada, mas ele só se aplica a jobs enviados ao serviço do Dataproc usando o Google Cloud console, a CLI do Google Cloud ou chamadas diretas à API jobs do Dataproc. 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 propriedade de cluster yarn:yarn.resourcemanager.metrics.runtime.buckets durante a criação do cluster do Dataproc. 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 gcloud dataproc clusters create comando 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 Google Cloud Metrics Explorer doconsole , 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 do Dataproc com falha

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

Configuração de alerta de job 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 Dataproc 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 Dataproc emite a dataproc.googleapis.com/cluster/capacity_deviation métrica, 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 Cloud Dataproc. Use 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. Você pode ver 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