Crea perfiles de canalizaciones de Dataflow con Cloud Profiler

Cloud Profiler es un generador de perfiles estadístico y de baja sobrecarga que recopila de manera continua información de las aplicaciones de producción sobre la asignación de memoria y el uso de la CPU. La integración de Dataflow con Cloud Profiler te ayuda a identificar las partes del código de la canalización que consumen más recursos.

Antes de comenzar

Comprende los conceptos de Cloud Profiler y familiarízate con la interfaz de Profiler.

La API de Cloud Profiler para tu proyecto se habilitará automáticamente cuando visitas la página de Profiler por primera vez. Asegúrate de que tu proyecto tenga suficiente cuota.

Habilita Cloud Profiler para las canalizaciones de Dataflow

Cloud Profiler está disponible para canalizaciones de Dataflow escritas en el SDK de Apache Beam para Java y Python 2.33.0 o versiones posteriores. Se puede habilitar en el momento de inicio de la canalización. Se espera que la CPU amortizada y la sobrecarga de la memoria sean inferiores al 1% para las canalizaciones.

Java

Para habilitar la creación de perfiles de CPU, inicia la canalización con la opción --dataflowServiceOptions=enable_google_cloud_profiler.

Para habilitar la creación de perfiles del montón, inicia la canalización con las opciones --dataflowServiceOptions=enable_google_cloud_profiler y --dataflowServiceOptions=enable_google_cloud_heap_sampling. La creación de perfiles del montón requiere Java 11 o una versión posterior.

Python

Tu canalización de Python es necesaria para ejecutarse con Dataflow Runner v2 a fin de usar Cloud Profiler.

Para habilitar la creación de perfiles de CPU, inicia la canalización con la opción --dataflow_service_options=enable_google_cloud_profiler. La creación de perfiles del montón aún no es compatible con Python.

Si implementas tus canalizaciones desde plantillas de Dataflow, puedes habilitar Cloud Profiler mediante la especificación de las marcas enable_google_cloud_profiler y enable_google_cloud_heap_sampling como experimentos adicionales.

Console

Si usas una Plantilla que proporciona Google, puedes especificar las marcas en los Experimentos adicionales en Crear trabajo a partir de una plantilla de Dataflow.

gcloud

Si usas la herramienta de línea de comandos de gcloud para ejecutar plantillas, puedes usar gcloud dataflow jobs run o gcloud dataflow flex-template run. Según el tipo de plantilla, puedes especificar las marcas a través de la opción --additional-experiments.

API

Si usas la API de REST para ejecutar plantillas, puedes especificar las marcas a través del campo additionalExperiments del entorno de ejecución, ya sea RuntimeEnvironment o FlexTemplateRuntimeEnvironment, según el tipo de plantilla.

Visualiza los datos de creación de perfiles

Si Cloud Profiler está habilitado, se muestra un vínculo a la página de Profiler en la página de trabajo.

Vínculo a la página del generador de perfiles

También puedes visitar la página de Profiler para encontrar los datos de generación de perfiles para tu canalización de Dataflow, en los que el Service es tu nombre de trabajo y la versión es tu ID de trabajo.

página del generador de perfiles

Soluciona problemas

Hay algunas causas comunes que pueden evitar que la canalización genere los datos de creación de perfiles, incluso cuando habilitas Cloud Profiler.

  • Tu canalización usa una versión anterior del SDK de Apache Beam. Puedes ver la versión del SDK de Apache Beam de tu canalización a través de la página de trabajos. Necesitas la versión 2.33.0 o una posterior para usar Cloud Profiler. Si tu trabajo se crea a partir de plantillas de Dataflow, asegúrate de que las plantillas usen las versiones de SDK compatibles.

  • Tu proyecto se está quedando sin cuota de Cloud Profiler. Puedes ver el uso de la cuota desde la página de cuotas de tu proyecto. El servicio de Cloud Profiler rechaza los datos de creación de perfiles si alcanzaste tu cuota.

El agente de Cloud Profiler se instala durante el inicio del trabajador de Dataflow. Los mensajes de registro que genera Cloud Profiler están disponibles en los tipos de registros dataflow.googleapis.com/worker-startup.

Registro del generador de perfiles