En la interfaz de supervisión de Dataflow, el panel Información del paso muestra información sobre los pasos individuales de un trabajo. Un paso representa una sola transformación en tu canalización. Las transformaciones compuestas contienen subpasos.
En el panel Información del paso , se muestra la siguiente información:
- Métricas del paso
- Información sobre las colecciones de entrada y salida del paso
- Qué etapas corresponden a este paso
- Métricas de entradas complementarias
Usa el panel Información del paso para comprender el rendimiento de tu trabajo en cada paso y encontrar los pasos que se pueden optimizar.
Visualiza la información del paso
Para ver la información del paso, realiza los siguientes pasos:
En la Google Cloud consola de, ve a la página Dataflow > Trabajos.
Selecciona un trabajo.
Haz clic en la pestaña Gráfico de trabajo para ver el gráfico del trabajo. El gráfico de trabajo representa cada paso de la canalización como un cuadro.
Haz clic en un paso. La información sobre el paso aparece en el panel Información del paso.
Para ver los subpasos de una transformación compuesta, haz clic en la flecha Expandir nodo.
Métricas de los pasos
En el panel Información del paso , se muestran las siguientes métricas del paso.
Marca de agua y retraso del sistema
La marca de agua del sistema es la marca de tiempo más reciente para la que se procesaron por completo todas las horas del evento. El retraso de la marca de agua del sistema es el tiempo máximo que un elemento de datos ha estado esperando el procesamiento.
Marca de agua y retraso de los datos
La marca de agua de los datos es la marca de tiempo que indica la hora de finalización estimada de la entrada de datos para este paso. El retraso de la marca de agua de los datos es la diferencia entre la hora del evento de entrada más reciente y la marca de agua de los datos.
Tiempo
El tiempo es el tiempo aproximado total empleado en todos los subprocesos en todos los trabajadores en las siguientes acciones:
- Inicialización del paso
- Procesamiento de datos
- Redistribución de datos
- Finalización del paso
En el caso de los pasos compuestos, el tiempo es igual a la suma del tiempo empleado en los pasos que los integran.
El tiempo 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.
Estado del cuello de botella
Si Dataflow detecta un cuello de botella, se muestra una alerta, junto con la causa, si se conoce. Para obtener más información, consulta Soluciona problemas de cuellos de botella.
Latencia máxima de la operación
La latencia máxima de la operación es el tiempo máximo que se dedica en este paso para procesar mensajes entrantes o vencimientos de ventanas. Esta métrica se mide de manera no individualizada en los pasos fusionados en una sola etapa, por lo que el valor representa toda la etapa.
Paralelismo de claves
El paralelismo de claves es la cantidad aproximada de claves que se usan para el procesamiento de datos en este paso.
Información de ventanas
Para los pasos de agregación en canalizaciones de transmisión, el panel Información del paso muestra información de ventanas derivada de la estrategia de ventanas de la transformación ParDo de la canalización. Por ejemplo:
- Función de ventanas:
org.apache.beam.sdk.transforms.windowing.SlidingWindows - Período de ventanas:
30 sec - Tamaño de la ventana:
5 min - Desplazamiento de inicio de la ventana:
0 ms - Modo de acumulación de ventanas:
DISCARDING - Factor de amplificación de escritura de ventanas:
10
Los siguientes campos de ventanas proporcionan un contexto importante para el rendimiento de la transmisión y el volumen de datos:
- Modo de acumulación de ventanas: Indica si el estado de la ventana se conserva en los activadores. Para obtener más información, consulta Modos de acumulación de ventanas en la documentación de Apache Beam.
- Factor de amplificación de escritura de ventanas: Es la cantidad promedio de ventanas a las que se asigna cada elemento entrante, calculada como
Window Size / Window Period. Por ejemplo, un tamaño de ventana de 5 minutos (300 sec) con un período de deslizamiento de 30 segundos (30 sec) asigna cada elemento a 10 ventanas superpuestas (300 / 30 = 10), lo que da como resultado un factor de amplificación de escritura de10. Un factor de amplificación mayor que1multiplica el volumen de elementos descendentes, el tráfico de redistribución y el almacenamiento de estado.
Colecciones de entrada y salida
En el panel Información del paso , se muestra la siguiente información sobre cada una de las colecciones de entrada y salida del paso:
Gráfico de capacidad de procesamiento. En este gráfico, se muestra la capacidad de procesamiento de la colección. Puedes ver el gráfico como elementos por segundo o como bytes por segundo. Para obtener más información sobre esta métrica, consulta Capacidad de procesamiento.
Cantidad de elementos agregados a la colección
Tamaño estimado de la colección, en bytes
Etapas optimizadas
Una etapa representa una sola unidad de trabajo que realiza Dataflow. Cuando seleccionas un paso en el gráfico de trabajo, el panel Información del paso muestra los nombres de las etapas que realizan este paso, junto con el estado actual, como en ejecución, detenido o correcto.
Para ver más información sobre las etapas de tu trabajo, usa la pestaña Detalles de la ejecución.
Métricas de entradas complementarias
Una entrada complementaria es una entrada adicional a la que una transformación puede acceder cada vez que procesa un elemento. Si una transformación crea o consume una entrada complementaria, el panel Información complementaria muestra las métricas de la colección de entradas complementarias.
Si una transformación compuesta crea o consume una entrada complementaria, expande la transformación compuesta hasta que veas la subtransformación específica que crea o consume la entrada complementaria. Selecciona esa subtransformación para ver las métricas de entradas complementarias.
Transformaciones que crean una entrada complementaria
Si una transformación 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.
En la siguiente imagen, se muestran las métricas de entradas complementarias para una transformación que crea una colección de entrada complementaria:

El gráfico de trabajo tiene una transformación compuesta expandida (MakeMapView). Se selecciona la subtransformación que crea la entrada complementaria (CreateDataflowView) y las métricas de entradas complementarias son visibles en el panel Información del paso.
Transformaciones que consumen entradas complementarias
Si una transformación consume una o más entradas complementarias, la sección 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.
En la siguiente imagen, se muestran las métricas de entradas complementarias de una transformación que lee de una colección de entradas complementarias.

La transformación JoinBothCollections lee desde la colección de entrada complementaria.
JoinBothCollections está seleccionado en el gráfico de trabajo, y se observan las métricas de entradas complementarias en el panel Información del paso.
Identifica los problemas de rendimiento de las entradas complementarias
Las entradas complementarias pueden afectar 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.
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 siguiente imagen, las métricas de entradas complementarias muestran que el total de bytes leídos desde la colección de entrada complementaria son mucho más grandes que el tamaño de la colección, que se muestra como el total de bytes escritos. La colección de entrada complementaria es de 563 MB y la suma de bytes leídos cuando se consumen las transformaciones es de casi 12 GB.

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 procesamiento a la operación de unión a leer las colecciones de entradas complementarias.
En la siguiente imagen, se muestra un ejemplo de métricas de entradas complementarias cuando ocurre este problema:

La transformación JoinBothCollections tiene un tiempo de procesamiento total de más de 18 minutos. Los trabajadores emplean la mayoría del tiempo de procesamiento (10 minutos) en leer desde la colección de entrada complementaria de 10 GB. Si deseas mejorar el rendimiento de esta
canalización, usa
CoGroupByKey
en lugar de las entradas complementarias.