Cloud Monitoring

Cloud Monitoring vous offre une réelle visibilité sur les performances, le temps d'activité et l'état général de vos applications cloud. La suite des opérations Google Cloud collecte et ingère des métriques, des événements et des métadonnées à partir de clusters Dataproc, y compris les métriques HDFS, YARN et de tâche par cluster, afin de générer des insights via des tableaux de bord et des graphiques (voir Métriques Dataproc Cloud Monitoring).

Utilisez les métriques de cluster Cloud Monitoring pour surveiller les performances et l'état des clusters Dataproc.

Métriques de cluster Dataproc

Les métriques des ressources de cluster Dataproc sont automatiquement activées sur les clusters Dataproc. Monitoring permet d'afficher ces métriques.

Afficher les métriques de cluster

Vous pouvez consulter Monitoring dans Google Cloud Console ou à l'aide de l'API Monitoring.

Console

  1. Après avoir créé un cluster, accédez à Monitoring dans la console pour afficher les données de surveillance du cluster.

    Une fois la console Monitoring affichée, vous pouvez installer l'agent Monitoring sur les VM de votre projet comme étape de configuration supplémentaire. Il n'est pas nécessaire d'installer l'agent sur les VM des clusters Dataproc, car cette étape est effectuée automatiquement lorsque vous créez un cluster Dataproc.

  2. Sélectionnez Metrics Explorer (Explorateur de métriques), dans la liste déroulante "Find resource type and metric" (Trouver le type de ressource et la métrique), puis la ressource (ou type "cloud_dataproc_cluster" dans la zone).
  3. Cliquez à nouveau dans la zone de saisie, puis sélectionnez une métrique dans la liste déroulante. Dans la capture d'écran suivante, la métrique "YARN memory size" (Taille de mémoire YARN) est sélectionnée. Passez la souris sur le nom de la métrique pour afficher des informations la concernant.

    Vous pouvez sélectionner des filtres, regrouper des métriques par libellés, effectuer des agrégations et sélectionner les options d'affichage des graphiques (consultez la documentation Monitoring).

API

Vous pouvez utiliser l'API Monitoring timeSeries.list pour enregistrer et répertorier les métriques définies par une expression filter. Utilisez le modèle Try this API (Essayer cette API) sur la page de l'API pour envoyer une requête API et afficher la réponse.

Exemple : Voici un instantané d'une requête modélisée et la réponse JSON renvoyée pour les paramètres timeSeries.list Monitoring suivants :

  • name : projects/example-project-id
  • filter : metric.type="dataproc.googleapis.com/cluster/hdfs/storage_capacity"
  • interval.endTime : 2018-02-27T11:54:00.000-08:00
  • interval.startTime : 2018-02-20T00:00:00.000-08:00

Métriques OSS

Dataproc collecte ensuite les métriques des composants OSS du cluster Dataproc dans Monitoring. Les métriques OSS Dataproc sont collectées au format suivant:

custom.googleapis.com/OSS_COMPONENT/METRIC

Exemples de métriques OSS:

custom.googleapis.com/spark/driver/DAGScheduler/job/allJobs
custom.googleapis.com/hiveserver2/memory/MaxNonHeapMemory

Métriques OSS disponibles

Vous pouvez activer Dataproc pour collecter les métriques OSS répertoriées dans les tableaux suivants. La colonne Collecte par défaut est accompagnée de la mention "y" si Dataproc collecte la métrique par défaut lorsque vous activez la source de métrique associée. Toutes les métriques répertoriées pour une source de métrique et toutes les métriques Spark peuvent être activées pour la collecte si vous remplacez la collecte des métriques par défaut pour la source de métrique (voir Activer la collecte de métriques OSS).

Métriquesado

Métriques HDFS

Métrique Nom de l'explorateur de métriques Collecté par défaut
hdfs:NameNode:FSNamesystem:CapacityTotalGB dfs/FSNamesystem/CapacityTotalGB y
hdfs:NameNode:FSNamesystem:CapacityUsedGB dfs/FSNamesystem/CapacityUsedGB y
hdfs:NameNode:FSNamesystem:CapacityStayGB dfs/FSNamesystem/CapacityLeft y
hdfs:NameNode:FSNamesystem:FilesTotal dfs/FSNamesystem/FilesTotal y
hdfs:NameNode:FSNamesystem:MissingBlocks dfs/FSNamesystem/MissingBlocks n
hdfs:NameNode:FSNamesystem:ExpirationHeartbeats dfs/FSNamesystem/ExpirationHeartbeats n
hdfs:NameNode:FSNamesystem:TransactionsSinceLastCheckpoint dfs/FSNamesystem/TransactionsSinceLastCheckpoint n
hdfs:NameNode:FSNamesystem:TransactionsSinceLastLogRoll dfs/FSNamesystem/TransactionsSinceLastLogRoll n
hdfs:NameNode:FSNamesystem:LastWriteTransactionId dfs/FSNamesystem/LastWriteTransactionId n
hdfs:NameNode:FSNamesystem:CapacityTotal dfs/FSNamesystem/CapacityTotal n
hdfs:NameNode:FSNamesystem:CapacityUsed dfs/FSNamesystem/CapacityUsed n
hdfs:NameNode:FSNamesystem:CapacityLeft dfs/FSNamesystem/CapacityLeft n
hdfs:NameNode:FSNamesystem:CapacityUsedNonDFS dfs/FSNamesystem/CapacityUsedNonDFS n
hdfs:NameNode:FSNamesystem:TotalLoad dfs/FSNamesystem/TotalLoad n
hdfs:NameNode:FSNamesystem:SnapshottableDirectories dfs/FSNamesystem/SnapshottableDirectories n
hdfs:NameNode:FSNamesystem:Snapshots dfs/FSNamesystem/Snapshots n
hdfs:NameNode:FSNamesystem:BlocksTotal dfs/FSNamesystem/BlocksTotal n
hdfs:NameNode:FSNamesystem:PendingReplicationBlocks dfs/FSNamesystem/PendingReplicationBlocks n
hdfs:NameNode:FSNamesystem:UnderReplicatedBlocks dfs/FSNamesystem/UnderReplicatedBlocks n
hdfs:NameNode:FSNamesystem:CorruptBlocks dfs/FSNamesystem/CorruptBlocks n
hdfs:NameNode:FSNamesystem:ScheduleReplicationBlocks dfs/FSNamesystem/ScheduleReplicationBlocks n
hdfs:NameNode:FSNamesystem:PendingDeletionBlocks dfs/FSNamesystem/PendingDeletionBlocks n
hdfs:NameNode:FSNamesystem:ExcessBlocks dfs/FSNamesystem/ExcessBlocks n
hdfs:NameNode:FSNamesystem:PostponedMisReplicatedBlocks dfs/FSNamesystem/PostponedMisreplicatedBlocks n
hdfs:NameNode:FSNamesystem:PendingDataNodeMessageCourt dfs/FSNamesystem/PendingDataNodeMessageCourt n
hdfs:NameNode:FSNamesystem:MillisSinceLastLoadedEdits dfs/FSNamesystem/MillisSinceLastLoadedEdits n
hdfs:NameNode:FSNamesystem:BlockCapacity dfs/FSNamesystem/BlockCapacity n
hdfs:NameNode:FSNamesystem:StaleDataNodes dfs/FSNamesystem/StaleDataNodes n
hdfs:NameNode:FSNamesystem:TotalFiles dfs/FSNamesystem/TotalFiles n
hdfs:NameNode:JvmMetrics:MemHeapUsedM dfs/jvm/MemHeapUsedM n
hdfs:NameNode:JvmMetrics:MemHeapCommitM dfs/jvm/MemHeapCommitM n
hdfs:NameNode:JvmMetrics:MemHeapMaxM dfs/jvm/MemHeapMaxM n
hdfs:NameNode:JvmMetrics:MemMaxM dfs/jvm/MemMaxM n

Métriques YARN

Métrique Nom de l'explorateur de métriques Collecté par défaut
yarn:ResourceManager:ClusterMetrics:NumActiveNMs yarn/ClusterMetrics/NumActiveNM y
yarn:RessourceManager:ClusterMetrics:NumDe objetsNM yarn/ClusterMetrics/NumDe commissionNMs n
yarn:RessourceManager:ClusterMetrics:NumLostNMs fil/ClusterMetrics/NumLostNMs n
yarn:ResourceManager:ClusterMetrics:NumUnhealthyNMs yarn/ClusterMetrics/NumUnhealthyNM n
yarn:ResourceManager:ClusterMetrics:NumRedémarreredNMs yarn/ClusterMetrics/NumRedémarreredNM n
yarn:RessourceManager:QueueMetrics:running_0 yarn/FileMetrics/running_0 y
yarn:RessourceManager:QueueMetrics:running_60 yarn/QueueMetrics/running_60 y
yarn:RessourceManager:QueueMetrics:running_300 yarn/FileMetrics/running_300 y
yarn:RessourceManager:QueueMetrics:running_1440 yarn/FileMetrics/running_1440 y
yarn:RessourceManager:QueueMetrics:AppsSubmit yarn/QueueMetrics/AppsSubmit y
yarn:RessourceManager:QueueMetrics:Disponible yarn/QueueMetrics/AvailableMo y
yarn:RessourceManager:QueueMetrics:PendingContainers yarn/QueueMetrics/PendingContainers y
yarn:RessourceManager:QueueMetrics:AppsRunning yarn/QueueMetrics/AppsRunning n
yarn:RessourceManager:QueueMetrics:AppsPending yarn/QueueMetrics/AppsPending n
yarn:RessourceManager:QueueMetrics:AppsTerminé yarn/QueueMetrics/AppsCompleted n
yarn:RessourceManager:QueueMetrics:AppsKilled laine/QueueMetrics/AppsKilled n
yarn:RessourceManager:QueueMetrics:AppsFailed yarn/QueueMetrics/AppsFailed n
yarn:RessourceManager:QueueMetrics:AllocalizedMB yarn/QueueMetrics/AllocalizedMo n
yarn:ResourceManager:QueueMetrics:AllocalizedVCores yarn/QueueMetrics/AllocalizedVCores n
yarn:RessourceManager:QueueMetrics:AllocalizedContainers yarn/QueueMetrics/AllocalizedContainers n
yarn:RessourceManager:QueueMetrics:AggregateContainersAllocalized yarn/QueueMetrics/AggregateContainersAllocalized n
yarn:RessourceManager:QueueMetrics:AggregateContainersReleased yarn/QueueMetrics/AggregateContainersReleased n
yarn:RessourceManager:QueueMetrics:AvailableVCores yarn/QueueMetrics/AvailableVCores n
yarn:RessourceManager:QueueMetrics:En attente yarn/QueueMetrics/PendingMo n
yarn:ResourceManager:FileMetrics:En attenteVCVC yarn/QueueMetrics/PendingVCores n
yarn:RessourceManager:QueueMetrics:RéservéMo yarn/QueueMetrics/ReserveMB n
yarn:RessourceManager:QueueMetrics:ReserveVCores yarn/QueueMetrics/ReserveVCores n
yarn:RessourceManager:QueueMetrics:ReserveContainers yarn/QueueMetrics/ReserveContainers n
yarn:RessourceManager:QueueMetrics:ActiveUsers yarn/QueueMetrics/ActiveUsers n
yarn:RessourceManager:QueueMetrics:ActiveApplications yarn/QueueMetrics/ActiveApplications n
yarn:RessourceManager:QueueMetrics:FairShareMB laine/QueueMetrics/FairShareMB n
yarn:RessourceManager:QueueMetrics:FairShareVCores yarn/QueueMetrics/FairShareVCores n
yarn:RessourceManager:QueueMetrics:MinShareMB yarn/QueueMetrics/MinShareMB n
yarn:RessourceManager:QueueMetrics:MinShareVCores yarn/QueueMetrics/MinShareVCores n
yarn:RessourceManager:QueueMetrics:MaxShareMB yarn/QueueMetrics/MaxShareMB n
yarn:RessourceManager:QueueMetrics:MaxShareVCores yarn/QueueMetrics/MaxShareVCores n
yarn:ResourceManager:JvmMetrics:MemHeapUsedM yarn/jvm/MemHeapUsedM n
yarn:RessourceManager:JvmMetrics:MemHeapEngageM yarn/jvm/MemHeapCommitM n
yarn:RessourceManager:JvmMetrics:MemHeapMaxM yarn/jvm/MemHeapMaxM n
yarn:RessourceManager:JvmMetrics:MemMaxM yarn/jvm/MemMaxM n

Métriques Spark

Métriques Spark pour le conducteur

Métrique Nom de l'explorateur de métriques Collecté par défaut
spark:driver:BlockManager:disk.diskSpaceUsed_MB spark/driver/BlockManager/disk/diskSpaceUsed_Mo y
spark:driver:BlockManager:mémoire.maxMem_MB spark/driver/BlockManager/Memory/maxMem_MB y
spark:driver:BlockManager:Memory.memUsed_MB spark/driver/BlockManager/Memory/memUsed_MB y
spark:driver:DAGScheduler:job.allJobs spark/driver/DAGScheduler/job/allJobs y
spark:driver:DAGScheduler:stage.failedStages spark/driver/DAGScheduler/stage/failedStages y
spark:driver:DAGScheduler:stage.waitingStages spark/driver/DAGScheduler/stage/waitingStages y

Métriques d'exécuteur Spark

Métrique Nom de l'explorateur de métriques Collecté par défaut
spark:executor:executor:bytesRead spark/executor/bytesRead y
spark:executor:executor:bytesBytes spark/executor/bytesWrite y
spark:executor:executor:cpuTime spark/executor/cpuTime y
spark:executor:executor:diskBytesSpilled spark/executor/diskBytesSpilled y
spark:executor:executor:recordsRead spark/executor/recordsRead y
spark:executor:executor:recordsWrite spark/executor/recordsWrite y
spark:executor:executor:runTime spark/executor/runTime y
spark:executor:executor:shuffleRecordsRead spark/executor/shuffleRecordsRead y
spark:executor:executor:shuffleRecordsWrite spark/executor/shuffleRecordsWrite y

Métriques Spark de l'historique des serveurs

Dataproc collecte les métriques de mémoire JVM des services d'historique Spark suivantes:

Métrique Nom de l'explorateur de métriques Collecté par défaut
sparkHistoryServer:JVM:Memory:HeapMemoryUsage.commitmit sparkHistoryServer/Memory/CommitHeapMemory y
sparkHistoryServer:JVM:Memory:HeapMemoryUsage.used sparkHistoryServer/Memory/UsedHeapMemory y
sparkHistoryServer:JVM:Memory:HeapMemoryUsage.max sparkHistoryServer/mémoire/MaxHeapMemory y
sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.commitmit sparkHistoryServer/Memory/CommitNonHeapMemory y
sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.used sparkHistoryServer/Memory/UsedNonHeapMemory y
sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.max sparkHistoryServer/Memory/MaxNonHeapMemory y

Métriques HiveServer 2

Métrique Nom de l'explorateur de métriques Collecté par défaut
hiveserver2:JVM:Memory:HeapMemoryUsage.commitmit hiveserver2/mémoire/CommitHeapMemory y
hiveserver2:JVM:Memory:HeapMemoryUsage.used hiveserver2/mémoire/UsedHeapMemory y
hiveserver2:JVM:Memory:HeapMemoryUsage.max hiveserver2/mémoire/MaxHeapMemory y
hiveserver2:JVM:Memory:NonHeapMemoryUsage.commitmit hiveserver2/mémoire/CommitNon-HeapMemory y
hiveserver2:JVM:Memory:NonHeapMemoryUsage.used hiveserver2/Memory/UsedNonHeapMemory y
hiveserver2:JVM:Memory:NonHeapMemoryUsage.max hiveserver2/mémoire/MaxNonHeapMemory y

Métriques de l'agent Monitoring pour Dataproc

Par défaut, Dataproc collecte les métriques par défaut de l'agent de surveillance Dataproc suivantes, qui sont publiées avec le préfixe agent.googleapis.com:

Processeur
agent.googleapis.com/cpu/load_15m
agent.googleapis.com/cpu/load_1m
agent.googleapis.com/cpu/load_5m
agent.googleapis.com/cpu/usage_time
agent.googleapis.com/cpu/utilization

Disk

Échange
agent.googleapis.com/swap/bytes_used
agent.googleapis.com/swap/io
agent.googleapis.com/swap/percent_used

Mémoire
agent.googleapis.com/Memory/bytes_used
agent.googleapis.com/mémoire/percent_used

Processes (Respecte une règle de quota légèrement différente pour quelques attributs)
agent.googleapis.com/processes/count_by_state
agent.googleapis.com/processes/cpu_time
agent.googleapis.com/processes/disk/read_bytes_count
agent.googleapis.com/processes/disk/write_bytes_count
agent.googleapis.com/processes/fork_googleapis.com

Interface
agent.googleapis.com/interface/errors
agent.googleapis.com/interface/packets
agent.googleapis.com/interface/traffic

Réseau
agent.googleapis.com/network/tcp_connections

Activer la collecte de métriques OSS

Lorsque vous créez un cluster Dataproc, vous pouvez utiliser la CLI gcloud ou l'API Dataproc pour activer la collecte des métriques OSS de deux manières (vous pouvez utiliser l'une des méthodes de collecte ou les deux):

  1. Activez la collecte des métriques par défaut uniquement à partir d'une ou de plusieurs sources de métriques OSS.
  2. Activer la collecte des métriques spécifiées ("override") spécifiques à partir d'une ou de plusieurs sources de métriques OSS

Commande gcloud

Collecte des métriques par défaut

Utilisez l'option gcloud dataproc clusters create --metric-sources pour activer la collecte des métriques OSS disponibles par défaut depuis une ou plusieurs sources de métriques.

gcloud dataproc clusters create cluster-name \
    --metric-sources=METRIC_SOURCE(s) \
    ... other flags

Remarques :

  • --metric-sources : obligatoire pour activer la collecte de métriques par défaut. Spécifiez une ou plusieurs des sources de métriques suivantes: spark, hdfs, yarn, spark-history-server, hiveserver2 et monitoring-agent-defaults. Le nom de la source de la métrique n'est pas sensible à la casse (par exemple, "yarn" ou "YARN" est acceptable).

Ignorer la collecte des métriques

Vous pouvez également ajouter l'option --metric-overrides ou --metric-overrides-file pour activer la collecte d'une ou de plusieurs métriques OSS disponibles depuis une ou plusieurs sources de métriques.

  • Toutes les métriques OSS disponibles et toutes les métriques Spark peuvent être répertoriées pour être collectées en tant que remplacement de métrique. Les valeurs de remplacement de métrique sont sensibles à la casse et, le cas échéant, doivent être fournies au format CamelCase.

    Examples

    • sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed
    • hiveserver2:JVM:Memory:NonHeapMemoryUsage.used
    • yarn:ResourceManager:JvmMetrics:MemHeapMaxM
  • Seules les métriques remplacées seront collectées à partir d'une source de métrique donnée. Par exemple, si une ou plusieurs métriques spark:executive sont répertoriées en tant que remplacements de métriques, les autres métriques SPARK ne seront pas collectées. Il n'a aucune incidence sur la collecte des métriques OSS par défaut à partir d'autres sources de métriques. Par exemple, si les sources de métriques SPARK et YARN sont activées, et que les forçages sont fournis uniquement pour les métriques Spark, toutes les métriques YARN par défaut sont collectées.
  • La source de remplacement de la métrique spécifiée doit être activée. Par exemple, si une ou plusieurs métriques spark:driver sont fournies en tant que remplacements de métrique, la source de métrique spark doit être activée (--metric-sources=spark).

Remplacer la liste des métriques

gcloud dataproc clusters create cluster-name \
    --metric-sources=METRIC_SOURCE(s) \
    --metric-overrides=LIST_OF_METRIC_OVERRIDES \
    ... other flags

Remarques :

  • --metric-sources: obligatoire pour activer la collecte de métriques par défaut. Spécifiez une ou plusieurs des sources de métriques suivantes : spark, hdfs, yarn, spark-history-server, hiveserver2 et monitoring-agent-defaults. Le nom de la source de la métrique n'est pas sensible à la casse (par exemple, "yaur" ou "YARN").
  • --metric-overrides : fournissez une liste de métriques au format suivant:

    METRIC_SOURCE:INSTANCE:GROUP:METRIC

    Le cas échéant, utilisez le format "chameau".

    Exemple :--metric-overrides=sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed

  • Cette option est une alternative à l'option --metric-overrides-file et ne peut pas être utilisée avec cette option.

Remplacer le fichier de métriques

gcloud dataproc clusters create cluster-name \
    --metric-sources=METRIC-SOURCE(s) \
    --metric-overrides-file=METRIC_OVERRIDES_FILENAME \
    ... other flags

Remarques :

  • --metric-sources: obligatoire pour activer la collecte de métriques par défaut. Spécifiez une ou plusieurs des sources de métriques suivantes: spark, hdfs, yarn, spark-history-server, hiveserver2 et monitoring-agent-defaults. Le nom de la source de la métrique n'est pas sensible à la casse (par exemple, "yaur" ou "YARN").
  • --metric-overrides-file: spécifiez un fichier local ou Cloud Storage (gs://bucket/filename) contenant une ou plusieurs métriques au format suivant:

    METRIC_SOURCE:INSTANCE:GROUP:METRIC

    Le cas échéant, utilisez le format "chameau".

    Exemple : --metric-overrides=sparkHistoryServer:JVM:Memory:NonHeapMemoryUsage.committed

  • Cette option est une alternative à l'option --metric-overrides-file et ne peut pas être utilisée avec cette option.

API REST

Utilisez DataprocMetricConfig dans le cadre d'une requête clusters.create pour activer la collecte de métriques OSS.

Créer un tableau de bord Monitoring

Vous pouvez créer un tableau de bord Monitoring personnalisé pour afficher les graphiques des métriques de cluster Cloud Dataproc sélectionnées.

  1. Sélectionnez + CRÉER UN TABLEAU DE BORD sur la page Aperçu des tableaux de bord de Monitoring. Attribuez un nom au tableau de bord, puis cliquez sur Add Chart (Ajouter un graphique) dans le menu situé dans l'angle supérieur droit pour ouvrir la fenêtre correspondante. Sélectionnez le type de ressource "Cloud Dataproc Cluster" (Cluster Cloud Dataproc). Sélectionnez une ou plusieurs métriques, ainsi que des propriétés de métrique et de graphique. Ensuite, enregistrez le graphique.

  2. Vous pouvez ajouter des graphiques supplémentaires à votre tableau de bord. Une fois que vous avez enregistré le tableau de bord, son nom apparaît sur la page Aperçu des tableaux de bord de Monitoring. Les graphiques de tableau de bord peuvent être consultés, mis à jour et supprimés depuis la page d'affichage du tableau de bord.

Créer des alertes

Vous pouvez créer une alerte Monitoring qui vous avertit lorsqu'une métrique de cluster ou de tâche Dataproc dépasse un certain seuil, par exemple lorsque la capacité disponible HDFS est faible.

  1. Dans la console, ouvrez Alertes de surveillance. Cliquez sur + CRÉER UNE RÈGLE pour ouvrir le formulaire Create new alerting policy (Créer une règle d'alerte). Définissez une alerte en ajoutant des conditions d'alerte, des déclencheurs de règles, des canaux de notification et de la documentation.

  2. Cliquez sur ADD CONDITION (AJOUTER UNE CONDITION) pour ouvrir le formulaire de condition d'alerte avec l'onglet "Metric" (Métrique) sélectionné. Renseignez les champs pour définir une condition d'alerte, puis cliquez sur ADD (AJOUTER). L'exemple de condition d'alerte ci-dessous se déclenche lorsque la capacité HDFS du cluster Dataproc passe en dessous du seuil de 930 Gio (Go binaires) spécifié (998 579 896 320 octets) pendant une minute.

  3. Après avoir ajouté la condition d'alerte, complétez la règle d'alerte en définissant son nom, des canaux de notification, des déclencheurs de règles et de la documentation.

Afficher les alertes

Lorsqu'une condition de seuil de métrique déclenche une alerte, Monitoring crée un incident (et un événement correspondant). Vous pouvez afficher les incidents sur la page Surveillance des alertes de la console. Si vous avez spécifié un mécanisme de notification dans la règle d'alerte, telle qu'une notification par e-mail ou SMS, Monitoring se charge également d'envoyer une notification de l'incident.

Étape suivante