En el caso de las canalizaciones de transmisión, un rezagado se define como un elemento de trabajo con las siguientes características:
- Evita que la marca de agua avance durante un período significativo (del orden de minutos).
- Se procesa durante mucho tiempo en relación con otros elementos de trabajo de la misma etapa.
Los rezagados bloquean la marca de agua y agregan latencia al trabajo. Si el retraso es aceptable para tu caso de uso, no es necesario que realices ninguna acción. Si deseas reducir la latencia de un trabajo, comienza por abordar los rezagados.
Visualiza los rezagados de transmisión en la consola de Google Cloud
Después de iniciar un trabajo de Dataflow, puedes usar la Google Cloud consola para ver los retrasos detectados.
Puedes ver los rezagados de transmisión en la vista de progreso de la etapa o en la vista de flujo de trabajo de la etapa.
Ver demorados por progreso de la etapa
Para ver las demoras por progreso de la etapa, haz lo siguiente:
En la consola de Google Cloud , ve a la página Trabajos de Dataflow.
Haz clic en el nombre del trabajo.
En la página de detalles del trabajo, haz clic en la pestaña Detalles de la ejecución.
En la lista Graph view, selecciona Stage stage. En el gráfico de progreso, se muestran los recuentos agregados de todas las demoras detectadas en cada etapa.
Para ver los detalles de una etapa, mantén el puntero sobre la barra de la etapa. El panel de detalles incluye un vínculo a los registros del trabajador. Si haces clic en este vínculo, se abrirá Cloud Logging con alcance para el trabajador y el intervalo de tiempo en el que se detectó el demora.
Flujo de trabajo para ver demorados por etapa
Para ver el flujo de trabajo de demoras por etapa, haz lo siguiente:
En la consola de Google Cloud , ve a la página Trabajos de Dataflow.
Ve a Trabajos
Haz clic en el nombre del trabajo.
En la página de detalles del trabajo, haz clic en la pestaña Detalles de la ejecución.
En la lista Vista de gráfico, selecciona Flujo de trabajo de la etapa. El flujo de trabajo por etapas muestra las etapas de ejecución del trabajo, representadas como un grafo de flujo de trabajo.
Soluciona problemas de transmisión de rezagados
Si se detecta un rezagado, significa que una operación de tu canalización se ha estado ejecutando durante un tiempo inusualmente largo.
Para solucionar el problema, primero verifica si Estadísticas de Dataflow señala algún problema.
Si aún no puedes determinar la causa, consulta los registros del trabajador para la etapa que informó el rezagado. Para ver los registros de los trabajadores pertinentes, consulta los detalles de los rezagados en el progreso de la etapa. Luego, haz clic en el vínculo del trabajador. Este vínculo abre Cloud Logging, con alcance para el trabajador y el intervalo de tiempo en el que se detectó el demora. Busca problemas que puedan ralentizar la etapa, como los siguientes:
- Errores en el código
DoFn
o atascadosDoFns
. Busca seguimientos de pila en los registros, cerca de la marca de tiempo en la que se detectó el rezagado. - Llamadas a servicios externos que tardan mucho en completarse Para mitigar este problema, realiza llamadas por lotes a servicios externos y establece tiempos de espera en las RPC.
- Son los límites de cuota en los receptores. Si tu canalización genera datos para un servicio de Google Cloud, es posible que puedas aumentar la cuota. Para obtener más información, consulta Trabaja con cuotas. Además, consulta la documentación del servicio en particular para conocer las estrategias de optimización, así como la documentación del conector de E/S.
DoFns
que realizan operaciones de lectura o escritura grandes en el estado persistente. Considera refactorizar tu código para realizar lecturas o escrituras más pequeñas en el estado persistente.
También puedes usar el panel Información adicional para encontrar los pasos más lentos de la etapa. Uno de estos pasos podría estar causando el rezago. Haz clic en el nombre del paso para ver los registros del trabajador de ese paso.
Después de determinar la causa, actualiza tu canalización con código nuevo y supervisa el resultado.
¿Qué sigue?
- Aprende a usar la interfaz de supervisión de Dataflow.
- Obtén información de la pestaña Detalles de la ejecución en la interfaz de supervisión.