Puedes crear una alerta de Monitoring que te avise cuando una métrica de un clúster o un trabajo de Dataproc supere un umbral especificado.
Crear una alerta
Abre la página Alertas en la Google Cloud consola.
Haz clic en + Crear política para abrir la página Crear política de alertas.
- Haz clic en Seleccionar métrica.
- En el cuadro de entrada "Filtrar por nombre de recurso o métrica", escribe "dataproc" para ver una lista de métricas de Dataproc. Desplázate por la jerarquía de métricas de Cloud Dataproc para seleccionar una métrica de clúster, tarea, lote o sesión.
- Haz clic en Aplicar.
- Haz clic en Siguiente para abrir el panel Configurar activador de alerta.
- Define un valor de umbral para activar la alerta.
- Haz clic en Siguiente para abrir el panel Configurar notificaciones y finalizar alerta.
- Define los canales de notificaciones, la documentación y el nombre de la política de alertas.
- Haz clic en Siguiente para revisar la política de alertas.
- Haz clic en Crear política para crear la alerta.
Alertas de muestra
En esta sección se describe una alerta de ejemplo de un trabajo enviado al servicio Dataproc y una alerta de un trabajo ejecutado como una aplicación YARN.
Alerta de tarea de Dataproc de larga duración
Dataproc emite la métrica dataproc.googleapis.com/job/state
, que registra el tiempo que ha estado una tarea en diferentes estados. Esta métrica se encuentra en el explorador de métricas de la consola Google Cloud , en el recurso Trabajo de Cloud Dataproc (cloud_dataproc_job).
Puede usar esta métrica para configurar una alerta que le avise cuando el estado RUNNING
de un trabajo supere un umbral de duración.
Configuración de alertas de duración de tareas
En este ejemplo, se usa Monitoring Query Language (MQL) para crear una política de alertas (consulta Crear políticas de alertas con 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()
En el ejemplo siguiente, la alerta se activa cuando un trabajo se ha estado ejecutando durante más de 30 minutos.
Puedes modificar la consulta filtrando por resource.job_id
para aplicarla a una tarea 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 aplicación YARN de larga duración
En el ejemplo anterior se muestra una alerta que se activa cuando una tarea de Dataproc se ejecuta durante más tiempo del especificado, pero solo se aplica a las tareas enviadas al servicio Dataproc mediante la consola, la CLI de Google Cloud o llamadas directas a la API de Dataproc jobs
. Google Cloud También puedes usar métricas de OSS para configurar alertas similares que monitoricen el tiempo de ejecución de las aplicaciones de YARN.
Primero, un poco de contexto. YARN emite métricas de tiempo de ejecución en varios contenedores.
De forma predeterminada, YARN mantiene 60, 300 y 1440 minutos como umbrales de los contenedores y emite 4 métricas: running_0
, running_60
, running_300
y running_1440
.
running_0
registra el número de trabajos con un tiempo de ejecución de entre 0 y 60 minutos.running_60
registra el número de trabajos con un tiempo de ejecución entre 60 y 300 minutos.running_300
registra el número de trabajos con un tiempo de ejecución entre 300 y 1440 minutos.running_1440
registra el número de tareas con un tiempo de ejecución superior a 1440 minutos.
Por ejemplo, un trabajo que se ejecute durante 72 minutos se registrará en running_60
, pero no en running_0
.
Estos umbrales predeterminados de los contenedores se pueden modificar enviando nuevos valores a la
yarn:yarn.resourcemanager.metrics.runtime.buckets
propiedad de clúster
durante la creación del clúster de Dataproc. Al definir los umbrales de los contenedores personalizados, también debe definir las anulaciones de métricas. Por ejemplo, para especificar los umbrales de los segmentos de 30, 60 y 90 minutos, el comando gcloud dataproc clusters create
debe incluir las siguientes marcas:
Umbrales de los segmentos:
‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90
Anulaciones 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
Comando de creación de clúster de ejemplo
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 se muestran en el Google Cloud explorador de métricas de la consola en el recurso Instancia de VM (gce_instance).
Configuración de alertas de aplicaciones de YARN
Crea un clúster con los segmentos y las métricas necesarios habilitados .
Crea una política de alertas que se active cuando el número de aplicaciones de un contenedor de métricas de YARN supere un umbral especificado.
También puedes añadir un filtro para recibir alertas sobre los clústeres que coincidan con un patrón.
Configura el umbral para activar la alerta.
Alerta de tarea de Dataproc fallida
También puedes usar la métrica dataproc.googleapis.com/job/state
(consulta Alerta de tarea de Dataproc de larga duración) para recibir alertas cuando falle una tarea de Dataproc.
No se ha podido configurar la alerta de empleo
En este ejemplo, se usa Monitoring Query Language (MQL) para crear una política de alertas (consulta Crear políticas de alertas con MQL (consola)).
Alert 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()
Configuración de activación de alertas
En el siguiente ejemplo, la alerta se activa cuando falla cualquier trabajo de Dataproc en tu proyecto.
Puedes modificar la consulta filtrando por resource.job_id
para aplicarla a una tarea 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 desviación de la capacidad del clúster
Dataproc emite la métrica dataproc.googleapis.com/cluster/capacity_deviation
, que indica la diferencia entre el número de nodos esperado en el clúster y el número de nodos de YARN activos. Puedes encontrar esta métrica en el
Google Cloud explorador de métricas de la consola, en el recurso
Clúster de Cloud Dataproc. Puede usar esta métrica para crear una alerta que le avise cuando la capacidad del clúster se desvíe de la capacidad esperada durante un periodo superior a un umbral especificado.
Las siguientes operaciones pueden provocar que se informe de menos nodos de clúster de lo que corresponde en la métrica capacity_deviation
. Para evitar alertas falsas positivas, define el umbral de la alerta de métrica de forma que tenga en cuenta estas operaciones:
Creación y actualizaciones de clústeres: la métrica
capacity_deviation
no se emite durante las operaciones de creación o actualización de clústeres.Acciones de inicialización de clústeres: las acciones de inicialización se realizan después de aprovisionar un nodo.
Actualizaciones de los trabajadores secundarios: los trabajadores secundarios se añaden de forma asíncrona una vez que se completa la operación de actualización.
Configuración de alertas de desviación de capacidad
En este ejemplo, se usa Monitoring Query Language (MQL) para crear una política de alertas.
fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'
En el siguiente ejemplo, la alerta se activa cuando la desviación de la capacidad del clúster es distinta de cero durante más de 30 minutos.
Ver alertas
Cuando una alerta se activa por una condición de umbral de métrica, Monitoring crea un incidente y un evento correspondiente. Puedes ver los incidentes en la página Alertas de monitorización de la consola Google Cloud .
Si ha definido un mecanismo de notificación en la política de alertas, como una notificación por correo electrónico o SMS, Monitoring envía una notificación del incidente.
Siguientes pasos
- Consulta la introducción a las alertas.