Crie alertas de métricas do Dataproc

Pode criar um alerta de monitorização que lhe envia uma notificação quando uma métrica de cluster ou tarefa do Dataproc excede um limite especificado.

Crie um alerta

  1. Abra a página Alertas na Google Cloud consola.

  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", escreva "dataproc" para listar as métricas do Dataproc. Navegue pela hierarquia das métricas do Cloud Dataproc para selecionar uma métrica de cluster, tarefa, lote ou sessão.
    3. Clique em Aplicar.
    4. Clique em Seguinte para abrir o painel Configurar acionador de alerta.
    5. Defina um valor limite para acionar o alerta.
    6. Clique em Seguinte 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 alerta.
    8. Clique em Seguinte para rever a política de alertas.
    9. Clique em Criar política para criar o alerta.

Exemplos de alertas

Esta secção descreve um exemplo de alerta para uma tarefa enviada para o serviço Dataproc e um alerta para uma tarefa executada como uma aplicação YARN.

Alerta de tarefa do Dataproc de longa duração

O Dataproc emite a métrica dataproc.googleapis.com/job/state, que acompanha o tempo que uma tarefa passou em diferentes estados. Esta métrica encontra-se no Explorador de métricas da Google Cloud consola no recurso Tarefa do Cloud Dataproc (cloud_dataproc_job). Pode usar esta métrica para configurar um alerta que lhe envia uma notificação quando o estado da tarefa excede um limite de duração.RUNNING

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

Este exemplo usa a linguagem de consulta de monitorização (MQL) para criar uma política de alerta (consulte o artigo Criar políticas de alerta de MQL (consola)).

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'RUNNING'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

No exemplo seguinte, o alerta é acionado quando uma tarefa está em execução há mais de 30 minutos.

Pode modificar a consulta filtrando por resource.job_id para a aplicar a uma tarefa específica:

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'RUNNING')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

Alerta de aplicação YARN de longa duração

O exemplo anterior mostra um alerta acionado quando uma tarefa do Dataproc é executada durante mais tempo do que uma duração especificada, mas só se aplica a tarefas enviadas para o serviço Dataproc através da consola, da CLI Google Cloud ou de chamadas diretas para a API Dataproc. Google Cloud jobs Também pode usar métricas de OSS para configurar alertas semelhantes que monitorizam o tempo de execução das aplicações YARN.

Primeiro, algumas informações gerais. O YARN emite métricas de tempo de execução em vários contentores. Por predefinição, o YARN mantém 60, 300 e 1440 minutos como limites de contentores e emite 4 métricas: running_0, running_60, running_300 e running_1440:

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

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

  • running_300 regista o número de trabalhos com um tempo de execução entre 300 e 1440 minutos.

  • running_1440 regista o número de tarefas com um tempo de execução superior a 1440 minutos.

Por exemplo, uma tarefa executada durante 72 minutos é registada em running_60, mas não em running_0.

Estes limites predefinidos dos contentores podem ser modificados através da transmissão de novos valores para a yarn:yarn.resourcemanager.metrics.runtime.buckets propriedade cluster durante a criação do cluster do Dataproc. Quando define limites de intervalos personalizados, também tem de definir substituições de métricas. Por exemplo, para especificar limites de intervalos de 30, 60 e 90 minutos, o comando gcloud dataproc clusters create deve incluir as seguintes flags:

  • Limites dos grupos: ‑‑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

Estas métricas estão listadas no Google Cloud explorador de métricas da consola no recurso instância de VM (gce_instance).

Configuração de alertas de aplicações YARN

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

  2. Crie uma política de alerta que seja acionada quando o número de aplicações num contentor de métricas do YARN exceder um limite especificado.

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

    • Configure o limite para acionar o alerta.

Alerta de tarefa do Dataproc com falha

Também pode usar a métrica dataproc.googleapis.com/job/state (consulte o alerta de tarefa do Dataproc de execução prolongada) para receber um alerta quando uma tarefa do Dataproc falha.

Falha na configuração do alerta de emprego

Este exemplo usa a linguagem de consulta de monitorização (MQL) para criar uma política de alerta (consulte o artigo Criar políticas de alerta de MQL (consola)).

Alerta MQL
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'ERROR'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
Configuração do acionador de alertas

No exemplo seguinte, o alerta é acionado quando qualquer tarefa do Dataproc falha no seu projeto.

Pode modificar a consulta filtrando por resource.job_id para a aplicar a uma tarefa específica:

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'ERROR')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

Alerta de desvio da capacidade do cluster

O Dataproc emite a métrica dataproc.googleapis.com/cluster/capacity_deviation que comunica a diferença entre a contagem de nós esperada no cluster e a contagem de nós do YARN ativos. Pode encontrar esta métrica no Google Cloud Explorador de métricasda consola no recurso Cluster do Cloud Dataproc. Pode usar esta métrica para criar um alerta que lhe envia uma notificação quando a capacidade do cluster se desvia da capacidade esperada durante um período superior a um limite especificado.

As seguintes operações podem causar uma subnotificação temporária de nós de cluster na métrica capacity_deviation. Para evitar alertas falsos positivos, defina o limite do alerta de métricas para ter em conta estas operações:

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

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

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

Configuração do alerta de desvio de capacidade

Este exemplo usa a linguagem de consulta de monitorização (MQL) para criar uma política de alerta.

fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'

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

Ver alertas

Quando um alerta é acionado por uma condição de limite de métricas, o Monitoring cria um incidente e um evento correspondente. Pode ver incidentes na página Alertas de monitorização na Google Cloud consola.

Se definiu um mecanismo de notificação na política de alertas, como uma notificação por email ou SMS, o Monitoring envia uma notificação do incidente.

O que se segue?