Vous pouvez créer une alerte Monitoring qui vous avertit lorsqu'une métrique de cluster ou de job Managed Service pour Apache Spark dépasse un seuil spécifié.
Créer une alerte
Ouvrez la page Alertes dans la console Google Cloud .
Cliquez sur + Créer une règle pour ouvrir la page Créer une règle d'alerte.
- Cliquez sur Sélectionner une métrique.
- Dans le champ de saisie "Filtrer par nom de ressource ou de métrique", saisissez "dataproc" pour lister les métriques Managed Service pour Apache Spark. Parcourez la hiérarchie des métriques Cloud Managed Service pour Apache Spark pour sélectionner une métrique de cluster, de job, de lot ou de session.
- Cliquez sur Appliquer.
- Cliquez sur Suivant pour ouvrir le volet Configurer le déclencheur d'alerte.
- Définissez une valeur de seuil pour déclencher l'alerte.
- Cliquez sur Suivant pour ouvrir le volet Configurer les notifications et finaliser l'alerte.
- Définissez les canaux de notification, la documentation et le nom de la règle d'alerte.
- Cliquez sur Suivant pour examiner la règle d'alerte.
- Cliquez sur Créer une règle pour créer l'alerte.
Exemples d'alertes
Cette section décrit un exemple d'alerte pour un job envoyé à Managed Service pour Apache Spark et une alerte pour un job exécuté en tant qu'application YARN.
Alerte de job Managed Service pour Apache Spark de longue durée
Managed Service pour Apache Spark émet la métrique dataproc.googleapis.com/job/state, qui suit la durée pendant laquelle un job est resté dans différents états. Cette métrique se trouve dans l'explorateur de métriques de la console Google Cloud , sous la ressource Job Cloud Managed Service pour Apache Spark (cloud_dataproc_job).
Vous pouvez utiliser cette métrique pour configurer une alerte qui vous avertit lorsque l'état du job RUNNING dépasse un seuil de durée (seuil maximal : 7 jours).
Pour configurer une alerte pour un job qui devrait s'exécuter pendant plus de sept jours, consultez Alerte d'application YARN de longue durée.

Configuration de l'alerte de durée de job
Cet exemple utilise le langage de requête Prometheus (PromQL) pour créer une règle d'alerte. Pour en savoir plus, consultez Créer des règles d'alerte basées sur PromQL (console).
sum by (job_id, state) ({
"__name__"="dataproc.googleapis.com/job/state",
"monitored_resource"="cloud_dataproc_job",
"state"="RUNNING"
}) != 0
Pour déclencher cette alerte lorsqu'un job est en cours d'exécution depuis plus de 30 minutes, dans l'onglet Configurer le déclencheur, définissez l'intervalle d'évaluation sur 30 minutes.
Vous pouvez modifier la requête en filtrant sur job_id pour l'appliquer à un job spécifique :
sum by (job_id) ({
"__name__"="dataproc.googleapis.com/job/state",
"monitored_resource"="cloud_dataproc_job",
"state"="RUNNING",
"job_id"="1234567890"
}) != 0
Alerte d'application YARN de longue durée
L'exemple précédent montre une alerte qui se déclenche lorsqu'un job Managed Service pour Apache Spark s'exécute plus longtemps qu'une durée spécifiée, mais elle ne s'applique qu'aux jobs envoyés au service Managed Service pour Apache Spark à l'aide de la console Google Cloud , de Google Cloud CLI ou d'appels directs à l'API Managed Service pour Apache Spark 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.
Tout d'abord, un peu de contexte. YARN émet des métriques de temps d'exécution dans plusieurs buckets.
Par défaut, YARN conserve 60, 300 et 1 440 minutes comme seuils de bucket et émet quatre métriques : running_0, running_60, running_300 et running_1440 :
running_0enregistre le nombre de jobs dont la durée d'exécution est comprise entre 0 et 60 minutes.running_60enregistre le nombre de jobs dont la durée d'exécution est comprise entre 60 et 300 minutes.running_300enregistre le nombre de jobs dont la durée d'exécution est comprise entre 300 et 1 440 minutes.running_1440enregistre le nombre de jobs dont l'environnement d'exécution est supérieur à 1 440 minutes.
Par exemple, un job qui s'exécute pendant 72 minutes sera enregistré dans running_60, mais pas dans running_0.
Vous pouvez modifier ces seuils de bucket par défaut en transmettant de nouvelles valeurs à la propriété de cluster yarn:yarn.resourcemanager.metrics.runtime.buckets lors de la création du cluster Managed Service pour Apache Spark. Lorsque vous définissez des seuils de bucket personnalisés, vous devez également définir des remplacements de métriques. Par exemple, pour spécifier des seuils de bucket de 30, 60 et 90 minutes, la commande gcloud dataproc clusters create doit inclure les options suivantes :
seuils de bucket :
‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90Remplacements 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).

Configuration des alertes d'application YARN
Créez un cluster avec les buckets et les métriques requis activés.
Créez une règle d'alerte qui se déclenche lorsque le nombre d'applications dans un bucket de métriques YARN dépasse un seuil spécifié.
Vous pouvez éventuellement ajouter un filtre pour déclencher une alerte sur les clusters qui correspondent à un modèle.

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

Alerte d'échec d'un job Managed Service pour Apache Spark
Vous pouvez également utiliser la métrique dataproc.googleapis.com/job/state (voir Alerte de job Managed Service pour Apache Spark de longue durée) pour être alerté en cas d'échec d'un job Managed Service pour Apache Spark.
Échec de la configuration de l'alerte d'emploi
Cet exemple utilise le langage de requête Prometheus (PromQL) pour créer une règle d'alerte. Pour en savoir plus, consultez Créer des règles d'alerte basées sur PromQL (console).
Alerte PromQL
sum by (job_id, state) ({
"__name__"="dataproc.googleapis.com/job/state",
"monitored_resource"="cloud_dataproc_job",
"state"="ERROR"
}) != 0
Configuration du déclencheur d'alerte
Dans l'exemple suivant, l'alerte se déclenche lorsqu'un job Managed Service pour Apache Spark échoue dans votre projet.

Vous pouvez modifier la requête en filtrant sur job_id pour l'appliquer à un job spécifique :
sum by (job_id) ({
"__name__"="dataproc.googleapis.com/job/state",
"monitored_resource"="cloud_dataproc_job",
"state"="ERROR",
"job_id"="1234567890"
}) != 0
Alerte d'écart de capacité du cluster
Managed Service pour Apache Spark émet la métrique dataproc.googleapis.com/cluster/capacity_deviation, qui indique la différence entre le nombre de nœuds attendu dans le cluster et le nombre de nœuds YARN actifs. Vous trouverez cette métrique dans l'explorateur de métriques de la consoleGoogle Cloud , sous la ressource Cloud Managed Service pour Apache Spark Cluster. Vous pouvez utiliser cette métrique pour créer une alerte qui vous avertit lorsque la capacité du cluster s'écarte de la capacité attendue pendant une durée supérieure à un seuil spécifié.

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 de manière à prendre en compte ces opérations :
Création et mises à jour de clusters : la métrique
capacity_deviationn'est pas émise lors des opérations de création ou de mise à jour de clusters.Actions d'initialisation du 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 de l'alerte d'écart de capacité
Cet exemple utilise le langage de requête Prometheus (PromQL) pour créer une règle d'alerte. Pour en savoir plus, consultez Créer des règles d'alerte basées sur PromQL (console).
{
"__name__"="dataproc.googleapis.com/cluster/capacity_deviation",
"monitored_resource"="cloud_dataproc_cluster"
} != 0
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 sur la page Alertes Monitoring de la console Google Cloud .
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 d'envoyer une notification de l'incident.

Étapes suivantes
- Consultez la Présentation des alertes.