É possível criar um alerta do Monitoring que notifica quando um cluster ou uma métrica de job do Dataproc exceder um o limite especificado.
Etapas para criar um alerta
Para criar um alerta, faça o seguinte:
Abra a página Alertas no console do Google Cloud.
Clique em + Criar política para abrir a página Criar política de alertas.
- Clique em Selecionar métrica.
- Em "Filtrar por nome do recurso ou da métrica", caixa de entrada, tipo "dataproc" para listar as métricas do Dataproc. Navegue pela hierarquia métricas do Cloud Dataproc para selecionar um cluster, job, lote ou métrica de sessão.
- Clique em Aplicar.
- Clique em Próxima para abrir o painel Configurar acionador de alerta.
- Defina um valor limite para acionar o alerta.
- Clique em Próxima para abrir o painel Configurar notificações e finalizar alerta.
- Define canais de notificação, documentação e o nome da política de alertas.
- Clique em Próxima para revisar a política de alertas.
- Clique em Criar política para criar o alerta.
Exemplos de alertas
Esta seção descreve um alerta de exemplo para um job enviado ao serviço do Dataproc e um alerta para uma execução de job como um aplicativo YARN.
Alerta de job de longa duração do Dataproc
O Dataproc emite a métrica dataproc.googleapis.com/job/state
,
que rastreia há quanto tempo um job está em estados diferentes. Essa métrica é encontrada
no Metrics Explorer do console do Google Cloud, no recurso Job do Cloud Dataproc
(cloud_dataproc_job).
É possível usar essa métrica para configurar um alerta que notifique você quando o estado
RUNNING
do job exceder um limite de duração.
Configuração do alerta de duração do job
Este exemplo usa a linguagem de consulta do Monitoring (MQL) para criar uma política de alerta (consulte Como criar políticas de alertas do MQL (console)).
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 a seguir, o alerta é acionado quando um job está em execução. por mais de 30 minutos.
É possível modificar a consulta filtrando por resource.job_id
para aplicá-la
para 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 aplicativo YARN de longa duração
O exemplo anterior mostra um alerta que é acionado quando um job do Dataproc é executado por mais tempo
do que a duração especificada, mas só se aplica a jobs enviados ao Dataproc
pelo console do Google Cloud, pela Google Cloud CLI ou por chamadas diretas para o
API Dataproc jobs
. Também é possível usar métricas OSS
para configurar alertas semelhantes que monitoram o tempo de execução dos aplicativos YARN.
Primeiro, alguns antecedentes. 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 ambiente 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 em execução por 72 minutos será gravado em running_60
, mas não em running_0
.
Esses limites de bucket padrão podem ser modificados passando novos valores para o
yarn:yarn.resourcemanager.metrics.runtime.buckets
propriedade do cluster
durante a criação do cluster do Dataproc. Ao definir os limites de buckets 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 sinalizações:
limites do 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 Metrics Explorer do console do Google Cloud no recurso Instância de VM (gce_instance).
Configuração de alertas de aplicativos YARN
Crie um cluster com as métricas e os buckets necessários ativados .
Criar uma política de alertas que é acionada quando o número de aplicativos em um bucket de métricas YARN excedem um limite especificado.
Se preferir, adicione um filtro para alertar sobre clusters que correspondem a um padrão.
Configure o limite para acionar o alerta.
Alerta de job com falha do Dataproc
Também é possível usar a métrica dataproc.googleapis.com/job/state
Consulte Alerta de job de longa duração do Dataproc.
para alertar você quando um job do Dataproc falhar.
Falha na configuração do alerta de job
Este exemplo usa a linguagem de consulta do Monitoring (MQL) para criar uma política de alerta (consulte Como criar políticas de alertas do MQL (console)).
MQL de alertas
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 alerta
No exemplo abaixo, o alerta é acionado quando qualquer job do Dataproc falha no projeto.
É possível modificar a consulta filtrando o resource.job_id
para aplicá-la
a um job específico:
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 de capacidade do cluster
O Dataproc 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 ativos do YARN. Você pode encontrar essa métrica no
Metrics Explorer do console do Google Cloud na
Cluster do Cloud Dataproc
recurso. É possível usar essa métrica para criar um alerta que notifica quando
a capacidade do cluster desviar da capacidade esperada por mais tempo do que o especificado
duração limite.
As operações a seguir podem causar um problema temporário no relatório dos nós do cluster
na métrica capacity_deviation
. Para evitar alertas de falsos positivos, defina
o limite de alertas de métricas para contabilizar estas operações:
Criação e atualizações de cluster: a métrica
capacity_deviation
não está emitidos durante operações de criação ou atualização de cluster.Ações de inicialização de cluster:ações de inicialização são realizadas após o provisionamento de um nó.
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 do alerta de desvio de capacidade
Este exemplo usa a Linguagem de consulta de monitoramento (MQL, na sigla em inglês) para criar uma política de alertas.
fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'
No próximo exemplo, o alerta é acionado quando o desvio de capacidade do cluster for 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 visualizar incidentes do Página Monitoring Alerting no console do Google Cloud.
Se você definiu um mecanismo de notificação na política de alertas, como uma notificação por e-mail ou SMS, O monitoramento envia uma notificação do incidente.
A seguir
- Consulte a Introdução aos alertas.