Cuando ejecutas tu canalización con el servicio administrado de Dataflow, puedes ver ese trabajo y cualquier otro mediante la interfaz de usuario de supervisión de Dataflow basada en la Web. La interfaz de supervisión te permite ver tus trabajos de Dataflow y también interactuar con ellos.
Puedes acceder a la interfaz de supervisión de Dataflow mediante Google Cloud Console. La interfaz de supervisión te puede mostrar la siguiente información:
- Una lista de todos los trabajos de Dataflow que se están ejecutando y los trabajos que se ejecutaron anteriormente en los últimos 30 días
- Una representación gráfica de cada canalización
- Detalles sobre el estado de tu trabajo, ejecución y versión del SDK
- Vínculos a la información sobre los servicios de Google Cloud en ejecución en tu canalización, como Compute Engine y Cloud Storage
- Cualquier error o advertencia que suceda durante un trabajo
Puede ver gráficos de supervisión de trabajos en la interfaz de supervisión de Dataflow. Estos gráficos muestran métricas sobre la duración de un trabajo de canalización e incluyen la siguiente información:
- Visibilidad paso a paso para ayudar a identificar qué etapas de la canalización pueden estar causando un retraso
- Información estadística que puede revelar comportamientos anómalos
- Métricas de E/S que pueden ayudarte a identificar cuellos de botella en tus fuentes y receptores
Accede a la interfaz de supervisión de Dataflow
Para acceder a la interfaz de supervisión de Dataflow, sigue estos pasos:
- Accede a Cloud Console.
- Selecciona tu proyecto de Google Cloud.
- Haz clic en el menú en la esquina superior izquierda.
- Ve a la sección Macrodatos y haz clic en Dataflow.
Aparecerá una lista de trabajos de Dataflow junto con su estado. Si no ves ningún trabajo, debes ejecutar uno nuevo. Para obtener información sobre cómo ejecutar un trabajo, consulta las guías de inicio rápido de Dataflow.

Un trabajo puede tener los siguientes estados:
- —: La IU de supervisión aún no recibió un estado del servicio Dataflow.
- En ejecución (Running): El trabajo se está ejecutando en el momento.
- Iniciando…: Se crea el trabajo, pero el sistema necesita tiempo para prepararse antes de iniciarlo.
- En cola: un trabajo de FlexRS está en cola.
- Cancelando…: El trabajo se está cancelando.
- Cancelado: El trabajo que el usuario canceló.
- Desviando…: el trabajo se está desviando.
- Desviado: el usuario desvió el trabajo.
- Actualizando…: el trabajo se está actualizando.
- Actualizado: el usuario actualizó el trabajo.
- Finalizado de manera correcta: el trabajo finalizó correctamente.
- Con errores: No se pudo completar el trabajo.
Para obtener más información sobre una canalización, haz clic en el Nombre de ese trabajo.
Accede a los gráficos de supervisión de trabajos
Para acceder a los gráficos de supervisión de un trabajo, haz clic en el nombre del trabajo en la interfaz de supervisión de Dataflow. Esto te lleva a la página Detalles del trabajo, que contiene lo siguiente:
- Grafo de trabajo: la representación visual de tu canalización
- Métricas de empleo: métricas sobre la ejecución de tu trabajo
- Panel Información del trabajo: información descriptiva sobre tu canalización
- Registros de trabajos: registros generados por el servicio de Dataflow en el nivel del trabajo
- Registros de trabajadores: registros generados por el servicio de Dataflow a nivel del trabajador
- Informe de errores de trabajo: gráficos que muestran dónde se produjeron errores a lo largo del cronograma elegido y un recuento de todos los errores registrados
- Selector de tiempo: herramienta que te permite ajustar el intervalo de tiempo de tus métricas
En la página Detalles del trabajo, puedes cambiar la vista de trabajo con la pestaña Grafo de trabajo y Métricas de trabajos.
Para volver a la versión heredada de la página Detalles del trabajo, haz clic en Volver a la versión anterior de la página de trabajos en la parte superior de la página.
Modo de pantalla completa
Para ver un gráfico de métricas en pantalla completa, haz clic en fullscreen.
Usa la herramienta de selección de tiempo
Puedes ajustar el período de las métricas con la herramienta de selección de tiempo. Puedes seleccionar una duración predefinida o seleccionar un intervalo de tiempo personalizado para analizar tu trabajo.
Para las transmisiones o los trabajos por lotes en curso, la visualización predeterminada de los gráficos muestra las seis horas anteriores de las métricas de ese trabajo. En el caso de los trabajos de transmisión detenidos o completados, la visualización predeterminada de los gráficos muestra todo el tiempo de ejecución que haya durado el trabajo.
Métricas de pasos y trabajadores
Puedes ver los gráficos de las siguientes métricas:
- Actualidad de los datos (solo canalizaciones de transmisión)
- Latencia del sistema (solo canalizaciones de transmisión)
- Ajuste de escala automático
- Capacidad de procesamiento
- Uso de CPU
- Recuento de registros de error de los trabajadores
- Métricas de entrada y salida
Para acceder a información adicional en estos gráficos, haz clic en el botón “Expandir la leyenda del gráfico”.
Capacidad de procesamiento
La capacidad de procesamiento es el volumen de datos que se procesa en cualquier momento. Esta métrica por paso se muestra como una cantidad de elementos por segundo. Para ver esta métrica en bytes por segundo, haz clic en Throughput (elements/sec) (Capacidad de procesamiento [elementos/s]) arrow_drop_down > Throughput (bytes/sec) (Capacidad de procesamiento [bytes/s]).
Uso de CPU
El uso de la CPU es la cantidad de CPU utilizada dividida por la cantidad de CPU disponible para el procesamiento. Esta métrica por trabajador se muestra como un porcentaje.
Métricas de entrada y salida
Se muestran las métricas de entrada y las métricas de salida si el trabajo de transmisión de Dataflow tiene registros de lectura o escritura mediante Pub/Sub.
Los siguientes tres gráficos se muestran en las secciones Métricas de entrada y Métricas de salida.
Solicitudes por segundo
Las solicitudes por segundo son la tasa de solicitudes a la API para leer o escribir datos por fuente o receptor en el tiempo. Si esta tasa disminuye a cero, o si disminuye de manera significativa durante un período prolongado relativo al comportamiento esperado, es posible que la canalización se bloquee cuando realice ciertas operaciones (o que no haya datos para leer). También debes revisar los pasos que tienen una marca de agua de sistema alta. Además, examina los registros del trabajador para detectar errores o indicaciones de que el procesamiento es lento.
Errores de respuesta por segundo, según tipo de error
Los errores de respuesta por segundo según el tipo de error son la tasa de solicitudes incorrectas a la API para leer o escribir datos por fuente o receptor a lo largo del tiempo. Si se producen errores de forma frecuente y repetida, estas solicitudes de API pueden ralentizar el procesamiento y se deben investigar. Para solucionar estos problemas, revisa la documentación general de código de error de E/S y cualquier documentación específica del código de error que use la fuente o el receptor, como los códigos de error de Pub/Sub.
Latencia de las solicitudes
La latencia de las solicitudes es la duración de los tiempos de respuesta para varios percentiles. Por ejemplo, el percentil 95 indica que el 95% de las solicitudes lleva menos que el tiempo que se muestra. Si el tiempo de respuesta del percentil 99 es bastante largo para una entrada o salida específica, esto podría indicar un problema de generación de hotspots. Este problema ocurre cuando se leen o escriben muchos elementos de una manera que hace que el servicio sobrecargue un recurso. Para obtener un ejemplo, consulta Información sobre el rendimiento de Cloud Bigtable.
Usa el Explorador de métricas
Las siguientes métricas de E/S de Dataflow se pueden ver en el Explorador de métricas:
job/pubsub/write_count
: Son solicitudes de publicación de Pub/Sub de PubsubIO.Write en trabajos de Dataflow.job/pubsub/read_count
: Son solicitudes de extracción de Pub/Sub de Pubsub.IO.Read en trabajos de Dataflow.job/pubsub/write_latencies
: Son latencias de solicitud de publicación de Pub/Sub de PubsubIO.Write en trabajos de Dataflow.job/pubsub/read_latencies
: Son latencias de solicitud de extracción de Pub/Sub de Pubsub.IO.Read en trabajos de Dataflow.
Para obtener la lista completa de métricas de Dataflow, consulta la documentación de métricas de Google Cloud.
Crea alertas de Cloud Monitoring
Dataflow está completamente integrado en Cloud Monitoring, lo que te permite crear alertas cuando tu trabajo supera un umbral definido por el usuario.
Si quieres obtener instrucciones para crear estas alertas, consulta la página Usa Cloud Monitoring para canalizaciones de Dataflow.
Visualiza una canalización
Cuando seleccionas un trabajo específico de Dataflow, la interfaz de supervisión muestra información detallada sobre la canalización en ese trabajo. Esta información incluye una representación gráfica de tu canalización a medida que se ejecuta en el servicio de Dataflow, así como un resumen del trabajo, el registro del trabajo y la información detallada de cada paso de la canalización.
La interfaz de supervisión de Dataflow proporciona una representación gráfica de tu canalización: el grafo de ejecución. El grafo de ejecución de una canalización representa cada una de sus transformaciones en la canalización como un cuadro. Cada cuadro contiene el nombre de la transformación junto con información sobre el estado del trabajo, que incluye lo siguiente:
- En ejecución: el paso se está ejecutando actualmente.
- En cola: el paso en un trabajo de FlexRS está en cola.
- Finalizado de manera correcta: el paso finalizó con éxito.
- Detenido: el paso se detuvo porque el trabajo se detuvo.
- Desconocido: no se pudo informar el estado del paso.
- Con errores: no se pudo completar el paso.
Grafo de ejecución básico
Código de canalización:Java: SDK 2.x// Read the lines of the input text. p.apply("ReadLines", TextIO.read().from(options.getInputFile())) // Count the words. .apply(new CountWords()) // Write the formatted word counts to output. .apply("WriteCounts", TextIO.write().to(options.getOutput())) .to(options.getOutput())); Python( p # Read the lines of the input text. | 'ReadLines' >> beam.io.ReadFromText(options.input) # Count the words. | CountWords() # Write the formatted word counts to output. | 'WriteCounts' >> beam.io.WriteToText(options.output)) Java: SDK 1.x |
Grafo de ejecución:
![]() |
Transformaciones compuestas
En el grafo de ejecución, las transformaciones compuestas contienen varias subtransformaciones anidadas y son expandibles. Las transformaciones compuestas expandibles se marcan con una flecha en el grafo. Haz clic en la fecha para expandir la transformación y visualizar las subtransformaciones en su interior.
Código de canalización:Java: SDK 2.x// The CountWords Composite Transform // inside the WordCount pipeline. public static class CountWords extends PTransform<PCollection<String>, PCollection<String>> { @Override public PCollection<String> apply(PCollection<String> lines) { // Convert lines of text into individual words. PCollection<String> words = lines.apply( ParDo.of(new ExtractWordsFn())); // Count the number of times each word occurs. PCollection<KV<String, Long>> wordCounts = words.apply(Count.<String>perElement()); return wordCounts; } } Nota: Python# The CountWords Composite Transform inside the WordCount pipeline. class CountWords(beam.PTransform): def expand(self, pcoll): return ( pcoll # Convert lines of text into individual words. | 'ExtractWords' >> beam.ParDo(ExtractWordsFn()) # Count the number of times each word occurs. | beam.combiners.Count.PerElement() # Format each word and count into a printable string. | 'FormatCounts' >> beam.ParDo(FormatCountsFn())) Java: SDK 1.x |
Grafo de ejecución:
![]() |
Nombres de transformación
Dataflow tiene varias maneras de obtener el nombre de la transformación que se muestra en el grafo de ejecución de supervisión:
Java: SDK 2.x
- Dataflow puede usar un nombre que asignas cuando aplicas tu transformación. El primer argumento que proporcionas al método
apply
será el nombre de tu transformación. - Dataflow puede inferir el nombre de la transformación, ya sea a partir del nombre de la clase (si creaste una transformación personalizada) o del nombre de tu objeto de función
DoFn
(si usas una transformación central comoParDo
).
Python
- Dataflow puede usar un nombre que asignas cuando aplicas tu transformación. Para establecer el nombre de transformación, debes especificar el argumento
label
. - Dataflow puede inferir el nombre de la transformación, ya sea a partir del nombre de la clase (si creaste una transformación personalizada) o del nombre de tu objeto de función
DoFn
(si usas una transformación central comoParDo
).
Java: SDK 1.x
Información sobre las métricas
Tiempo
Cuando haces clic en un paso, aparece la métrica Tiempo. Esta métrica indica el tiempo aproximado total empleado en todos los subprocesos en todos los trabajadores para las siguientes acciones:
- Inicialización del paso
- Procesando datos
- Redistribuyendo datos
- Finalización del paso
En el caso de los pasos compuestos, esta métrica indica la suma de tiempo que se dedicó a los pasos que los integran. Esta estimación puede ayudarte a identificar pasos lentos y a diagnosticar a qué parte de tu canalización le lleva más tiempo del que debería.

Consulta Explicación del tiempo en las canalizaciones de Dataflow para ver un ejemplo en el que se usa la métrica Tiempo (anteriormente denominada Tiempo total de ejecución) para investigar cuál es la causa de que una canalización demore más de lo previsto en ejecutarse.
Métricas de entradas complementarias
Las Métricas de entradas complementarias te muestran la forma en que tus patrones y algoritmos de acceso de entradas complementarias afectan el rendimiento de tu canalización. Cuando tu canalización usa una entrada complementaria, Dataflow escribe la colección en una capa persistente, como un disco, y tus transformaciones leen de esa colección persistente. Estas operaciones de lectura y escritura afectan el tiempo de ejecución de tu trabajo.
La interfaz de supervisión de Dataflow muestra las métricas de entradas complementarias cuando seleccionas una transformación que crea o consume una colección de entrada complementaria. Puedes ver las métricas en la sección Métricas de entradas complementarias de la pestaña Paso.
Transformaciones que crean una entrada complementaria
Si la transformación seleccionada crea una colección de entrada complementaria, la sección Métricas de entradas complementarias muestra el nombre de la colección, junto con las métricas siguientes:
- Time spent writing: (Tiempo dedicado a la escritura) el tiempo de ejecución empleado para escribir la colección de entradas complementarias.
- Bytes written: (Bytes escritos) la cantidad total de bytes escritos en la colección de entradas complementarias.
- Tiempo y bytes de la lectura de entradas complementarias: una tabla que contiene métricas adicionales de todas las transformaciones que consumen la colección de entradas complementarias llamada consumidores de entradas complementarias.
La tabla de Tiempo y bytes leídos de las entradas complementarias contiene la información siguiente para cada consumidor de entrada complementaria:
- Side input consumer: (Consumidor de entradas complementarias): nombre de la transformación del consumidor de entradas complementarias
- Tiempo dedicado a la escritura: tiempo que este consumidor emplea en leer la colección de entradas complementarias.
- Bytes read: (Bytes leídos) cantidad de bytes que este consumidor lee de la colección de entradas complementarias.
Si tu canalización tiene una transformación compuesta que crea una entrada complementaria, expande la transformación compuesta hasta que veas la subtransformación específica que crea la entrada complementaria. Luego, selecciona esa subtransformación para ver la sección Métricas de entradas complementarias.
En la figura 5, se muestran las métricas de entradas complementarias de una transformación que crea una colección de entradas complementarias.

MakeMapView
). Está seleccionada la subtransformación que crea la entrada complementaria (CreateDataflowView
), y se observan las métricas de las entradas complementarias en la pestaña Paso.Transformaciones que consumen una o más entradas complementarias
Si la transformación seleccionada consume una o más entradas complementarias, la sección de las Métricas de entradas complementarias muestra la tabla Tiempo y bytes leídos de las entradas complementarias. Esta tabla contiene la información siguiente para cada colección de entrada complementaria:
- Colección de entrada complementaria: nombre de la colección de la entrada complementaria.
- Tiempo dedicado a la escritura: tiempo que la transformación emplea en leer la colección de entradas complementarias.
- Bytes leídos: cantidad de bytes que la transformación lee de la colección de entradas complementarias.
Si tu canalización tiene una transformación compuesta que lee una entrada complementaria, expande la transformación compuesta hasta que veas la subtransformación específica lee la entrada complementaria. Luego, selecciona esa subtransformación para ver la sección Métricas de entradas complementarias.
En la figura 6, se muestran las métricas de entradas complementarias de una transformación que lee de una colección de entradas complementarias.

JoinBothCollections
lee de una colección de entradas complementarias. Está seleccionado JoinBothCollections
en el grafo de ejecución, y se observan las métricas de entradas complementarias en la pestaña Paso.Identifica los problemas de rendimiento de las entradas complementarias
Reiteración es un problema de rendimiento de entrada complementaria común. Si tu entrada complementaria PCollection
es demasiado grande, los trabajadores no pueden almacenar en caché toda la colección en la memoria.
En consecuencia, los trabajadores deben leer de la colección de entradas complementarias persistente varias veces.
En la figura 7, las métricas de entradas complementarias muestran que el total de bytes leídos desde la colección de entradas complementarias es mucho mayor que el tamaño de la colección (el total de bytes escritos).

Si deseas mejorar el rendimiento de esta canalización, vuelve a diseñar tu algoritmo para evitar la iteración o la recuperación de los datos de la entrada complementaria. En el ejemplo siguiente, la canalización crea el producto cartesiano de dos colecciones. El algoritmo itera a través de toda la colección de entrada complementaria para cada elemento de la colección principal. Puedes mejorar el patrón de acceso de la canalización si agrupas en lotes varios elementos de la colección principal. Este cambio reduce la cantidad de veces que los trabajadores deben volver a leer la colección de entrada complementaria.
Se puede generar otro problema de rendimiento común si tu canalización realiza una unión mediante la aplicación de un ParDo
con una o más entradas complementarias grandes. En este caso, los trabajadores dedican un alto porcentaje del tiempo de ejecución de la unión a leer las colecciones de entradas complementarias.
En la figura 8, se muestra un ejemplo de métricas de entradas complementarias cuando ocurre este problema:

JoinBothCollections
tiene un tiempo de ejecución total de 18 min y 31 s. Los trabajadores dedican la mayor parte del tiempo de ejecución (10 min y 3 s) a leer de la colección de entradas complementarias de 10 GB.Si deseas mejorar el rendimiento de esta canalización, usa CoGroupByKey, en lugar de las entradas complementarias.
Latencia del sistema y actualidad de los datos
En el panel Resumen del trabajo, puedes ver los grafos que proporcionan las métricas de latencia del sistema y actualidad de los datos durante las últimas 6 horas. Se realizan muestreo de datos cada 60 segundos. Luego del muestreo, los datos no son visibles durante un máximo de 180 segundos.
Latencia del sistema
La latencia del sistema es la duración máxima actual que un elemento de datos lleva en procesamiento o en espera para que se lo procese. Esta métrica indica cuánto tiempo espera un elemento dentro de cualquier fuente en la canalización, en segundos. La duración máxima se ajusta después del procesamiento. Los siguientes casos son consideraciones adicionales:
- Si hay varias fuentes y receptores, la latencia del sistema es la mayor cantidad de tiempo que un elemento espera dentro de una fuente antes de que se la escriba en todos los receptores.
- Si una fuente no proporciona un valor de cuánto tiempo espera un elemento dentro de una fuente, y el elemento no tiene metadatos que permitan definir la hora del evento, la latencia del sistema se calcula según el momento en que la canalización recibió el elemento inicialmente.
Actualidad de los datos
La actualidad de los datos es la cantidad de tiempo transcurrido entre la hora real y la marca de agua de salida. Cada paso de tu canalización tiene una marca de agua de los datos de salida. Una marca de agua de los datos de salida de T indica que se han procesado todos los elementos con una hora del evento anterior a T. La marca de agua de los datos de salida dependerá de la marca de agua de los datos de entrada más antigua de todos los procesamientos ascendentes. Si aún no se han procesado algunos datos de entrada, la marca de agua de salida no se incluye, lo que afecta la actualidad de los datos.
Haz clic en el vínculo Crear alertas (Create Alerting) debajo de los grafos para abrir la página Create new alerting policy del panel de Cloud Monitoring.

Ajuste de escala automático
En el panel Resumen del trabajo, puedes ver la información de tu trabajo de ajuste de escala automático. El servicio de Dataflow elige automáticamente la cantidad de instancias de trabajadores necesarias para ejecutar el trabajo de ajuste de escala automático. La cantidad de instancias de trabajador puede variar con el tiempo según las necesidades de tu trabajo.

Para ver el historial de los cambios del ajuste de escala automático, haz clic en el vínculo Ver más historial. Se mostrará una ventana emergente con la información sobre el historial de trabajadores de tu canalización.

Nota: Puedes ver los detalles del ajuste de escala automático sobre canalizaciones de transmisión que se ejecutaron o actualizaron a partir del 12 de diciembre de 2016. Si tu canalización se ejecutó o se actualizó por última vez antes del 12 de diciembre, no podrás ver los detalles del ajuste de escala automático hasta que actualices la canalización.
Informes de errores
La interfaz de Error Reporting agrega y muestra los errores que se producen en tus canalizaciones.
El informe de errores incluye la información siguiente:
- Una lista de errores con los mensajes de error
- La cantidad de veces que sucedió cada error.
- Un histograma que indica cuándo sucedió cada error.
- La hora en que sucedió el error más reciente.
Para ver el informe de errores de tu canalización, haz clic en el menú Registros sobre el grafo de la canalización y selecciona la pestaña Seguimientos de pila debajo del grafo de la canalización. En la interfaz de supervisión de Dataflow, verás un resumen de cada error registrado y la cantidad de veces que ocurrió.
Los paneles Worker error log count (Recuento de registros de errores de los trabajadores) muestran la tasa de errores observados en todos los trabajadores en cualquier momento.

Para ver más información sobre los errores, haz clic en uno de los resúmenes. Se te dirigirá a la interfaz de Error Reporting.

La interfaz de Error Reporting ofrece otras funciones. Consulta Visualiza errores para obtener más información sobre los errores que generan tus canalizaciones.