Cloud Monitoring ofrece potentes funciones de almacenamiento de registros y diagnóstico. La integración de Dataflow con Monitoring te permite acceder a métricas de tareas de Dataflow, como el estado de las tareas, el número de elementos, el retraso del sistema (en el caso de las tareas de streaming) y los contadores de usuarios desde los paneles de control de Monitoring. También puedes usar alertas de Monitoring para recibir notificaciones sobre diversas condiciones, como una latencia prolongada del sistema de streaming o errores en los trabajos.
Antes de empezar
Sigue el tutorial de Java, el tutorial de Python o el tutorial de Go para configurar tu proyecto de Dataflow. A continuación, construye y ejecuta tu flujo de procesamiento.
Para ver los registros en Explorador de métricas, la cuenta de servicio de trabajador debe tener el rol roles/monitoring.metricWriter
.
Métricas personalizadas
Dataflow registra en Monitoring como métrica personalizada cualquier métrica que definas en tu flujo de procesamiento de Apache Beam.
Apache Beam tiene tres tipos de métricas de canalización: Counter
, Distribution
y Gauge
.
- Dataflow envía métricas de
Counter
yDistribution
a Monitoring. Distribution
se registra como cuatro submétricas con los sufijos_MAX
,_MIN
,_MEAN
y_COUNT
.- Dataflow no admite la creación de histogramas a partir de métricas de
Distribution
. - Dataflow envía actualizaciones incrementales a Monitoring aproximadamente cada 30 segundos.
- Para evitar conflictos, todas las métricas personalizadas de Dataflow se exportan como un tipo de datos
double
. Para simplificar, todas las métricas personalizadas de Dataflow se exportan como un
GAUGE
tipo de métrica. Puedes monitorizar el delta en un periodo de tiempo de una métricaGAUGE
, como se muestra en el siguiente ejemplo de Monitoring Query Language:fetch dataflow_job | metric 'dataflow.googleapis.com/job/user_counter' | filter (metric.job_id == '[JobID]') | delta 1m | group_by 1m, [value_user_counter_mean: mean(value.user_counter)] | every 1m | group_by [metric.ptransform, metric.metric_name], [value_user_counter_mean_aggregate: aggregate(value_user_counter_mean)]
Las métricas personalizadas de Dataflow se muestran en Monitoring como
dataflow.googleapis.com/job/user_counter
con las etiquetasmetric_name: metric-name
yptransform: ptransform-name
.Para mantener la retrocompatibilidad, Dataflow también envía métricas personalizadas a Monitoring como
custom.googleapis.com/dataflow/metric-name
.Las métricas personalizadas de Dataflow están sujetas a la limitación de cardinalidad de Monitoring.
Cada proyecto tiene un límite de 100 métricas personalizadas de Dataflow. Estas métricas se publican como
custom.googleapis.com/dataflow/metric-name
.
Las métricas personalizadas que se envían a Monitoring generan cargos según los precios de Cloud Monitoring.
Usar el explorador de métricas
Usa Monitoring para consultar métricas de Dataflow. Sigue los pasos que se indican en esta sección para observar las métricas estándar que se proporcionan para cada una de tus canalizaciones de Apache Beam. Para obtener más información sobre cómo usar el explorador de métricas, consulta el artículo Crear gráficos con el explorador de métricas.
En la Google Cloud consola, selecciona Monitoring:
En el panel de navegación, selecciona Explorador de métricas.
En el panel Seleccionar una métrica, introduce
Dataflow Job
en el filtro.En la lista que aparece, selecciona una métrica para observar uno de tus trabajos.
Cuando ejecutes tareas de Dataflow, también te recomendamos que monitorices las métricas de tus fuentes y receptores. Por ejemplo, puede que quieras monitorizar las métricas de la API Storage de BigQuery. Para obtener más información, consulta Crear paneles de control, gráficos y alertas y la lista completa de métricas de BigQuery Data Transfer Service.
Crear políticas de alertas y paneles de control
Monitoring proporciona acceso a métricas relacionadas con Dataflow. Crea paneles de control para representar gráficamente las series temporales de las métricas y políticas de alertas que te avisen cuando las métricas alcancen valores específicos.
Crear grupos de recursos
Para que te resulte más fácil configurar alertas y crear paneles de control, crea grupos de recursos que incluyan varias canalizaciones de Apache Beam.
En la Google Cloud consola, selecciona Monitoring:
En el panel de navegación, selecciona Grupos.
Haz clic en Crear grupo.
Introduce un nombre para el grupo.
Añade criterios de filtro que definan los recursos de Dataflow incluidos en el grupo. Por ejemplo, uno de los criterios de filtro puede ser el prefijo de nombre de tus canalizaciones.
Una vez creado el grupo, puede ver las métricas básicas relacionadas con los recursos de ese grupo.
Crear políticas de alertas para métricas de Dataflow
Monitoring te permite crear alertas y recibir notificaciones cuando una métrica supera un umbral especificado. Por ejemplo, puedes recibir una notificación cuando la latencia del sistema de una canalización de streaming aumente por encima de un valor predefinido.
En la Google Cloud consola, selecciona Monitoring:
En el panel de navegación, selecciona Alertas.
Haz clic en Crear política.
En la página Crear política de alertas, define las condiciones de las alertas y los canales de notificación.
Por ejemplo, para definir una alerta sobre la latencia del sistema del grupo de canalizaciones deWindowedWordCount
Apache Beam, sigue estos pasos:- Haz clic en Seleccionar una métrica.
- En el campo Seleccionar una métrica, introduce
Dataflow Job
. - En Categorías de métricas, selecciona Trabajo.
- En Métricas, seleccione Retraso del sistema.
Cada vez que se activa una alerta, se crea un incidente y un evento correspondiente. Si has especificado un mecanismo de notificación en la alerta, como un correo o un SMS, también recibirás una notificación.
Crear paneles de control de monitorización personalizados
Puedes crear paneles de Monitoring con los gráficos más relevantes relacionados con Dataflow. Para añadir un gráfico a un panel de control, sigue estos pasos:
En la Google Cloud consola, selecciona Monitoring:
En el panel de navegación, selecciona Paneles.
Haz clic en Crear panel de control.
Haz clic en Añadir widget.
En la ventana Añadir widget, en Datos, selecciona Métrica.
En el panel Seleccionar una métrica, en Métrica, introduzca
Dataflow Job
.Selecciona una categoría de métrica y una métrica.
Puedes añadir tantos gráficos al panel de control como quieras.
Recibir métricas de las VMs de trabajador del agente de Monitoring
Puedes usar Monitoring para monitorizar métricas de disco persistente, CPU, red y procesos. Cuando ejecutes tu flujo de procesamiento, habilita el agente de Monitoring en tus instancias de VM de trabajador de Dataflow. Consulta la lista de métricas del agente de Monitoring disponibles.
Para habilitar el agente de Monitoring, usa la opción --experiments=enable_stackdriver_agent_metrics
al ejecutar tu canalización. La cuenta de servicio de trabajador debe tener el rol roles/monitoring.metricWriter
.
Para inhabilitar el agente de monitorización sin detener tu canalización, actualízala iniciando un trabajo de sustitución sin el parámetro --experiments=enable_stackdriver_agent_metrics
.
Almacenamiento y conservación
La información sobre las tareas de Dataflow completadas o canceladas se almacena durante 30 días.
Los registros operativos se almacenan en el segmento de registros _Default
.
El nombre del servicio de la API de registro es dataflow.googleapis.com
. Para obtener más información sobre los tipos de recursos monitorizados y los servicios de Google Cloud Platform que se usan en Cloud Logging, consulta Recursos y servicios monitorizados.
Para obtener información sobre cuánto tiempo conserva Logging las entradas de registro, consulta la información sobre la conservación en Cuotas y límites: periodos de conservación de registros.
Para obtener información sobre cómo ver los registros operativos, consulta Monitorizar y ver los registros de la canalización.
Siguientes pasos
Para obtener más información, consulta estos otros recursos: