Profiler des pipelines Dataflow avec Cloud Profiler

Cloud Profiler est un profileur statistique peu encombrant, qui recueille en permanence des informations sur l'utilisation du processeur et l'allocation de mémoire de vos applications de production. L'intégration de Dataflow à Cloud Profiler vous aide à identifier les parties du code de pipeline qui consomment le plus de ressources.

Avant de commencer

Explorez les concepts de Cloud Profiler et familiarisez-vous avec l'interface de profileur.

L'API Cloud Profiler de votre projet est activée automatiquement lorsque vous accédez à la page de Profiler pour la première fois. Assurez-vous que votre projet dispose d'un quota suffisant.

Activer Cloud Profiler pour les pipelines Dataflow

Cloud Profiler est disponible pour les pipelines Dataflow écrits dans le SDK Apache Beam pour Java et Python, version 2.33.0 ou ultérieure. Il peut être activé au moment du démarrage du pipeline. La surcharge de mémoire et de processeur amorti devrait être inférieure à 1 % pour vos pipelines.

Java

Pour activer le profilage du processeur, démarrez le pipeline avec l'option --dataflowServiceOptions=enable_google_cloud_profiler.

Pour activer le profilage du tas, démarrez le pipeline avec les options --dataflowServiceOptions=enable_google_cloud_profiler et --dataflowServiceOptions=enable_google_cloud_heap_sampling. Le profilage du tas nécessite Java 11 ou une version ultérieure.

Python

Pour utiliser Cloud Profiler, votre pipeline Python doit être exécuté avec l'exécuteur v2 de Dataflow.

Pour activer le profilage du processeur, démarrez le pipeline avec l'option --dataflow_service_options=enable_google_cloud_profiler. Le profilage du tas n'est pas encore compatible avec Python.

Si vous déployez vos pipelines à partir de modèles Dataflow, vous pouvez activer Cloud Profiler en spécifiant les options enable_google_cloud_profiler et enable_google_cloud_heap_sampling en tant que tests supplémentaires.

Console

Si vous utilisez un Modèle fourni par Google, vous pouvez spécifier les options dans le champ Tests supplémentaires de la page Créer une tâche à partir d'un modèle dans Dataflow.

gcloud

Si vous utilisez l'outil de ligne de commande gcloud pour exécuter des modèles (gcloud dataflow jobs run ou gcloud dataflow flex-template run selon le type de modèle), vous pouvez spécifier les indicateurs via l'option --additional-experiments.

API

Si vous utilisez l'API REST pour exécuter des modèles, vous pouvez spécifier les options via le champ additionalExperiments de l'environnement d'exécution, au format RuntimeEnvironment ou FlexTemplateRuntimeEnvironment selon le type de modèle.

Affichez les données de profilage.

Si Cloud Profiler est activé, un lien vers la page de Profiler s'affiche sur la page de la tâche.

Lien de la page du profileur

Vous pouvez également accéder à la page de Profiler pour rechercher les données de profilage de votre pipeline Dataflow, où Service correspond au nom de votre tâche et Version à votre ID de tâche.

page du profileur

Dépannage

Certaines causes courantes peuvent empêcher votre pipeline de générer les données de profilage, même lorsque vous activez Cloud Profiler.

  • Votre pipeline utilise une ancienne version du SDK Apache Beam. Vous pouvez afficher la version du SDK Apache Beam de votre pipeline via la page de la tâche. Vous devez disposer de la version 2.33.0 ou d'une version ultérieure pour utiliser Cloud Profiler. Si votre tâche est créée à partir de modèles Dataflow, assurez-vous que les modèles utilisent les versions compatibles du SDK.

  • Votre projet dépasse le quota Cloud Profiler. Vous pouvez consulter les informations d'utilisation du quota depuis la page des quotas de votre projet. Si vous avez atteint votre quota, le service Cloud Profiler rejette les données de profilage.

L'agent Cloud Profiler est installé lors du démarrage du nœud de calcul Dataflow. Les messages de journal générés par Cloud Profiler sont disponibles dans les types de journaux dataflow.googleapis.com/worker-startup.

journal de profileur