Utiliser Cloud Monitoring pour les pipelines Dataflow

Cloud Monitoring fournit des fonctionnalités de journalisation et de diagnostic performantes. L'intégration de Dataflow avec Monitoring vous permet d'accéder depuis les tableaux de bord Monitoring à des métriques de tâche Dataflow, telles que l'état de la tâche, le nombre d'éléments, le retard du système (pour les tâches de traitement par flux) et les compteurs utilisateur. Vous pouvez également utiliser des alertes Monitoring pour être averti de différentes conditions, comme un retard trop important du système de traitement par flux ou l'échec de certaines tâches.

Avant de commencer

Suivez le guide de démarrage rapide avec Java, le guide de démarrage rapide avec Python ou le guide de démarrage rapide avec Go pour configurer votre projet Dataflow. Ensuite, créez et exécutez votre pipeline.

Pour afficher les journaux dans l'explorateur de métriques, le compte de service de nœud de calcul doit disposer du rôle roles/monitoring.metricWriter.

Métriques personnalisées

Toute métrique que vous définissez dans votre pipeline Apache Beam est signalée par Dataflow à Monitoring en tant que métrique personnalisée. Apache Beam dispose de trois types de métriques de pipeline : Counter, Distribution et Gauge.

  • Dataflow transmet les métriques Counter et Distribution à Monitoring.
  • Distribution est signalé sous la forme de quatre sous-métriques comportant les suffixes _MAX, _MIN, _MEAN et _COUNT.
  • Dataflow ne permet pas de créer un histogramme à partir de métriques Distribution.
  • Dataflow signale les mises à jour incrémentielles à Monitoring environ toutes les 30 secondes.
  • Pour éviter les conflits, toutes les métriques personnalisées Dataflow sont exportées en tant que type de données double.
  • Par souci de simplicité, toutes les métriques personnalisées Dataflow sont exportées en tant que genre de métrique GAUGE. Vous pouvez surveiller le delta sur une période donnée pour une métrique GAUGE, comme indiqué dans l'exemple en langage MQL suivant :

     fetch dataflow_job
     | metric 'dataflow.googleapis.com/job/user_counter'
     | filter (metric.job_id == '[JobID]')
     | delta 1m
     | group_by 1m, [value_user_counter_mean: mean(value.user_counter)]
     | every 1m
     | group_by [metric.ptransform, metric.metric_name],
       [value_user_counter_mean_aggregate: aggregate(value_user_counter_mean)]
    
  • Les métriques personnalisées Dataflow s'affichent dans Monitoring en tant que dataflow.googleapis.com/job/user_counter avec les libellés metric_name: metric-name et ptransform: ptransform-name.

  • Pour des raisons de rétrocompatibilité, Dataflow transmet également les métriques personnalisées à Monitoring sous la forme custom.googleapis.com/dataflow/metric-name.

  • Les métriques personnalisées Dataflow sont soumises à la limite de cardinalité dans Monitoring.

  • Chaque projet est limité à 100 métriques personnalisées Dataflow. Ces métriques sont publiées en tant que custom.googleapis.com/dataflow/metric-name.

Les métriques personnalisées transmises à Monitoring entraînent des frais basés sur les tarifs de Cloud Monitoring.

Utiliser l'explorateur de métriques

Explorez les métriques Dataflow à l'aide de Monitoring. Suivez les étapes de cette section pour observer les métriques standards fournies pour chacun de vos pipelines Apache Beam. Pour plus d'informations sur l'utilisation de l'explorateur de métriques, consultez la section Créer des graphiques avec l'explorateur de métriques.

  1. Dans la console Google Cloud, sélectionnez Surveillance :

    Accéder à Monitoring

  2. Dans le volet de navigation, sélectionnez Explorateur de métriques.

  3. Dans le volet Sélectionner une métrique, saisissez Dataflow Job dans le filtre.

  4. Dans la liste qui vous est présentée, sélectionnez une métrique à observer pour l'une de vos tâches.

Lorsque vous exécutez des tâches Dataflow, vous pouvez également surveiller les métriques de vos sources et récepteurs. Par exemple, vous pouvez surveiller les métriques de l'API BigQuery Storage. Pour en savoir plus, consultez la page Créer des tableaux de bord, des graphiques et des alertes, ainsi que la liste complète des métriques du service de transfert de données BigQuery.

Créer des règles d'alerte et des tableaux de bord

Monitoring permet d'accéder aux métriques liées à Dataflow. Créez des tableaux de bord pour représenter graphiquement la série temporelle des métriques et créez des règles d'alerte qui vous informent lorsque les métriques atteignent les valeurs spécifiées.

Créer des groupes de ressources

Pour faciliter la définition des alertes et la création de tableaux de bord, créez des groupes de ressources incluant plusieurs pipelines Apache Beam.

  1. Dans la console Google Cloud, sélectionnez Surveillance :

    Accéder à Monitoring

  2. Dans le volet de navigation, sélectionnez Groupes.

  3. Cliquez sur Créer un groupe.

  4. Attribuez un nom au groupe.

  5. Ajoutez des critères de filtre afin de définir les ressources Dataflow à inclure dans le groupe. Par exemple, vous pouvez utiliser le préfixe du nom de vos pipelines comme critère de filtre. Créer un groupe.

  6. Une fois le groupe créé, vous pouvez visualiser les métriques de base liées à ses ressources.

Créer des règles d'alerte pour les métriques Dataflow

Monitoring vous permet de créer des alertes et de recevoir des notifications lorsqu'une métrique dépasse un seuil spécifié. Par exemple, vous pouvez recevoir une notification lorsque le temps de latence du système d'un pipeline de traitement par flux augmente au-delà d'une valeur prédéfinie.

  1. Dans la console Google Cloud, sélectionnez Surveillance :

    Accéder à Monitoring

  2. Dans le volet de navigation, sélectionnez Alertes.

  3. Cliquez sur Create policy (Créer une règle).

  4. Sur la page Create new alerting policy (Créer une règle d'alerte), définissez les conditions d'alerte et les canaux de notification.
    Par exemple, pour définir une alerte sur la métrique "Retard du système" pour le groupe de pipelines Apache Beam WindowedWordCount, procédez comme suit :

    1. Cliquez sur Sélectionner une métrique.
    2. Dans le champ Sélectionner une métrique, saisissez Dataflow Job.
    3. Pour Catégories de métriques, sélectionnez Tâche.
    4. Pour Métriques, sélectionnez Retard du système.

    Chaque fois qu'une alerte est déclenchée, un incident et un événement correspondant sont créés. Si vous avez spécifié un mécanisme de notification dans l'alerte (comme e-mail ou SMS), vous recevrez également une notification.

Créer des tableaux de bord de surveillance personnalisés

Vous pouvez créer des tableaux de bord Monitoring contenant les graphiques les plus pertinents liés à Dataflow. Pour ajouter un graphique à un tableau de bord, procédez comme suit :

  1. Dans la console Google Cloud, sélectionnez Surveillance :

    Accéder à Monitoring

  2. Dans le volet de navigation, sélectionnez Tableaux de bord.

  3. Cliquez sur Créer un tableau de bord.

  4. Cliquez sur Ajouter un widget.

  5. Dans la fenêtre Ajouter un widget, sélectionnez Métrique pour Données.

  6. Dans le volet Sélectionner une métrique, saisissez Dataflow Job dans le champ Métrique.

  7. Sélectionnez une catégorie de métrique et une métrique.

Vous pouvez ajouter autant de graphiques que vous le souhaitez au tableau de bord.

Recevoir les métriques de VM de nœud de calcul via l'agent Monitoring

Monitoring vous permet de surveiller les métriques liées aux disques persistants, aux processeurs, au réseau et aux processus. Lorsque vous exécutez votre pipeline à partir de vos instances de VM de nœud de calcul Dataflow, activez l'agent Monitoring. Consultez la liste des métriques disponibles via l'agent Monitoring.

Pour activer l'agent Monitoring, utilisez l'option --experiments=enable_stackdriver_agent_metrics lors de l'exécution de votre pipeline. Le compte de service de nœud de calcul doit disposer du rôle roles/monitoring.metricWriter.

Pour désactiver l'agent Monitoring sans arrêter votre pipeline, mettez à jour le pipeline en lançant une tâche de remplacement sans spécifier le paramètre --experiments=enable_stackdriver_agent_metrics.

Stockage et conservation

Les informations sur les tâches Dataflow terminées ou annulées sont stockées pendant 30 jours.

Les journaux opérationnels sont stockés dans le bucket de journaux _Default. Le nom du service de l'API Logging est dataflow.googleapis.com. Pour en savoir plus sur les services et les types de ressources surveillées Google Cloud utilisés dans Cloud Logging, consultez la page Ressources et services surveillés.

Pour en savoir plus sur la durée de conservation des entrées de journal par Logging, consultez la section correspondante sur la page Quotas et limites : durée de conservation des journaux.

Pour en savoir plus sur l'affichage des journaux opérationnels, consultez la section Surveiller et afficher les journaux de pipeline.

Étape suivante

Nous vous recommandons de consulter ces ressources complémentaires pour plus d'informations :