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
Abra a página Alertas na Google Cloud consola.
Clique em + Criar política para abrir a página Criar política de alertas.
- Clique em Selecionar métrica.
- 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.
- Clique em Aplicar.
- Clique em Seguinte para abrir o painel Configurar acionador de alerta.
- Defina um valor limite para acionar o alerta.
- Clique em Seguinte para abrir o painel Configurar notificações e finalizar alerta.
- Defina canais de notificação, documentação e o nome da política de alerta.
- Clique em Seguinte para rever a política de alertas.
- 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
Crie um cluster com os intervalos e as métricas necessários ativados .
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?
- Consulte a Introdução aos alertas.