

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Monitoraggio EMR Serverless
<a name="metrics"></a>

Questa sezione illustra i modi per monitorare le applicazioni e i lavori Serverless di Amazon EMR.

**Topics**
+ [Monitoraggio delle applicazioni e dei lavori EMR Serverless](app-job-metrics.md)
+ [Monitora i parametri di Spark con Amazon Managed Service for Prometheus](monitor-with-prometheus.md)
+ [Metriche di utilizzo EMR Serverless](monitoring-usage.md)

# Monitoraggio delle applicazioni e dei lavori EMR Serverless
<a name="app-job-metrics"></a>

Con Amazon CloudWatch Metrics for EMR Serverless, puoi ricevere parametri di CloudWatch 1 minuto e accedere a dashboard per CloudWatch accedere alle near-real-time operazioni e alle prestazioni delle tue applicazioni EMR Serverless.

EMR Serverless invia metriche a ogni minuto. CloudWatch EMR Serverless emette queste metriche a livello di applicazione, nonché di mansione, tipo di lavoratore e livelli. capacity-allocation-type

Per iniziare, utilizza il modello di CloudWatch dashboard EMR Serverless fornito nell'archivio [EMR GitHub Serverless](https://github.com/aws-samples/emr-serverless-samples/tree/main/cloudformation/emr-serverless-cloudwatch-dashboard/) e distribuiscilo.

**Nota**  
I [carichi di lavoro interattivi EMR Serverless](interactive-workloads.md) hanno solo il monitoraggio a livello di applicazione abilitato e hanno una nuova dimensione di tipo di lavoratore,. `Spark_Kernel` [Per monitorare ed eseguire il debug dei carichi di lavoro interattivi, accedi ai log e all'interfaccia utente di Apache Spark dall'area di lavoro di EMR Studio.](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-debug.html#emr-studio-debug-serverless)

## Monitoraggio delle metriche
<a name="app-job-metrics-versions"></a>

**Importante**  
Stiamo ristrutturando la visualizzazione delle nostre metriche per aggiungere `ApplicationName` e `JobName` come dimensioni. Per la versione 7.10 e successive, le metriche precedenti non verranno più aggiornate. Per le versioni EMR precedenti alla 7.10, le metriche precedenti sono ancora disponibili.

**Dimensioni attuali**

La tabella seguente descrive le dimensioni EMR Serverless disponibili all'interno dello spazio dei nomi. `AWS/EMR Serverless`


**Dimensioni per le metriche EMR Serverless**  

| Dimensione | Description | 
| --- | --- | 
| ApplicationId | Filtri per tutte le metriche di un'applicazione EMR Serverless utilizzando l'ID dell'applicazione. | 
| ApplicationName | Filtri per tutte le metriche di un'applicazione EMR Serverless utilizzando il nome. **Se il nome non viene fornito o contiene caratteri non ASCII, viene pubblicato come [Non specificato].** | 
| JobId | Filtri per tutte le metriche di un server EMR senza l'ID di esecuzione del lavoro. | 
| JobName | Filtri per tutte le metriche di un job EMR Serverless eseguito utilizzando il nome. **Se il nome non viene fornito o contiene caratteri non ASCII, viene pubblicato come [Non specificato].** | 
| WorkerType | Filtri per tutte le metriche di un determinato tipo di lavoratore. Ad esempio, puoi filtrare per `SPARK_DRIVER` e `SPARK_EXECUTORS` per i job Spark. | 
| CapacityAllocationType | Filtri per tutte le metriche di un determinato tipo di allocazione della capacità. Ad esempio, puoi filtrare per la capacità preinizializzata e `PreInitCapacity` `OnDemandCapacity` per tutto il resto. | 

## Monitoraggio a livello di applicazione
<a name="app-level-metrics"></a>

Puoi monitorare l'utilizzo della capacità a livello di applicazione EMR Serverless con i parametri di Amazon. CloudWatch Puoi anche configurare un singolo display per monitorare l'utilizzo della capacità delle applicazioni in una dashboard. CloudWatch 


**Metriche delle applicazioni EMR Serverless**  

| Metrica | Description | Unità | Dimensione | 
| --- | --- | --- | --- | 
| MaxCPUAllowed |  La CPU massima consentita per l'applicazione.  | VPCU | ApplicationId, ApplicationName | 
| MaxMemoryAllowed |  La memoria massima in GB consentita per l'applicazione.  | Gigabyte (GB) | ApplicationId, ApplicationName | 
| MaxStorageAllowed |  Lo spazio di archiviazione massimo in GB consentito per l'applicazione.  | Gigabyte (GB) | ApplicationId, ApplicationName | 
| CPUAllocated |  Il numero totale di v CPUs allocato.  | VPCU | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| IdleWorkerCount |  Il numero totale di lavoratori inattivi.  | Conteggio | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| MemoryAllocated |  Memoria totale in GB allocata.  | Gigabyte (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| PendingCreationWorkerCount |  Il numero totale di lavoratori in attesa di creazione.  | Conteggio | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| RunningWorkerCount |  Il numero totale di lavoratori utilizzati dall'applicazione.  | Conteggio | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| StorageAllocated |  Lo spazio di archiviazione totale su disco in GB allocato.  | Gigabyte (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| TotalWorkerCount |  Il numero totale di lavoratori disponibili.  | Conteggio | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 

## Monitoraggio a livello di mansione
<a name="job-level-metrics"></a>

Amazon EMR Serverless invia i seguenti parametri a livello di processo ogni minuto. Amazon CloudWatch Puoi accedere ai valori delle metriche per le esecuzioni aggregate dei processi in base allo stato di esecuzione del processo. *L'unità per ciascuna metrica è il conteggio.*


**Metriche a livello di job EMR Serverless**  

| Metrica | Description | Dimensione | 
| --- | --- | --- | 
| SubmittedJobs | Il numero di lavori in uno stato Inviato. | ApplicationId, ApplicationName | 
| PendingJobs | Il numero di lavori in uno stato In sospeso. | ApplicationId, ApplicationName | 
| ScheduledJobs | Il numero di lavori in uno stato Pianificato. | ApplicationId, ApplicationName | 
| RunningJobs | Il numero di lavori in uno stato In esecuzione. | ApplicationId, ApplicationName | 
| SuccessJobs | Il numero di lavori in uno stato di successo. | ApplicationId, ApplicationName | 
| FailedJobs | Il numero di lavori in uno stato Non riuscito. | ApplicationId, ApplicationName | 
| CancellingJobs | Il numero di lavori in uno stato di annullamento. | ApplicationId, ApplicationName | 
| CancelledJobs | Il numero di lavori in uno stato annullato. | ApplicationId, ApplicationName | 

È possibile monitorare le metriche specifiche del motore per l'esecuzione e il completamento dei job EMR Serverless con un'applicazione specifica del motore. UIs Quando si accede all'interfaccia utente per un processo in esecuzione, l'interfaccia utente live dell'applicazione viene visualizzata con aggiornamenti in tempo reale. Quando si accede all'interfaccia utente per un lavoro completato, viene visualizzata l'interfaccia utente persistente dell'app.

**Esecuzione di processi**

Per eseguire lavori EMR Serverless, accedi a un'interfaccia in tempo reale che fornisce metriche specifiche del motore. Puoi utilizzare l'interfaccia utente di Apache Spark o l'interfaccia utente di Hive Tez per monitorare ed eseguire il debug dei lavori. Per accedervi UIs, usa la console EMR Studio o richiedi un endpoint URL sicuro con. AWS Command Line Interface

**Lavori completati**

Per i job EMR Serverless completati, usa lo Spark History Server o l'interfaccia utente Persistent Hive Tez per accedere ai dettagli, alle fasi, alle attività e alle metriche dei job Spark o Hive eseguiti. Per accedervi UIs, usa la console EMR Studio o richiedi un endpoint URL sicuro con. AWS Command Line Interface

## Monitoraggio a livello di Job Worker
<a name="job-worker-level-metrics"></a>

Amazon EMR Serverless invia ad Amazon i seguenti parametri a livello di job worker disponibili nel `AWS/EMRServerless` namespace e nel gruppo di metrici. `Job Worker Metrics` CloudWatch EMR Serverless raccoglie punti dati dai singoli lavoratori durante le esecuzioni dei lavori a livello di mansione, tipo di lavoratore e livello. capacity-allocation-type È possibile utilizzarlo `ApplicationId` come dimensione per monitorare più lavori che appartengono alla stessa applicazione.

**Nota**  
Per visualizzare la CPU e la memoria totali utilizzate da un job EMR Serverless durante la visualizzazione delle metriche nella CloudWatch console Amazon, utilizza la statistica come somma e il periodo come 1 minuto.


**Metriche EMR Serverless a livello di job worker**  

| Metrica | Description | Unità | Dimensione | 
| --- | --- | --- | --- | 
| WorkerCpuAllocated | Il numero totale di core vCPU allocati per i lavoratori durante l'esecuzione di un job. | VPCU | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 
| WorkerCpuUsed | Il numero totale di core vCPU utilizzati dai lavoratori in un job run. | VPCU | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 
| WorkerMemoryAllocated | Memoria totale in GB allocata per i lavoratori durante l'esecuzione di un processo. | Gigabyte (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 
| WorkerMemoryUsed | Memoria totale in GB utilizzata dai lavoratori durante l'esecuzione di un processo. | Gigabyte (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 
| WorkerEphemeralStorageAllocated | Il numero di byte di storage temporaneo allocato ai lavoratori durante l'esecuzione di un job. | Gigabyte (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 
| WorkerEphemeralStorageUsed | Il numero di byte di storage temporaneo utilizzati dai lavoratori durante l'esecuzione di un processo. | Gigabyte (GB) | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 
| WorkerStorageReadBytes | Il numero di byte letti dallo storage dai lavoratori durante l'esecuzione di un job. | Byte | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 
| WorkerStorageWriteBytes | Il numero di byte scritti nello storage dai lavoratori durante l'esecuzione di un job. | Byte | JobId, JobName, ApplicationId, ApplicationName, WorkerType e CapacityAllocationType | 

I passaggi seguenti descrivono come accedere ai vari tipi di metriche.

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

**Per accedere all'interfaccia utente dell'applicazione con la console**

1. Accedi alla tua applicazione EMR Serverless su EMR Studio con le istruzioni in [Guida introduttiva](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html#gs-console) dalla console. 

1. Per accedere all'applicazione UIs e ai log specifici del motore per un processo in esecuzione: 

   1. Scegli un lavoro con uno stato. `RUNNING`

   1. Seleziona il lavoro nella pagina dei **dettagli della candidatura** o vai alla pagina dei **dettagli del lavoro** relativa al tuo lavoro.

   1. Nel menu a discesa **Display UI**, scegli **Spark UI o Hive Tez UI** **per accedere all'interfaccia utente dell'**applicazione per il tuo tipo di lavoro. 

   1. **Per accedere ai log del motore Spark, vai alla scheda **Executors** nell'interfaccia utente Spark e scegli il link Logs per il driver.** Per accedere ai log del motore Hive, scegli il link Logs per il **DAG** appropriato nell'interfaccia utente di Hive Tez.

1. Per accedere all'applicazione e ai log specifici del motore per un lavoro completato: UIs 

   1. Scegli un lavoro con uno stato. `SUCCESS`

   1. Seleziona il lavoro nella pagina dei **dettagli della candidatura** o vai alla pagina dei **dettagli del lavoro**.

   1. Nel menu a discesa **Display UI**, scegli **Spark History Server** o **Persistent Hive Tez UI per accedere all'interfaccia utente** dell'applicazione per il tuo tipo di lavoro. 

   1. **Per accedere ai log del motore Spark, vai alla scheda **Executors** nell'interfaccia utente Spark e scegli il link Logs per il driver.** Per accedere ai log del motore Hive, scegli il link Logs per il **DAG** appropriato nell'interfaccia utente di Hive Tez.

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

**Per accedere all'interfaccia utente dell'applicazione con AWS CLI**
+ Per generare un URL da utilizzare per accedere all'interfaccia utente dell'applicazione per i lavori in esecuzione e completati, chiama l'`GetDashboardForJobRun`API. 

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

  L'URL generato è valido per un'ora.

------

# Monitora i parametri di Spark con Amazon Managed Service for Prometheus
<a name="monitor-with-prometheus"></a>

Con le versioni 7.1.0 e successive di Amazon EMR, puoi integrare EMR Serverless con Amazon Managed Service for Prometheus per raccogliere i parametri di Apache Spark per lavori e applicazioni EMR Serverless. Questa integrazione è disponibile quando si invia un lavoro o si crea un'applicazione utilizzando la AWS console, l'API EMR Serverless o il. AWS CLI

## Prerequisiti
<a name="monitoring-with-prometheus-prereqs"></a>

Prima di poter fornire i parametri Spark ad Amazon Managed Service for Prometheus, completa i seguenti prerequisiti.
+ [Crea un'area di lavoro Amazon Managed Service per Prometheus.](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html) Questo Workspace funge da endpoint di acquisizione. Prendi nota dell'URL visualizzato per **Endpoint** - URL di scrittura remota. È necessario specificare l'URL quando si crea l'applicazione EMR Serverless.
+ Per concedere l'accesso delle tue offerte di lavoro ad Amazon Managed Service for Prometheus a scopo di monitoraggio, aggiungi la seguente politica al tuo ruolo di esecuzione del lavoro.

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

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

**Per utilizzare la AWS console per creare un'applicazione integrata con Amazon Managed Service for Prometheus**

1. Consulta la sezione [Guida introduttiva ad Amazon EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html                             ) per creare un'applicazione.

1. Durante la creazione di un'applicazione, scegli **Usa impostazioni personalizzate**, quindi configura l'applicazione specificando le informazioni nei campi che desideri configurare.

1. In **Application logs and metrics**, scegli **Deliver engine metrics to Amazon Managed Service for Prometheus, quindi specifica l'URL di scrittura remota**.

1. **Specificate le altre impostazioni di configurazione desiderate, quindi scegliete Crea e avvia l'applicazione.**

**Usa la nostra AWS CLI API serverless EMR**

Puoi anche utilizzare l'API AWS CLI o EMR Serverless per integrare la tua applicazione EMR Serverless con Amazon Managed Service for Prometheus quando esegui i comandi o. `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'inclusione `prometheusMonitoringConfiguration` nel comando indica che EMR Serverless deve eseguire il job Spark con un agente che raccoglie le metriche Spark e le scrive sul tuo endpoint per Amazon Managed Service for `remoteWriteUrl` Prometheus. Puoi quindi utilizzare le metriche Spark in Amazon Managed Service for Prometheus per la visualizzazione, gli avvisi e l'analisi.

## Proprietà di configurazione avanzate
<a name="monitoring-with-prometheus-config-options"></a>

EMR Serverless utilizza un componente all'interno di Spark denominato `PrometheusServlet` per raccogliere le metriche Spark e traduce i dati sulle prestazioni in dati compatibili con Amazon Managed Service for Prometheus. Per impostazione predefinita, EMR Serverless imposta i valori predefiniti in Spark e analizza le metriche del driver e dell'esecutore quando invii un lavoro utilizzando. `PrometheusMonitoringConfiguration` 

La tabella seguente descrive tutte le proprietà configurate quando si invia un job Spark che invia metriche ad Amazon Managed Service for Prometheus.


| Proprietà Spark | Valore predefinito | Description | 
| --- | --- | --- | 
| spark.metrics.conf.\$1.sink.prometheusServlet.class | org.apache.spark.metrics.sink. PrometheusServlet | La classe utilizzata da Spark per inviare metriche ad Amazon Managed Service for Prometheus. Per ignorare il comportamento predefinito, specifica la tua classe personalizzata. | 
| spark.metrics.conf.\$1.source.jvm.class | org.apache.spark.metrics.source. JvmSource | La classe utilizzata da Spark per raccogliere e inviare metriche cruciali dalla macchina virtuale Java sottostante. Per interrompere la raccolta delle metriche JVM, disabilita questa proprietà impostandola su una stringa vuota, ad esempio. `""` Per ignorare il comportamento predefinito, specificate la vostra classe personalizzata.  | 
| spark.metrics.conf.driver.sink.prometheusServlet.path | /metrics/prometheus | L'URL distinto che Amazon Managed Service for Prometheus utilizza per raccogliere le metriche dal driver. Per ignorare il comportamento predefinito, specifica il tuo percorso. Per interrompere la raccolta delle metriche dei driver, disattivate questa proprietà impostandola su una stringa vuota, ad esempio. `""` | 
| spark.metrics.conf.executor.sink.prometheusServlet.path | /metrics/executor/prometheus | L'URL distinto che Amazon Managed Service for Prometheus utilizza per raccogliere le metriche dell'esecutore. Per ignorare il comportamento predefinito, specifica il tuo percorso. Per interrompere la raccolta delle metriche degli esecutori, disabilitate questa proprietà impostandola su una stringa vuota, ad esempio. `""` | 

[Per ulteriori informazioni sulle metriche Spark, consulta le metriche di Apache Spark.](https://spark.apache.org/docs/3.5.0/monitoring.html#metrics)

## Considerazioni e limitazioni
<a name="monitoring-with-prometheus-limitations"></a>

Quando utilizzi Amazon Managed Service for Prometheus per raccogliere metriche da EMR Serverless, considera le seguenti considerazioni e limitazioni.
+ Il supporto per l'utilizzo di Amazon Managed Service for Prometheus con EMR Serverless è disponibile solo Regioni AWS nei paesi in [cui Amazon](https://docs.aws.amazon.com/general/latest/gr/prometheus-service.html) Managed Service for Prometheus è generalmente disponibile.
+ Far sì che l'agente raccolga i parametri Spark su Amazon Managed Service for Prometheus richiede più risorse da parte dei lavoratori. Se si sceglie un worker di dimensioni inferiori, ad esempio un lavoratore vCPU, il tempo di esecuzione del lavoro potrebbe aumentare.
+ Il supporto per l'utilizzo di Amazon Managed Service for Prometheus con EMR Serverless è disponibile solo per le versioni 7.1.0 e successive di Amazon EMR.
+ Amazon Managed Service for Prometheus deve essere distribuito nello stesso account in cui esegui EMR Serverless per raccogliere i parametri.

# Metriche di utilizzo EMR Serverless
<a name="monitoring-usage"></a>

Puoi utilizzare i parametri di CloudWatch utilizzo di Amazon per fornire visibilità sulle risorse utilizzate dal tuo account. Utilizza queste metriche per visualizzare l'utilizzo del servizio su CloudWatch grafici e dashboard.

Le metriche di utilizzo di EMR Serverless corrispondono a Service Quotas. È possibile configurare gli allarmi che avvisano quando l'uso si avvicina a una quota di servizio. Per ulteriori informazioni, consulta [Service Quotas e Amazon CloudWatch alarms](https://docs.aws.amazon.com/servicequotas/latest/userguide/configure-cloudwatch.html) nella *Service* Quotas User Guide.

Per ulteriori informazioni sulle quote dei servizi EMR Serverless, fare riferimento a. [Punti finali e quote per EMR Serverless](endpoints-quotas.md)

## Metriche di utilizzo delle quote di servizio per EMR Serverless
<a name="usage-metrics"></a>

EMR Serverless pubblica le seguenti metriche di utilizzo delle quote di servizio nel namespace. `AWS/Usage`


****  

| Metrica | Description | 
| --- | --- | 
| `ResourceCount`  | Il numero totale della risorsa specificata in esecuzione sul tuo account. La risorsa è definita dalle [dimensioni](#usage-metrics-dimensions) associate alla metrica. | 

## Dimensioni per le metriche di utilizzo delle quote di servizio EMR Serverless
<a name="usage-metrics-dimensions"></a>

È possibile utilizzare le seguenti dimensioni per perfezionare le metriche di utilizzo pubblicate da EMR Serverless.


****  

| Dimensione | Valore | Description | 
| --- | --- | --- | 
|  `Service`  |  EMR Serverless  | Il nome del file che contiene la risorsa. Servizio AWS  | 
|  `Type`  |  Risorsa  | Il tipo di entità segnalata da EMR Serverless. | 
|  `Resource`  |  VPCU  | Il tipo di risorsa monitorata da EMR Serverless. | 
|  `Class`  |  Nessuno  | La classe di risorse monitorata da EMR Serverless. | 