En el caso de las canalizaciones de transmisión, un elemento 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 comparación con otros elementos de trabajo de la misma etapa.
Los rezagados retienen la marca de agua y agregan latencia a la tarea. Si el retraso es aceptable para tu caso de uso, no es necesario que realices ninguna acción. Si quieres 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 consola de Google Cloud para ver los retrasos demorados.
Puedes ver los elementos 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 los demorados por progreso de la etapa, sigue estos pasos:
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 de 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.
Ver demorados por flujo de trabajo de etapa
Para ver los demorados por flujo de trabajo de etapa, sigue estos pasos:
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 en tu canalización se está ejecutando durante un tiempo inusualmente largo.
Para solucionar el problema, primero verifica si las estadísticas de Dataflow identifican algún problema.
Si aún no puedes determinar la causa, verifica los registros del trabajador de la etapa que informó el rezagado. Para ver los registros de trabajadores relevantes, 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 estar ralentizando el escenario, como los siguientes:
- Errores en el código
DoFn
o atascadosDoFns
. Busca trazas 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 tiempo en completarse. Para mitigar este problema, realiza llamadas por lotes a servicios externos y establece tiempos de espera en las RPC.
- Límites de cuota en los sumideros Si tu canalización genera resultados en 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 operaciones de lectura o escritura 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. Es posible que uno de estos pasos sea la causa del retraso. 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.