Soluciona problemas de rezagados en trabajos de transmisión

Para 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 (en cuestión de minutos).
  • Se procesa durante mucho tiempo en relación con otros elementos de trabajo de la misma etapa.

Los rezagados conservan 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 cualquier rezagado.

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 rezagados de transmisión en la vista de progreso de la etapa o en la vista del flujo de trabajo de la etapa.

Visualiza los rezagados por progreso de la etapa

Para ver los rezagados por progreso de la etapa, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Trabajos de Dataflow.

    Ir a Trabajos

  2. Haz clic en el nombre del trabajo.

  3. En la página de detalles del trabajo, haz clic en la pestaña Detalles de la ejecución.

  4. 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.

    Captura de pantalla de la vista de progreso de la etapa.

  5. 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.

    Captura de pantalla de la tarjeta de detalles de la demora.

Ver rezagados por flujo de trabajo de las etapas

Para ver los rezagados por flujo de trabajo por etapas, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Trabajos de Dataflow.

    Ve a Trabajos

  2. Haz clic en el nombre del trabajo.

  3. En la página de detalles del trabajo, haz clic en la pestaña Detalles de la ejecución.

  4. 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.

    Captura de pantalla de la vista de flujo de trabajo de la etapa.

Soluciona problemas de transmisión de rezagados

Si se detecta un rezagado, significa que una operación de tu canalización se ejecutó durante mucho tiempo.

Para solucionar el problema, primero verifica si las estadísticas de Dataflow detectan 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 trabajador relevantes, consulta los detalles rezagados del 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 la etapa, como los siguientes:

  • Errores en el código DoFn o atascados DoFns. Busca seguimientos de pila en los registros, cerca de la marca de tiempo cuando se detectó el demora.
  • Llamadas a servicios externos que tardan mucho en completarse. Para mitigar este problema, llamadas por lotes a servicios externos y configura tiempos de espera en RPC.
  • Límites de cuota en los receptores. Si tu canalización genera 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 las estrategias de optimización y la documentación del conector de E/S.
  • DoFns que realizan operaciones grandes de lectura o escritura en 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. Uno de estos pasos podría ser la causa de la demora. Haz clic en el nombre del paso para ver los registros de trabajador de ese paso.

Después de determinar la causa, actualiza tu canalización con un código nuevo y supervisa el resultado.

¿Qué sigue?