Créer des alertes de métriques Dataproc

Vous pouvez créer une alerte Monitoring qui vous avertit lorsqu'une métrique de cluster ou de tâche Dataproc dépasse un seuil spécifié.

Procédure de création d'une alerte

Pour créer une alerte, procédez comme suit :

  1. Ouvrez la page Alertes. de la console Google Cloud.

  2. Cliquez sur + Créer une règle pour ouvrir la page Créer une règle d'alerte.

    1. Cliquez sur Sélectionner une métrique. .
    2. Dans la colonne "Filtrer par nom de ressource ou de métrique", zone de saisie, saisissez "dataproc" pour répertorier les métriques Dataproc. Parcourez la hiérarchie des des métriques Cloud Dataproc pour sélectionner un cluster, un job, un lot, ou la métrique de session.
    3. Cliquez sur Appliquer.
    4. Cliquez sur Suivant pour ouvrir le volet Configurer le déclencheur d'alerte.
    5. Définissez une valeur de seuil pour déclencher l'alerte.
    6. Cliquez sur Suivant pour ouvrir le volet Configurer les notifications et finaliser l'alerte.
    7. Définissez les canaux de notification, la documentation et le nom de la règle d'alerte.
    8. Cliquez sur Suivant pour examiner la règle d'alerte.
    9. Cliquez sur Créer une règle pour créer l'alerte.

Exemples d'alertes

Cette section décrit un exemple d'alerte pour une tâche envoyée au service Dataproc et une alerte pour une tâche exécutée en tant qu'application YARN.

Alerte de tâche Dataproc de longue durée

Dataproc émet la métrique dataproc.googleapis.com/job/state, qui suit la durée de vie d'un job dans différents états. Cette métrique se trouve dans l'explorateur de métriques de la console Google Cloud, sous la ressource Tâche Cloud Dataproc (cloud_dataproc_job). Vous pouvez utiliser cette métrique pour configurer une alerte qui vous avertit lorsque le job L'état RUNNING dépasse un seuil de durée.

Configuration de l'alerte de durée des jobs

Cet exemple utilise le langage Monitoring Query Language (MQL) pour créer une règle d'alerte (voir Créer des règles d'alerte MQL (console)).

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'RUNNING'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

Dans l'exemple suivant, l'alerte se déclenche lorsqu'un job est en cours d'exécution. pendant plus de 30 minutes.

Vous pouvez modifier la requête en filtrant sur resource.job_id pour l'appliquer à une tâche spécifique :

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'RUNNING')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

Alerte d'application YARN de longue durée

L'exemple précédent montre une alerte déclenchée lorsqu'un job Dataproc s'exécute plus longtemps supérieure à une durée spécifiée, mais ne s'applique qu'aux jobs envoyés à Dataproc via la console Google Cloud ou la Google Cloud CLI, ou par le biais d'appels directs API Dataproc jobs. Vous pouvez également utiliser des métriques OSS pour configurer des alertes similaires qui surveillent la durée d'exécution des applications YARN.

Commençons par quelques informations générales. YARN émet des métriques de temps d'exécution dans plusieurs buckets. Par défaut, YARN maintient 60, 300 et 1 440 minutes comme seuils de bucket Il émet quatre métriques, running_0, running_60, running_300 et running_1440:

  • running_0 enregistre le nombre de jobs dont la durée d'exécution est comprise entre 0 et 60 minutes.

  • running_60 enregistre le nombre de jobs dont la durée d'exécution est comprise entre 60 et 300 minutes.

  • running_300 enregistre le nombre de tâches dont la durée d'exécution est comprise entre 300 et 1 440 minutes.

  • running_1440 enregistre le nombre de jobs dont le temps d'exécution est supérieur à 1 440 minutes.

Par exemple, une tâche exécutée pendant 72 minutes sera enregistrée dans running_60, mais pas dans running_0.

Vous pouvez modifier ces seuils de buckets par défaut en transmettant de nouvelles valeurs au yarn:yarn.resourcemanager.metrics.runtime.buckets propriété de cluster lors de la création d'un cluster Dataproc. Lorsque vous définissez des seuils de buckets personnalisés, vous devez également définir des forçages de métriques. Par exemple, pour spécifier des seuils de bucket 30, 60 et 90 minutes, la commande gcloud dataproc clusters create doit inclure les indicateurs suivants:

  • seuils de bucket : ‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90

  • forçages de métriques : ‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90

Exemple de commande de création de cluster

gcloud dataproc clusters create test-cluster  \
   --properties ^#^yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90  \
   --metric-sources=yarn  \
   --metric-overrides=yarn:ResourceManager:QueueMetrics:running_0,yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60,yarn:ResourceManager:QueueMetrics:running_90

Ces métriques sont listées dans l'Explorateur de métriques de la console Google Cloud sous la ressource Instance de VM (gce_instance).

<ph type="x-smartling-placeholder">
</ph>

Configuration des alertes d'application YARN

  1. Créez un cluster avec les buckets et les métriques requis activés.

  2. Créez une règle d'alerte qui se déclenche lorsque le nombre d'applications dans un bucket de métriques YARN dépassent un seuil spécifié.

    • Vous pouvez également ajouter un filtre pour générer une alerte en cas de clusters correspondant à un modèle.

    • Configurez le seuil de déclenchement de l'alerte.

Alerte de tâche Dataproc ayant échoué

Vous pouvez également utiliser la métrique dataproc.googleapis.com/job/state. (voir Alerte de job Dataproc de longue durée). pour vous alerter en cas d'échec d'un job Dataproc.

Échec de la configuration des alertes d'emploi

Cet exemple utilise le langage Monitoring Query Language (MQL) pour créer une règle d'alerte (voir Créer des règles d'alerte MQL (console)).

MQL d'alerte
fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter metric.state == 'ERROR'
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()
Configuration du déclencheur d'alerte

Dans l'exemple suivant, l'alerte se déclenche en cas d'échec d'une tâche Dataproc dans votre projet.

Vous pouvez modifier la requête en filtrant sur resource.job_id pour l'appliquer à une tâche spécifique :

fetch cloud_dataproc_job
| metric 'dataproc.googleapis.com/job/state'
| filter (resource.job_id == '1234567890') && (metric.state == 'ERROR')
| group_by [resource.job_id, metric.state], 1m
| condition val() == true()

Alerte de déviation de la capacité du cluster

Dataproc émet la métrique dataproc.googleapis.com/cluster/capacity_deviation, qui indique la différence entre le nombre de nœuds prévu dans le cluster et le nombre de nœuds YARN actifs. Vous trouverez cette métrique dans l'explorateur de métriques de la console Google Cloud, sous la ressource Cluster Cloud Dataproc. Vous pouvez utiliser cette métrique pour créer une alerte qui vous avertit lorsque la capacité du cluster diffère de la capacité attendue pendant plus d'une durée de seuil spécifiée.

Les opérations suivantes peuvent entraîner une sous-déclaration temporaire des nœuds de cluster dans la métrique capacity_deviation. Pour éviter les alertes de faux positifs, définissez le seuil d'alerte de métrique pour tenir compte de ces opérations:

  • Création et mise à jour du cluster:la métrique capacity_deviation n'est pas émises lors des opérations de création ou de mise à jour du cluster.

  • Actions d'initialisation de cluster : les actions d'initialisation sont effectuées après le provisionnement d'un nœud.

  • Mises à jour des nœuds de calcul secondaires:les nœuds de calcul secondaires sont ajoutés de manière asynchrone. une fois l'opération de mise à jour terminée.

Configuration d'une alerte de dérive de la capacité

Cet exemple utilise le langage MQL (Monitoring Query Language) pour créer une règle d'alerte.

fetch cloud_dataproc_cluster
| metric 'dataproc.googleapis.com/cluster/capacity_deviation'
| every 1m
| condition val() <> 0 '1'

Dans l'exemple suivant, l'alerte se déclenche lorsque l'écart de capacité du cluster est différent de zéro pendant plus de 30 minutes.

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 à partir de la page Alertes Monitoring dans la console Google Cloud.

Si vous avez défini un mécanisme de notification dans la règle d'alerte, telle qu'une notification par e-mail ou SMS, Monitoring envoie une notification de l'incident.

Étape suivante