

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Surveillance de l'EMR sans serveur
<a name="metrics"></a>

Cette section décrit les méthodes de surveillance de vos applications et tâches Amazon EMR Serverless.

**Topics**
+ [Surveillance des applications et des tâches EMR sans serveur](app-job-metrics.md)
+ [Surveillez les métriques de Spark avec Amazon Managed Service pour Prometheus](monitor-with-prometheus.md)
+ [Mesures d'utilisation EMR sans serveur](monitoring-usage.md)

# Surveillance des applications et des tâches EMR sans serveur
<a name="app-job-metrics"></a>

Avec Amazon CloudWatch Metrics for EMR Serverless, vous pouvez recevoir des CloudWatch métriques en une minute et accéder à des CloudWatch tableaux de bord pour accéder aux near-real-time opérations et aux performances de vos applications EMR Serverless.

EMR Serverless envoie des métriques à chaque minute. CloudWatch EMR Serverless émet ces métriques au niveau de l'application ainsi qu'au niveau de la tâche, du type de travailleur et au niveau de l'application. capacity-allocation-type

Pour commencer, utilisez le modèle de tableau de CloudWatch bord EMR Serverless fourni dans le référentiel [EMR GitHub Serverless](https://github.com/aws-samples/emr-serverless-samples/tree/main/cloudformation/emr-serverless-cloudwatch-dashboard/) et déployez-le.

**Note**  
Les [charges de travail interactives EMR sans serveur](interactive-workloads.md) sont uniquement activées pour la surveillance au niveau de l'application et ont une nouvelle dimension de type de travailleur. `Spark_Kernel` Pour surveiller et déboguer vos charges de travail interactives, accédez aux journaux et à l'interface utilisateur d'Apache Spark depuis votre [espace de travail EMR Studio.](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-debug.html#emr-studio-debug-serverless)

## Surveillance des métriques
<a name="app-job-metrics-versions"></a>

**Important**  
Nous restructurons notre affichage des métriques pour ajouter `ApplicationName` et `JobName` en tant que dimensions. Pour les versions 7.10 et ultérieures, les anciennes métriques ne seront plus mises à jour. Pour les versions EMR inférieures à 7.10, les anciennes métriques sont toujours disponibles.

**Dimensions actuelles**

Le tableau ci-dessous décrit les dimensions EMR Serverless disponibles dans l'espace de noms. `AWS/EMR Serverless`


**Dimensions des métriques EMR sans serveur**  

| Dimension | Description | 
| --- | --- | 
| ApplicationId | Filtre toutes les métriques d'une application EMR sans serveur à l'aide de l'ID de l'application. | 
| ApplicationName | Filtre toutes les métriques d'une application EMR sans serveur utilisant le nom. Si le nom n'est pas fourni ou contient des caractères non ASCII, il est publié sous le nom **[**Non spécifié]. | 
| JobId | Filtre toutes les métriques d'un EMR Serverless, l'ID d'exécution de la tâche. | 
| JobName | Filtres pour toutes les métriques d'une tâche EMR sans serveur exécutée en utilisant le nom. Si le nom n'est pas fourni ou contient des caractères non ASCII, il est publié sous le nom **[**Non spécifié]. | 
| WorkerType | Filtres pour tous les indicateurs d'un type de travailleur donné. Par exemple, vous pouvez filtrer pour `SPARK_DRIVER` et `SPARK_EXECUTORS` pour les tâches Spark. | 
| CapacityAllocationType | Filtres pour tous les indicateurs d'un type d'allocation de capacité donné. Par exemple, vous pouvez filtrer `PreInitCapacity` pour la capacité pré-initialisée et `OnDemandCapacity` pour tout le reste. | 

## Surveillance au niveau de l'application
<a name="app-level-metrics"></a>

Vous pouvez surveiller l'utilisation de la capacité au niveau de l'application EMR Serverless à l'aide des métriques Amazon. CloudWatch Vous pouvez également configurer un écran unique pour surveiller l'utilisation de la capacité des applications dans un CloudWatch tableau de bord.


**Mesures relatives aux applications EMR sans serveur**  

| Métrique | Description | Unit | Dimension | 
| --- | --- | --- | --- | 
| MaxCPUAllowed |  Processeur maximal autorisé pour l'application.  | vCPU | ApplicationId, ApplicationName | 
| MaxMemoryAllowed |  Mémoire maximale autorisée pour l'application, exprimée en Go.  | Gigaoctets (Go) | ApplicationId, ApplicationName | 
| MaxStorageAllowed |  Stockage maximal en Go autorisé pour l'application.  | Gigaoctets (Go) | ApplicationId, ApplicationName | 
| CPUAllocated |  Le nombre total de v CPUs alloués.  | vCPU | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| IdleWorkerCount |  Nombre total de travailleurs inactifs.  | Nombre | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| MemoryAllocated |  Mémoire totale allouée en Go.  | Gigaoctets (Go) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| PendingCreationWorkerCount |  Nombre total de travailleurs en attente de création.  | Nombre | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| RunningWorkerCount |  Nombre total de travailleurs utilisés par l'application.  | Nombre | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| StorageAllocated |  Stockage sur disque total en Go alloué.  | Gigaoctets (Go) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| TotalWorkerCount |  Le nombre total de travailleurs disponibles.  | Nombre | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 

## Surveillance au niveau des tâches
<a name="job-level-metrics"></a>

Amazon EMR Serverless envoie les métriques suivantes au niveau des tâches toutes les minutes. Amazon CloudWatch Vous pouvez accéder aux valeurs métriques pour les exécutions de tâches agrégées par état d'exécution des tâches. L'unité de chacune des métriques est le *nombre*.


**Mesures EMR Serverless au niveau des tâches**  

| Métrique | Description | Dimension | 
| --- | --- | --- | 
| SubmittedJobs | Le nombre de tâches dans un état Soumis. | ApplicationId, ApplicationName | 
| PendingJobs | Le nombre de tâches en attente. | ApplicationId, ApplicationName | 
| ScheduledJobs | Le nombre de tâches dans un état planifié. | ApplicationId, ApplicationName | 
| RunningJobs | Nombre de tâches en cours d'exécution. | ApplicationId, ApplicationName | 
| SuccessJobs | Le nombre d'emplois dont l'état est « Success ». | ApplicationId, ApplicationName | 
| FailedJobs | Le nombre de tâches en état d'échec. | ApplicationId, ApplicationName | 
| CancellingJobs | Le nombre d'emplois dans un État annulable. | ApplicationId, ApplicationName | 
| CancelledJobs | Nombre de tâches annulées. | ApplicationId, ApplicationName | 

Vous pouvez surveiller les métriques spécifiques au moteur pour les tâches EMR sans serveur exécutées et terminées avec une application spécifique au moteur. UIs Lorsque vous accédez à l'interface utilisateur pour une tâche en cours d'exécution, l'interface utilisateur de l'application en direct s'affiche avec des mises à jour en temps réel. Lorsque vous accédez à l'interface utilisateur pour une tâche terminée, l'interface utilisateur permanente de l'application s'affiche.

**Exécution de tâches**

Pour vos tâches EMR sans serveur en cours d'exécution, accédez à une interface en temps réel qui fournit des métriques spécifiques au moteur. Vous pouvez utiliser l'interface utilisateur Apache Spark ou l'interface utilisateur Hive Tez pour surveiller et déboguer vos tâches. Pour y accéder UIs, utilisez la console EMR Studio ou demandez un point de terminaison URL sécurisé avec le. AWS Command Line Interface

**Tâches terminées**

Pour les tâches EMR sans serveur terminées, utilisez le serveur d'historique Spark ou l'interface utilisateur de Persistent Hive Tez pour accéder aux détails des tâches, aux étapes, aux tâches et aux indicateurs relatifs à l'exécution des tâches Spark ou Hive. Pour y accéder UIs, utilisez la console EMR Studio ou demandez un point de terminaison URL sécurisé avec le. AWS Command Line Interface

## Surveillance au niveau du Job Worker
<a name="job-worker-level-metrics"></a>

Amazon EMR Serverless envoie à Amazon les métriques suivantes au niveau du travailleur, disponibles dans l'espace de `AWS/EMRServerless` noms et le `Job Worker Metrics` groupe de métriques. CloudWatch EMR Serverless collecte des points de données auprès de travailleurs individuels lors de l'exécution des tâches au niveau de la tâche, du type de travailleur et du niveau. capacity-allocation-type Vous pouvez l'utiliser `ApplicationId` comme dimension pour surveiller plusieurs tâches appartenant à la même application.

**Note**  
Pour afficher le total du processeur et de la mémoire utilisés par une tâche EMR sans serveur lorsque vous consultez les métriques dans la CloudWatch console Amazon, utilisez la statistique sous forme de somme et la période comme 1 minute.


**Mesures EMR Serverless au niveau des travailleurs**  

| Métrique | Description | Unit | Dimension | 
| --- | --- | --- | --- | 
| WorkerCpuAllocated | Nombre total de cœurs de vCPU alloués aux travailleurs dans le cadre d'une exécution de tâche. | vCPU | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 
| WorkerCpuUsed | Nombre total de cœurs de vCPU utilisés par les travailleurs dans le cadre d'une exécution de tâche. | vCPU | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 
| WorkerMemoryAllocated | Mémoire totale en Go allouée aux travailleurs dans le cadre d'une exécution de tâche. | Gigaoctets (Go) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 
| WorkerMemoryUsed | Mémoire totale en Go utilisée par les travailleurs lors de l'exécution d'une tâche. | Gigaoctets (Go) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 
| WorkerEphemeralStorageAllocated | Nombre d'octets de stockage éphémère alloués aux travailleurs dans le cadre d'une exécution de tâche. | Gigaoctets (Go) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 
| WorkerEphemeralStorageUsed | Nombre d'octets de stockage éphémère utilisés par les travailleurs dans le cadre d'une exécution de tâche. | Gigaoctets (Go) | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 
| WorkerStorageReadBytes | Nombre d'octets lus depuis le stockage par les travailleurs lors d'une exécution de tâche. | Octets | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 
| WorkerStorageWriteBytes | Nombre d'octets écrits dans le stockage par les travailleurs lors d'une exécution de tâche. | Octets | JobId, JobName, ApplicationId, ApplicationName, WorkerType, et CapacityAllocationType | 

Les étapes ci-dessous décrivent comment accéder aux différents types de métriques.

------
#### [ Console ]

**Pour accéder à l'interface utilisateur de votre application via la console**

1. Accédez à votre application EMR Serverless dans le studio EMR en suivant les instructions de la section [Mise](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html#gs-console) en route depuis la console. 

1. Pour accéder à une application UIs et à des journaux spécifiques au moteur pour une tâche en cours d'exécution : 

   1. Choisissez un poste doté d'un `RUNNING` statut.

   1. Sélectionnez le poste sur la page **Détails de la candidature** ou accédez à la page des **détails du poste** correspondant à votre poste.

   1. Dans le menu déroulant **Display UI**, choisissez **Spark UI ou **Hive Tez UI**** pour accéder à l'interface utilisateur de l'application correspondant à votre type de tâche. 

   1. Pour accéder aux journaux du moteur Spark, accédez à l'onglet **Executors** de l'interface utilisateur Spark, puis cliquez sur le lien **Logs** pour le pilote. Pour accéder aux journaux du moteur Hive, cliquez sur le lien **Logs** du DAG approprié dans l'interface utilisateur Hive Tez.

1. Pour accéder à une application UIs et à des journaux spécifiques au moteur pour une tâche terminée, procédez comme suit : 

   1. Choisissez un poste doté d'un `SUCCESS` statut.

   1. Sélectionnez le poste sur la page des **détails de candidature** de votre candidature ou accédez à la page des **détails du poste**.

   1. Dans le menu déroulant de l'**interface utilisateur d'affichage**, choisissez **Spark History Server** ou **Persistent Hive Tez UI pour** accéder à l'interface utilisateur de l'application correspondant à votre type de tâche. 

   1. Pour accéder aux journaux du moteur Spark, accédez à l'onglet **Executors** de l'interface utilisateur Spark, puis cliquez sur le lien **Logs** pour le pilote. Pour accéder aux journaux du moteur Hive, cliquez sur le lien **Logs** du DAG approprié dans l'interface utilisateur Hive Tez.

------
#### [ AWS CLI ]

**Pour accéder à l'interface utilisateur de votre application à l'aide du AWS CLI**
+ Pour générer une URL permettant d'accéder à l'interface utilisateur de votre application pour les tâches en cours et terminées, appelez l'`GetDashboardForJobRun`API. 

  ```
  aws emr-serverless get-dashboard-for-job-run /
  --application-id <application-id> /
  --job-run-id <job-id>
  ```

  L'URL que vous générez est valide pendant une heure.

------

# Surveillez les métriques de Spark avec Amazon Managed Service pour Prometheus
<a name="monitor-with-prometheus"></a>

Avec les versions 7.1.0 et supérieures d'Amazon EMR, vous pouvez intégrer EMR Serverless à Amazon Managed Service for Prometheus afin de collecter des métriques Apache Spark pour les tâches et applications EMR Serverless. Cette intégration est disponible lorsque vous soumettez une tâche ou créez une application à l'aide de la AWS console, de l'API EMR Serverless ou du. AWS CLI

## Conditions préalables
<a name="monitoring-with-prometheus-prereqs"></a>

Avant de pouvoir transmettre vos métriques Spark à Amazon Managed Service for Prometheus, vous devez remplir les conditions préalables suivantes.
+ [Créez un espace de travail Amazon Managed Service pour Prometheus.](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) Cet espace de travail sert de point de terminaison pour l'ingestion. Prenez note de l'URL affichée pour **Endpoint - URL d'écriture à distance**. Vous devrez spécifier l'URL lorsque vous créerez votre application EMR Serverless.
+ Pour autoriser l'accès à vos tâches à Amazon Managed Service for Prometheus à des fins de surveillance, ajoutez la politique suivante à votre rôle d'exécution des tâches.

  ```
  {
      "Sid": "AccessToPrometheus",
      "Effect": "Allow",
      "Action": ["aps:RemoteWrite"],
      "Resource": "arn:aws:aps:<AWS_REGION>:<AWS_ACCOUNT_ID>:workspace/<WORKSPACE_ID>"
  }
  ```

## Configuration
<a name="monitoring-with-prometheus-setup"></a>

**Pour utiliser la AWS console afin de créer une application intégrée à Amazon Managed Service for Prometheus**

1. Consultez [Getting started with Amazon EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html                             ) pour créer une application.

1. Lorsque vous créez une application, choisissez **Utiliser les paramètres personnalisés**, puis configurez votre application en spécifiant les informations dans les champs que vous souhaitez configurer.

1. Sous **Journaux et métriques des applications**, choisissez **Deliver les métriques du moteur à Amazon Managed Service for Prometheus**, puis spécifiez votre URL d'écriture à distance.

1. Spécifiez les autres paramètres de configuration souhaités, puis choisissez **Create and start application**.

**Utilisez l'API AWS CLI ou EMR Serverless**

Vous pouvez également utiliser l'API AWS CLI EMR Serverless pour intégrer votre application EMR Serverless à Amazon Managed Service for Prometheus lorsque vous exécutez les commandes ou. `create-application` `start-job-run`

------
#### [ create-application ]

```
aws emr-serverless create-application \
--release-label emr-7.1.0 \
--type "SPARK" \
--monitoring-configuration '{ 
    "prometheusMonitoringConfiguration": {
        "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write"
    }
}'
```

------
#### [ start-job-run ]

```
aws emr-serverless start-job-run \
--application-id <APPPLICATION_ID> \
--execution-role-arn <JOB_EXECUTION_ROLE> \
--job-driver '{
    "sparkSubmit": {
        "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py",
        "entryPointArguments": ["10000"],
        "sparkSubmitParameters": "--conf spark.dynamicAllocation.maxExecutors=10"
    }
}' \
--configuration-overrides '{
     "monitoringConfiguration": {
        "prometheusMonitoringConfiguration": {
            "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write"
        }
    }
}'
```

------

L'inclusion `prometheusMonitoringConfiguration` dans votre commande indique qu'EMR Serverless doit exécuter la tâche Spark avec un agent qui collecte les métriques Spark et les écrit sur votre point de terminaison `remoteWriteUrl` pour Amazon Managed Service for Prometheus. Vous pouvez ensuite utiliser les métriques Spark dans Amazon Managed Service for Prometheus pour la visualisation, les alertes et les analyses.

## Propriétés de configuration avancées
<a name="monitoring-with-prometheus-config-options"></a>

EMR Serverless utilise un composant de Spark nommé `PrometheusServlet` pour collecter les métriques Spark et traduire les données de performance en données compatibles avec Amazon Managed Service for Prometheus. Par défaut, EMR Serverless définit les valeurs par défaut dans Spark et analyse les métriques du pilote et de l'exécuteur lorsque vous soumettez une tâche à l'aide de. `PrometheusMonitoringConfiguration` 

Le tableau suivant décrit toutes les propriétés configurées lors de la soumission d'une tâche Spark qui envoie des métriques à Amazon Managed Service for Prometheus.


| Propriété Spark | Valeur par défaut | Description | 
| --- | --- | --- | 
| spark.metrics.conf.\$1.sink.prometheusServlet.class | org.apache.spark.metrics.sink. PrometheusServlet | Classe utilisée par Spark pour envoyer des métriques à Amazon Managed Service for Prometheus. Pour modifier le comportement par défaut, spécifiez votre propre classe personnalisée. | 
| spark.metrics.conf.\$1.source.jvm.class | org.apache.spark.metrics.source. JvmSource | La classe utilisée par Spark pour collecter et envoyer des métriques cruciales à partir de la machine virtuelle Java sous-jacente. Pour arrêter de collecter des métriques JVM, désactivez cette propriété en lui attribuant une chaîne vide, telle que`""`. Pour modifier le comportement par défaut, spécifiez votre propre classe personnalisée.  | 
| spark.metrics.conf.driver.sink.prometheusServlet.path | /métriques/prométhée | URL distincte utilisée par Amazon Managed Service for Prometheus pour collecter les statistiques du pilote. Pour modifier le comportement par défaut, spécifiez votre propre chemin. Pour arrêter de collecter les métriques relatives aux conducteurs, désactivez cette propriété en lui attribuant une chaîne vide, telle que`""`. | 
| spark.metrics.conf.executor.sink.prometheusServlet.path | /metrics/executor/prometheus | URL distincte utilisée par Amazon Managed Service for Prometheus pour collecter des métriques auprès de l'exécuteur. Pour modifier le comportement par défaut, spécifiez votre propre chemin. Pour arrêter de collecter les métriques de l'exécuteur, désactivez cette propriété en lui attribuant une chaîne vide, telle que`""`. | 

Pour plus d'informations sur les métriques Spark, reportez-vous aux [métriques Apache Spark](https://spark.apache.org/docs/3.5.0/monitoring.html#metrics).

## Considérations et restrictions
<a name="monitoring-with-prometheus-limitations"></a>

Lorsque vous utilisez Amazon Managed Service for Prometheus pour collecter des métriques à partir d'EMR Serverless, tenez compte des considérations et limites suivantes.
+ Support pour l'utilisation d'Amazon Managed Service for Prometheus avec EMR Serverless uniquement dans les pays où [Amazon Managed Service for Régions AWS Prometheus](https://docs.aws.amazon.com/general/latest/gr/prometheus-service.html) est généralement disponible.
+ L'exécution de l'agent pour collecter les métriques Spark sur Amazon Managed Service for Prometheus nécessite davantage de ressources de la part des employés. Si vous choisissez une taille de travail plus petite, telle qu'un travailleur vCPU, la durée d'exécution de votre tâche peut augmenter.
+ Support pour l'utilisation d'Amazon Managed Service for Prometheus avec EMR Serverless uniquement pour les versions 7.1.0 et supérieures d'Amazon EMR.
+ Amazon Managed Service for Prometheus doit être déployé sur le même compte sur lequel vous exécutez EMR Serverless pour collecter des métriques.

# Mesures d'utilisation EMR sans serveur
<a name="monitoring-usage"></a>

Vous pouvez utiliser les statistiques CloudWatch d'utilisation d'Amazon pour avoir une visibilité sur les ressources utilisées par votre compte. Utilisez ces indicateurs pour visualiser l'utilisation de vos services sur CloudWatch des graphiques et des tableaux de bord.

Les métriques d'utilisation EMR Serverless correspondent aux Service Quotas. Vous pouvez configurer des alarmes qui vous alertent lorsque votre utilisation approche d’un quota de service. Pour plus d'informations, reportez-vous aux rubriques [Service Quotas et Amazon CloudWatch alarmes](https://docs.aws.amazon.com/servicequotas/latest/userguide/configure-cloudwatch.html) du *Guide de l'utilisateur de Service Quotas*.

Pour plus d'informations sur les quotas de service EMR sans serveur, reportez-vous à. [Points de terminaison et quotas pour EMR Serverless](endpoints-quotas.md)

## Mesures d'utilisation des quotas de service pour EMR Serverless
<a name="usage-metrics"></a>

EMR Serverless publie les mesures d'utilisation des quotas de service suivantes dans l'espace de noms. `AWS/Usage`


****  

| Métrique | Description | 
| --- | --- | 
| `ResourceCount`  | Le nombre total de ressources spécifiées en cours d'exécution sur votre compte. La ressource est définie par les [dimensions](#usage-metrics-dimensions) associées à la métrique. | 

## Dimensions des métriques d'utilisation des quotas de service EMR Serverless
<a name="usage-metrics-dimensions"></a>

Vous pouvez utiliser les dimensions suivantes pour affiner les métriques d'utilisation publiées par EMR Serverless.


****  

| Dimension | Value | Description | 
| --- | --- | --- | 
|  `Service`  |  EMR sans serveur  | Le nom de la ressource Service AWS qui contient la ressource. | 
|  `Type`  |  Ressource  | Type d'entité signalée par EMR Serverless. | 
|  `Resource`  |  vCPU  | Type de ressource suivie par EMR Serverless. | 
|  `Class`  |  Aucune  | Classe de ressource suivie par EMR Serverless. | 