

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à.

# Metriche e dimensioni in Managed Service for Apache Flink
<a name="metrics-dimensions"></a>

Quando il tuo Managed Service per Apache Flink elabora un'origine dati, Managed Service for Apache Flink riporta le seguenti metriche e dimensioni ad Amazon. CloudWatch

**Modifiche alle metriche di Flink 2.2**  
Flink 2.2 introduce modifiche alle metriche che possono influire sul monitoraggio e sugli allarmi. Esamina le seguenti modifiche prima dell'aggiornamento:  
La `fullRestarts` metrica è stata rimossa. Usare invece `numRestarts`.
Le `downtime` metriche `uptime` e sono obsolete e verranno rimosse in una versione futura. Esegui la migrazione alle nuove metriche specifiche dello stato.
La `bytesRequestedPerFetch` metrica per il connettore Kinesis Data Streams 6.0.0 è stata rimossa.

## Parametri di applicazione
<a name="metrics-dimensions-jobs"></a>


| Metrica | Unità | Description | Livello | Note per l'utilizzo | 
| --- | --- | --- | --- | --- | 
| backPressuredTimeMsPerSecond\$1 | Millisecondi | Il tempo (in millisecondi) in cui questa attività o questo operatore vengono sottoposti a contropressione al secondo. | Attività, operatore, parallelismo | \$1Disponibile solo per le applicazioni del servizio gestito per Apache Flink che eseguono la versione 1.13 di Flink. Questi parametri possono essere utili per identificare i rallentamenti in un'applicazione. | 
| busyTimeMsPerSecond\$1 | Millisecondi | Il tempo (in millisecondi) occupato dall'attività o dall'operatore (né inattivo né in contropressione) al secondo. Può essere NaN, se il valore non può essere calcolato. | Attività, operatore, parallelismo | \$1Disponibile solo per le applicazioni del servizio gestito per Apache Flink che eseguono la versione 1.13 di Flink. Questi parametri possono essere utili per identificare i rallentamenti in un'applicazione. | 
| cpuUtilization | Percentuale | La percentuale complessiva di utilizzo della CPU tra i task manager. Ad esempio, se sono presenti cinque task manager, il servizio gestito per Apache Flink pubblica cinque esempi di questa metrica per intervallo di report. | Applicazione | È possibile utilizzare questa metrica per monitorare l'utilizzo minimo, medio e massimo della CPU nell'applicazione. La CPUUtilization metrica tiene conto solo dell'utilizzo della CPU del processo TaskManager JVM in esecuzione all'interno del contenitore.  | 
| containerCPUUtilization | Percentuale | Percentuale complessiva di utilizzo della CPU tra i container del task manager nel cluster di applicazioni Flink. Ad esempio, se sono presenti cinque task manager, corrispondenti sono cinque TaskManager contenitori e Managed Service for Apache Flink pubblica 2\$1 cinque esempi di questa metrica per intervallo di report di 1 minuto. | Applicazione | Il calcolo per container viene svolto come segue: *Tempo totale della CPU (in secondi) consumato dal container \$1 100/Limite CPU del contenitore (in /secondi) CPUs* La `CPUUtilization` metrica tiene conto solo dell'utilizzo della CPU del processo TaskManager JVM in esecuzione all'interno del contenitore. Esistono altri componenti in esecuzione all'esterno della JVM nello stesso container. Il parametro `containerCPUUtilization` fornisce un quadro più completo, includendo tutti i processi in termini di esaurimento della CPU nel container e gli errori che ne derivano.  | 
| containerMemoryUtilization | Percentuale | Percentuale complessiva di utilizzo della memoria tra i container del task manager nel cluster di applicazioni Flink. Ad esempio, se sono presenti cinque task manager, corrispondenti sono cinque TaskManager contenitori e Managed Service for Apache Flink pubblica 2\$1 cinque esempi di questa metrica per intervallo di report di 1 minuto. | Applicazione | Il calcolo per container viene svolto come segue: *Utilizzo della memoria del container (byte) \$1 100/limite di memoria del container in base alle specifiche di implementazione del pod (in byte)* [Le `ManagedMemoryUtilzations` metriche `HeapMemoryUtilization` and tengono conto solo di parametri di memoria specifici come Heap Memory Usage of TaskManager JVM o Managed Memory (utilizzo della memoria al di fuori di JVM per processi nativi come RockSDB State Backend).](https://flink.apache.org/2021/01/18/rocksdb.html#:~:text=Conclusion-,The%20RocksDB%20state%20backend%20(i.e.%2C%20RocksDBStateBackend)%20is%20one%20of,with%20exactly%2Donce%20processing%20guarantees.) Il parametro `containerMemoryUtilization` fornisce un quadro più completo, includendo la memoria del set di lavoro, che monitora meglio l'esaurimento della memoria totale. Una volta esaurito, si riaccenderà al pod. `Out of Memory Error` TaskManager   | 
| containerDiskUtilization | Percentuale | Percentuale complessiva di utilizzo del disco tra i container del task manager nel cluster di applicazioni Flink. Ad esempio, se ci sono cinque task manager, corrispondenti sono cinque TaskManager contenitori e Managed Service for Apache Flink pubblica 2\$1 cinque esempi di questa metrica per intervallo di report di 1 minuto. | Applicazione | Il calcolo per container viene svolto come segue: *Utilizzo del disco in byte \$1 100/limite del disco per il container in byte* Per i container, rappresenta l'utilizzo del filesystem su cui è impostato il volume root del container.  | 
| currentInputWatermark | Millisecondi | L'ultima filigrana che ha ricevuto application/operator/task/thread | Applicazione, operatore, attività, parallelismo | Questo record viene generato solo per dimensioni con due input. Questo è il valore minimo degli ultimi watermark ricevuti. | 
| currentOutputWatermark | Millisecondi | L'ultima filigrana che ha emesso application/operator/task/thread | Applicazione, operatore, attività, parallelismo |  | 
| downtime[OBSOLETO] | Millisecondi | Per i lavori attualmente in una failing/recovering situazione, il tempo è trascorso durante questa interruzione. | Applicazione | Questo parametro misura il tempo trascorso durante la mancata riuscita o il ripristino di un processo. Questo parametro restituisce 0 per i processi in esecuzione e -1 per i processi completati. Se questo parametro non è 0 o -1, significa che il processo di Apache Flink per l'applicazione non è stato eseguito. **Deprecato in Flink 2.2.** Usa`restartingTime`, invece. `cancellingTime` and/or `failingTime` | 
| failingTime | Millisecondi | Il tempo (in millisecondi) trascorso dall'applicazione in uno stato di errore. Utilizzate questa metrica per monitorare gli errori delle applicazioni e attivare gli avvisi. | Applicazione, flusso | Disponibile da Flink 2.2. Sostituisce parte della metrica obsoletadowntime. | 
| heapMemoryUtilization | Percentuale | Utilizzo complessivo della memoria heap tra i task manager. Ad esempio, se sono presenti cinque task manager, il servizio gestito per Apache Flink pubblica cinque esempi di questa metrica per intervallo di report. | Applicazione | È possibile utilizzare questa metrica per monitorare l'utilizzo minimo, medio e massimo della memoria heap nell'applicazione. Tiene conto HeapMemoryUtilization solo di metriche di memoria specifiche come Heap Memory Usage di JVM. TaskManager  | 
| idleTimeMsPerSecond\$1 | Millisecondi | Il tempo (in millisecondi) di inattività (nessun dato da elaborare) di questa attività o di questo operatore al secondo. Il tempo di inattività esclude il tempo di contropressione, quindi se l'attività è in contropressione non è inattiva. | Attività, operatore, parallelismo | \$1Disponibile solo per le applicazioni del servizio gestito per Apache Flink che eseguono la versione 1.13 di Flink. Questi parametri possono essere utili per identificare i rallentamenti in un'applicazione. | 
| lastCheckpointSize | Byte | La dimensione totale dell'ultimo checkpoint | Applicazione | È possibile utilizzare questo parametro per determinare l'utilizzo dello storage delle applicazioni in esecuzione. Se il valore di questo parametro aumenta, ciò potrebbe indicare la presenza di un problema con l'applicazione, ad esempio una perdita di memoria o un collo di bottiglia. | 
| lastCheckpointDuration | Millisecondi | Il tempo impiegato per completare l'ultimo checkpoint | Applicazione | Questo parametro misura il tempo impiegato per completare il checkpoint più recente. Se il valore di questo parametro aumenta, ciò potrebbe indicare la presenza di un problema con l'applicazione, ad esempio una perdita di memoria o un collo di bottiglia. In alcuni casi, è possibile risolvere questo problema disabilitando il checkpoint. | 
| managedMemoryUsed\$1 | Byte | La quantità di memoria attualmente in uso. | Applicazione, operatore, attività, parallelismo | \$1Disponibile solo per le applicazioni del servizio gestito per Apache Flink che eseguono la versione 1.13 di Flink. Si riferisce alla memoria gestita da Flink all'esterno dell'heap Java. Viene utilizzato per il backend di stato RocksDB ed è disponibile anche per le applicazioni. | 
| managedMemoryTotal\$1 | Byte | La quantità totale di memoria gestita. | Applicazione, operatore, attività, parallelismo | \$1Disponibile solo per le applicazioni del servizio gestito per Apache Flink che eseguono la versione 1.13 di Flink. Si riferisce alla memoria gestita da Flink all'esterno dell'heap Java. Viene utilizzato per il backend di stato RocksDB ed è disponibile anche per le applicazioni. Il parametro `ManagedMemoryUtilzations` tiene conto solo di parametri di memoria specifici come la memoria gestita (utilizzo della memoria al di fuori di JVM per processi nativi come [RocksDB State Backend](https://flink.apache.org/2021/01/18/rocksdb.html#:~:text=Conclusion-,The%20RocksDB%20state%20backend%20(i.e.%2C%20RocksDBStateBackend)%20is%20one%20of,with%20exactly%2Donce%20processing%20guarantees.)) | 
| managedMemoryUtilization\$1 | Percentuale |  managedMemoryUsedDerivato da/managedMemoryTotal | Applicazione, operatore, attività, parallelismo | \$1Disponibile solo per le applicazioni del servizio gestito per Apache Flink che eseguono la versione 1.13 di Flink. Si riferisce alla memoria gestita da Flink all'esterno dell'heap Java. Viene utilizzato per il backend di stato RocksDB ed è disponibile anche per le applicazioni. | 
| numberOfFailedCheckpoints | Conteggio | Il numero di volte in cui il checkpoint non è andato a buon fine. | Applicazione | È possibile utilizzare questo parametro per monitorare lo stato e l'avanzamento delle applicazioni. I checkpoint potrebbero non riuscire a causa di problemi dell'applicazione, come problemi di throughput o di autorizzazioni.  | 
| numRecordsIn\$1 | Conteggio | Il numero totale di record ricevuti da questa applicazione, operatore o attività. | Applicazione, operatore, attività, parallelismo | \$1Per applicare la statistica Somma su un periodo di tempo (secondi/minuto): [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/managed-flink/latest/java/metrics-dimensions.html) Il livello del parametro specifica se questo parametro misura il numero totale di record ricevuti dall'intera applicazione, da un operatore specifico o da un'attività specifica. | 
| numRecordsInPerSecond\$1 | Numero/secondo | Il numero totale di record ricevuti da questa applicazione, operatore o attività al secondo. | Applicazione, operatore, attività, parallelismo | \$1Per applicare la statistica Somma su un periodo di tempo (secondi/minuto): [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/managed-flink/latest/java/metrics-dimensions.html) Il livello del parametro specifica se questo parametro misura il numero totale di record ricevuti dall'intera applicazione, da un operatore specifico o da un'attività specifica. | 
| numRecordsOut\$1 | Conteggio | Il numero totale di record generati da questa applicazione, operatore o attività. | Applicazione, operatore, attività, parallelismo |  \$1Per applicare la statistica Somma su un periodo di tempo (secondi/minuto): [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/managed-flink/latest/java/metrics-dimensions.html) Il livello del parametro specifica se questo parametro misura il numero totale di record ricevuti dall'intera applicazione, da un operatore specifico o da un'attività specifica. | 
| numLateRecordsDropped\$1 | Conteggio | Applicazione, operatore, attività, parallelismo |  | \$1Per applicare la statistica Somma su un periodo di tempo (secondi/minuto): [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/managed-flink/latest/java/metrics-dimensions.html) Il numero di record di questo operatore o attività è diminuito a causa dell'arrivo in ritardo. | 
| numRecordsOutPerSecond\$1 | Numero/secondo | Il numero totale di record generati da questa applicazione, operatore o attività al secondo. | Applicazione, operatore, attività, parallelismo |  \$1Per applicare la statistica Somma su un periodo di tempo (secondi/minuto): [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/managed-flink/latest/java/metrics-dimensions.html) Il livello del parametro specifica se questo parametro misura il numero totale di record ricevuti dall'intera applicazione, da un operatore specifico o da un'attività specifica. | 
| oldGenerationGCCount | Conteggio | Il numero totale di vecchie operazioni di rimozione di oggetti inutili (garbage collection) che si sono verificate in tutti i task manager.  | Applicazione |  | 
| oldGenerationGCTime | Millisecondi | Il tempo totale impiegato per eseguire le vecchie operazioni di rimozione di oggetti inutili (garbage collection).  | Applicazione | È possibile utilizzare questo parametro per monitorare la somma, la media e il tempo massimo di rimozione di oggetti inutili (garbage collection). | 
| threadsCount | Conteggio | Il numero totale di thread live utilizzati dall'applicazione.  | Applicazione | Questo parametro misura il numero di thread utilizzati dal codice dell'applicazione. È diverso dal parallelismo dell’applicazione. | 
| cancellingTime | Millisecondi | Il tempo (in millisecondi) che l'applicazione ha trascorso in stato di annullamento. Utilizzate questa metrica per monitorare le operazioni di annullamento delle applicazioni. | Applicazione, Flow | Disponibile da Flink 2.2. Sostituisce parte della metrica obsoletadowntime. | 
| restartingTime | Millisecondi | Il tempo (in millisecondi) trascorso dall'applicazione in uno stato di riavvio. Utilizzate questa metrica per monitorare il comportamento di riavvio delle applicazioni. | Applicazione, Flow | Disponibile da Flink 2.2. Sostituisce parte della metrica obsoletadowntime. | 
| runningTime | Millisecondi | Il tempo (in millisecondi) in cui l'applicazione è stata eseguita senza interruzioni. Sostituisce la metrica obsoleta. uptime | Applicazione, flusso | Disponibile da Flink 2.2. Utilizza come sostituto diretto della metrica obsoletauptime. | 
| uptime[OBSOLETO] | Millisecondi | Il tempo in cui il processo è stato eseguito senza interruzioni. | Applicazione | È possibile utilizzare questo parametro per determinare se un processo viene eseguito correttamente. Questo parametro restituisce -1 per i processi completati. **Deprecato in Flink 2.2.** Usare invece `runningTime`. | 
| jobmanagerFileDescriptorsMax | Conteggio | Il numero massimo di descrittori di file disponibili per. JobManager | Applicazione, flusso, host | Utilizzate questa metrica per monitorare la capacità del descrittore di file. | 
| jobmanagerFileDescriptorsOpen | Conteggio | Il numero corrente di descrittori di file aperti per. JobManager | Applicazione, flusso, host | Utilizzate questa metrica per monitorare l'utilizzo del descrittore di file e rilevare il potenziale esaurimento delle risorse. | 
| taskmanagerFileDescriptorsMax | Conteggio | Il numero massimo di descrittori di file disponibili per ciascuno. TaskManager | Applicazione, Flow, Host, tm\$1id | Utilizzate questa metrica per monitorare la capacità del descrittore di file. | 
| taskmanagerFileDescriptorsOpen | Conteggio | Il numero attuale di descrittori di file aperti per ciascuno. TaskManager | Applicazione, Flow, Host, tm\$1id | Utilizzate questa metrica per monitorare l'utilizzo del descrittore di file e rilevare il potenziale esaurimento delle risorse. | 
| KPUs\$1 | Conteggio | Il numero totale di dati KPUs utilizzati dall'applicazione. | Applicazione | \$1Questa metrica riceve un campione per periodo di fatturazione (un'ora). Per visualizzare il numero di interruzioni KPUs nel tempo, usa MAX o AVG per un periodo di almeno un'ora (1). Il conteggio delle KPU include le KPU. `orchestration` Per ulteriori informazioni, consulta [Managed Service for Apache Flink Pricing](https://aws.amazon.com/managed-service-apache-flink/pricing/). | 

**Guida alla migrazione delle metriche di Flink 2.2**  
**Migrazione da FullRestarts:** la `fullRestarts` metrica è stata rimossa in Flink 2.2. Utilizzate invece la metrica. `numRestarts` La `numRestarts` metrica offre funzionalità equivalenti e può essere utilizzata come sostituto diretto degli CloudWatch allarmi senza richiedere regolazioni della soglia.  
**Migrazione dall'uptime:** la `uptime` metrica è obsoleta in Flink 2.2 e verrà rimossa in una versione futura. `runningTime`Utilizzate invece la metrica. La `runningTime` metrica offre funzionalità equivalenti e può essere utilizzata come sostituto diretto degli CloudWatch allarmi senza richiedere regolazioni della soglia.  
**Migrazione dai tempi di inattività:** la `downtime` metrica è obsoleta in Flink 2.2 e verrà rimossa in una versione futura. A seconda di ciò che desideri monitorare, utilizza una o più delle seguenti metriche:  
`restartingTime`: monitora il tempo impiegato per riavviare l'applicazione
`cancellingTime`: Monitora il tempo impiegato per annullare l'applicazione
`failingTime`: monitora il tempo trascorso in uno stato di guasto

## Metriche del connettore Kinesis Data Streams
<a name="metrics-dimensions-stream"></a>

AWS emette tutti i record per Kinesis Data Streams oltre ai seguenti:


| Metrica | Unità | Description | Livello | Note per l'utilizzo | 
| --- | --- | --- | --- | --- | 
| millisbehindLatest | Millisecondi | Il numero di millisecondi in cui il consumatore si trova rispetto all'estremità del flusso, a indicare il ritardo rispetto all'ora corrente del consumatore. | Applicazione (per Stream), Parallelismo (per) ShardId | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/managed-flink/latest/java/metrics-dimensions.html)  | 

**Nota**  
La `bytesRequestedPerFetch` metrica è stata rimossa nella versione 6.0.0 del AWS connettore Flink (l'unica versione del connettore compatibile con Flink 2.2). L'unica metrica del connettore Kinesis Data Streams disponibile in Flink 2.2 è. `millisBehindLatest`

## Metriche del connettore Amazon MSK
<a name="metrics-dimensions-msk"></a>

AWS emette tutti i record per Amazon MSK oltre ai seguenti:


| Metrica | Unità | Description | Livello | Note per l'utilizzo | 
| --- | --- | --- | --- | --- | 
| currentoffsets | N/D | L'offset di lettura corrente del consumer, per ogni partizione. Il parametro di una particolare partizione può essere specificato in base al nome dell'argomento e all'ID della partizione. | Applicazione (per argomento), parallelismo (per) PartitionId |  | 
| commitsFailed | N/D | Il numero totale di errori di commit di offset su Kafka, se il commit di offset e la creazione di checkpoint sono abilitati.  | Applicazione, operatore, attività, parallelismo | Restituire le compensazioni a Kafka è solo un modo per esporre i progressi dei consumer, quindi un errore di commit non pregiudica l'integrità degli offset delle partizioni bloccati di Flink. | 
| commitsSucceeded | N/D | Il numero totale di commit di offset riusciti verso Kafka, se il commit di offset e la creazione di checkpoint sono abilitati.  | Applicazione, operatore, attività, parallelismo |  | 
| committedoffsets | N/D | Gli ultimi offset eseguiti con successo su Kafka, per ogni partizione. Il parametro di una particolare partizione può essere specificato in base al nome dell'argomento e all'ID della partizione. | Applicazione (per argomento), parallelismo (per) PartitionId |  | 
| records\$1lag\$1max | Conteggio | Il ritardo massimo in termini di numero di record per ogni partizione in questa finestra | Applicazione, operatore, attività, parallelismo |  | 
| bytes\$1consumed\$1rate | Byte | Il numero medio di byte consumati al secondo per un argomento | Applicazione, operatore, attività, parallelismo |  | 

## Metriche di Apache Zeppelin
<a name="metrics-dimensions-zeppelin"></a>

Per i notebook Studio, AWS emette le seguenti metriche a livello di applicazione:,,,, e. `KPUs` `cpuUtilization` `heapMemoryUtilization` `oldGenerationGCTime` `oldGenerationGCCount` `threadCount` Inoltre, genera i parametri mostrati nella tabella seguente, anche a livello di applicazione.


****  

| Metrica | Unità | Description | Nome Prometheus | 
| --- | --- | --- | --- | 
| zeppelinCpuUtilization | Percentuale | Percentuale complessiva di utilizzo della CPU nel server Apache Zeppelin. | process\$1cpu\$1usage | 
| zeppelinHeapMemoryUtilization | Percentuale | Percentuale complessiva di utilizzo della memoria heap per il server Apache Zeppelin. | jvm\$1memory\$1used\$1bytes | 
| zeppelinThreadCount | Conteggio | Il numero totale di thread live utilizzati dal server Apache Zeppelin. | jvm\$1threads\$1live\$1threads | 
| zeppelinWaitingJobs | Conteggio | Il numero di processi di Apache Zeppelin in coda in attesa di un thread. | jetty\$1threads\$1jobs | 
| zeppelinServerUptime | Secondi | Il tempo totale in cui il server è stato attivo e in funzione. | process\$1uptime\$1seconds | 

# CloudWatch Visualizza le metriche
<a name="metrics-dimensions-viewing"></a>

Puoi visualizzare i CloudWatch parametri per la tua applicazione utilizzando la CloudWatch console Amazon o il AWS CLI.

**Per visualizzare le metriche utilizzando la console CloudWatch**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione, seleziona **Parametri**.

1. Nel riquadro **CloudWatch Metriche per categoria** per Managed Service for Apache Flink, scegli una categoria di metriche.

1. Nel riquadro superiore, scorri verso il basso per visualizzare l'elenco completo dei parametri.

**Per visualizzare le metriche utilizzando il AWS CLI**
+ Al prompt dei comandi utilizza il comando seguente.

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/KinesisAnalytics" --region region
  ```

# Imposta i livelli di CloudWatch report sulle metriche
<a name="cloudwatch-logs-levels"></a>

Puoi controllare il livello dei parametri dell'applicazione creati dall'applicazione. Il servizio gestito per Apache Flink supporta i seguenti livelli di parametri:
+ **Applicazione:** l'applicazione riporta solo il livello più elevato dei parametri per ogni applicazione. I parametri del servizio gestito per Apache Flink vengono pubblicati al livello di Applicazione per impostazione predefinita.
+ **Attività:** l'applicazione riporta le dimensioni dei parametri specifiche dell'attività per i parametri definiti con il livello di report del parametro Attività, ad esempio il numero di record in entrata e in uscita dall'applicazione al secondo.
+ **Operatore:** l'applicazione riporta le dimensioni dei parametri specifiche dell'operatore per i parametri definiti con il livello di report del parametro Operatore, ad esempio i parametri per ogni operazione di filtro o mappa.
+ **Parallelismo:** l'applicazione riporta i livelli parametri `Task` e `Operator` per ciascun thread di esecuzione. Tale livello di report non è consigliato per applicazioni con un parallelismo superiore a 64 a causa di costi eccessivi. 
**Nota**  
È necessario utilizzare questo livello di parametri solo per la risoluzione dei problemi a causa della quantità di dati relativi ai parametri generati dal servizio. È possibile impostare questo livello di parametri solo utilizzando la CLI. Questo livello di parametri non è disponibile nella console.

Il livello predefinito è **Applicazione**. L'applicazione riporta i parametri al livello corrente e a tutti i livelli superiori. Ad esempio, se il livello di reporting è impostato su **Operatore** l'applicazione riporta i parametri **Applicazione**, **Attività** e **Operatore**.

Puoi impostare il livello di segnalazione delle CloudWatch metriche utilizzando il `MonitoringConfiguration` parametro dell'[https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html)azione o il `MonitoringConfigurationUpdate` parametro dell'[https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html)azione. **L'esempio seguente di richiesta per l'[https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html)azione imposta il livello di segnalazione delle CloudWatch metriche su Task:**

```
{
   "ApplicationName": "MyApplication",  
   "CurrentApplicationVersionId": 4,
   "ApplicationConfigurationUpdate": { 
      "FlinkApplicationConfigurationUpdate": { 
         "MonitoringConfigurationUpdate": { 
            "ConfigurationTypeUpdate": "CUSTOM",
            "MetricsLevelUpdate": "TASK"
         }
      }
   }
}
```

Puoi anche configurare il livello di registrazione utilizzando il parametro `LogLevel` dell'operazione [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) o il parametro `LogLevelUpdate` dell'operazione [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html). Puoi utilizzare i seguenti livelli di log:
+ `ERROR`: registra gli eventi di errore potenzialmente recuperabili.
+ `WARN`: registra gli eventi di avviso che potrebbero causare un errore.
+ `INFO`: registra gli eventi informativi.
+ `DEBUG`: registra gli eventi di debug generali. 

Per ulteriori informazioni sui livelli di registrazione di Log4j, consulta [Livelli di registro personalizzati](https://logging.apache.org/log4j/2.x/manual/customloglevels.html) nella documentazione di [Apache Log4j](https://logging.apache.org/log4j/2.x/).

# Usa metriche personalizzate con Amazon Managed Service per Apache Flink
<a name="monitoring-metrics-custom"></a>

Managed Service for Apache Flink espone 19 metriche a, incluse le metriche relative all'utilizzo delle risorse e al throughput CloudWatch. Inoltre, puoi creare parametri personalizzati per tenere traccia dei dati specifici dell'applicazione, come l'elaborazione di eventi o l'accesso a risorse esterne.

**Topics**
+ [Come funziona](#monitoring-metrics-custom-howitworks)
+ [Visualizza esempi per la creazione di una classe di mappatura](#monitoring-metrics-custom-examples)
+ [Visualizza metriche personalizzate](#monitoring-metrics-custom-examples-viewing)

## Come funziona
<a name="monitoring-metrics-custom-howitworks"></a>

I parametri personalizzati nel servizio gestito per Apache Flink utilizzano il sistema delle metriche di Apache Flink. I parametri di Apache Flink hanno i seguenti attributi:
+ **Tipo**: il tipo di un parametro descrive il modo in cui vengono misurati e riportati i dati. I tipi di parametri Apache Flink disponibili includono contatore, misuratore e istogramma. Per ulteriori informazioni sui tipi di parametri Apache Flink, consulta [Tipi di parametri](https://nightlies.apache.org/flink/flink-docs-release-1.15/monitoring/metrics.html#metric-types).
**Nota**  
AWS CloudWatch Metrics non supporta il tipo di metrica Histogram Apache Flink. CloudWatch può visualizzare solo le metriche Apache Flink dei tipi Count, Gauge e Meter.
+ **Ambito: l'ambito** di una metrica è costituito dal relativo identificatore e da un insieme di coppie chiave-valore che indicano come verrà riportata la metrica. CloudWatch L'identificatore di un parametro è costituito dai seguenti elementi:
  + Un ambito di sistema, che indica il livello al quale viene riportato il parametro (ad esempio Operatore).
  + Un ambito utente, che definisce attributi come le variabili utente o i nomi dei gruppi di parametri. Questi attributi sono definiti utilizzando [https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/metrics/MetricGroup.html#addGroup-java.lang.String-java.lang.String-](https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/metrics/MetricGroup.html#addGroup-java.lang.String-java.lang.String-) o [https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/metrics/MetricGroup.html#addGroup-java.lang.String-](https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/metrics/MetricGroup.html#addGroup-java.lang.String-).

  Per ulteriori informazioni sugli ambiti, consulta [Ambito](https://nightlies.apache.org/flink/flink-docs-release-1.15/monitoring/metrics.html#scope).

Per ulteriori informazioni sulle metriche di Apache Flink, consulta [Parametri](https://nightlies.apache.org/flink/flink-docs-release-1.15/monitoring/metrics.html) nella [documentazione di Apache Flink](https://nightlies.apache.org/flink/flink-docs-release-1.15/).

Per creare una metrica personalizzata nel servizio gestito per Apache Flink, puoi accedere al sistema metrico Apache Flink da qualsiasi funzione utente che estende `RichFunction` tramite chiamata [https://nightlies.apache.org/flink/flink-docs-release-1.15/api/java/org/apache/flink/api/common/functions/RuntimeContext.html#getMetricGroup--](https://nightlies.apache.org/flink/flink-docs-release-1.15/api/java/org/apache/flink/api/common/functions/RuntimeContext.html#getMetricGroup--). Questo metodo restituisce un [MetricGroup](https://nightlies.apache.org/flink/flink-docs-release-1.15/api/java/org/apache/flink/metrics/MetricGroup.html)oggetto che puoi utilizzare per creare e registrare metriche personalizzate. Managed Service for Apache Flink riporta tutte le metriche create con la chiave di gruppo to. `KinesisAnalytics` CloudWatch I parametri personalizzati che definisci hanno le seguenti caratteristiche:
+ Il parametro personalizzato ha un nome parametro e un nome gruppo. [Questi nomi devono essere composti da caratteri alfanumerici secondo le regole di denominazione di Prometheus.](https://prometheus.io/docs/instrumenting/writing_exporters/#naming)
+ Gli attributi definiti nell'ambito dell'utente (ad eccezione del gruppo di `KinesisAnalytics` metriche) vengono pubblicati come dimensioni. CloudWatch 
+ Per impostazione predefinita, i parametri personalizzati vengono pubblicati a livello di `Application`.
+ Le dimensioni (attività/operatore/parallelismo) vengono aggiunte al parametro in base al livello di monitoraggio dell'applicazione. Il livello di monitoraggio dell'applicazione viene impostato utilizzando il [MonitoringConfiguration](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_MonitoringConfiguration.html)parametro dell'[CreateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_CreateApplication.html)azione o il [MonitoringConfigurationUpdate](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_MonitoringConfigurationUpdate.html)parametro o dell'[UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)azione.

## Visualizza esempi per la creazione di una classe di mappatura
<a name="monitoring-metrics-custom-examples"></a>

I seguenti esempi di codice mostrano come creare una classe di mappatura che crea e incrementa una metrica personalizzata e come implementare la classe di mappatura nell'applicazione aggiungendola a un oggetto. `DataStream`

### Record count (metrica personalizzata)
<a name="monitoring-metrics-custom-examples-recordcount"></a>

Il seguente esempio di codice mostra come creare una classe di mappatura che crea un parametro che conta i record in un flusso di dati (la stessa funzionalità del parametro `numRecordsIn`):

```
    private static class NoOpMapperFunction extends RichMapFunction<String, String> {
        private transient int valueToExpose = 0;
        private final String customMetricName;
 
        public NoOpMapperFunction(final String customMetricName) {
            this.customMetricName = customMetricName;
        }
 
        @Override
        public void open(Configuration config) {
            getRuntimeContext().getMetricGroup()
                    .addGroup("KinesisAnalytics")
                    .addGroup("Program", "RecordCountApplication")
                    .addGroup("NoOpMapperFunction")
                    .gauge(customMetricName, (Gauge<Integer>) () -> valueToExpose);
        }
 
        @Override
        public String map(String value) throws Exception {
            valueToExpose++;
            return value;
        }
    }
```

Nell'esempio precedente, la variabile `valueToExpose` viene incrementata per ogni record elaborato dall'applicazione. 

Dopo aver definito la classe di mappatura, crea un flusso all'interno dell'applicazione che implementa la mappa:

```
DataStream<String> noopMapperFunctionAfterFilter =
    kinesisProcessed.map(new NoOpMapperFunction("FilteredRecords"));
```

Per il codice completo di questa applicazione, consulta [Applicazione del parametro personalizzato del numero di record](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/CustomMetrics/RecordCount).

### Metrica personalizzata per il conteggio delle parole
<a name="monitoring-metrics-custom-examples-wordcount"></a>

Il seguente esempio di codice mostra come creare una classe di mappatura che crea una metrica che conta le parole in un flusso di dati:

```
private static final class Tokenizer extends RichFlatMapFunction<String, Tuple2<String, Integer>> {
     
            private transient Counter counter;
     
            @Override
            public void open(Configuration config) {
                this.counter = getRuntimeContext().getMetricGroup()
                        .addGroup("KinesisAnalytics")
                        .addGroup("Service", "WordCountApplication")
                        .addGroup("Tokenizer")
                        .counter("TotalWords");
            }
     
            @Override
            public void flatMap(String value, Collector<Tuple2<String, Integer>>out) {
                // normalize and split the line
                String[] tokens = value.toLowerCase().split("\\W+");
     
                // emit the pairs
                for (String token : tokens) {
                    if (token.length() > 0) {
                        counter.inc();
                        out.collect(new Tuple2<>(token, 1));
                    }
                }
            }
        }
```

Nell'esempio precedente, la variabile `counter` viene incrementata per ogni parola elaborata dall'applicazione. 

Dopo aver definito la classe di mappatura, crea un flusso all'interno dell'applicazione che implementa la mappa:

```
// Split up the lines in pairs (2-tuples) containing: (word,1), and
// group by the tuple field "0" and sum up tuple field "1"
DataStream<Tuple2<String, Integer>> wordCountStream = input.flatMap(new Tokenizer()).keyBy(0).sum(1);
     
// Serialize the tuple to string format, and publish the output to kinesis sink
wordCountStream.map(tuple -> tuple.toString()).addSink(createSinkFromStaticConfig());
```

Per il codice completo di questa applicazione, consulta [Applicazione del parametro personalizzato del conteggio di parole](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/CustomMetrics/WordCount).

## Visualizza metriche personalizzate
<a name="monitoring-metrics-custom-examples-viewing"></a>

Le metriche personalizzate per la tua applicazione vengono visualizzate nella console CloudWatch Metrics nella **AWS/KinesisAnalytics**dashboard, nel gruppo di metriche dell'**applicazione**. 

# Usa gli CloudWatch allarmi con Amazon Managed Service per Apache Flink
<a name="monitoring-metrics-alarms"></a>

Utilizzando gli allarmi Amazon CloudWatch Metric, controlli una CloudWatch metrica per un periodo di tempo specificato. L'allarme esegue una o più operazioni basate sul valore del parametro o espressione relativa a una soglia su un certo numero di periodi. Un esempio di operazione sta inviando una notifica a un argomento Amazon Simple Notification Service (Amazon SNS). 

Per ulteriori informazioni sugli CloudWatch allarmi, consulta [Using Amazon CloudWatch Alarms](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html).

## Controlla gli allarmi consigliati
<a name="monitoring-metrics-alarms-recommended"></a>

Questa sezione contiene gli allarmi consigliati per il monitoraggio delle applicazioni del servizio gestito per Apache Flink.

La tabella descrive gli allarmi consigliati e contiene le seguenti colonne:
+ **Espressione di parametro:** il parametro o l'espressione di parametro da testare rispetto alla soglia.
+ **Statistica:** la statistica utilizzata per controllare il parametro, ad esempio **Media**.
+ **Soglia:** l'utilizzo di questo allarme richiede la determinazione di una soglia che definisca il limite delle prestazioni previste dell'applicazione. È necessario determinare questa soglia monitorando l'applicazione in condizioni normali.
+ **Descrizione:** cause che potrebbero attivare questo allarme e possibili soluzioni per la condizione.


| Espressioni di parametro | Statistic | Threshold | Description | 
| --- |--- |--- |--- |
| downtime> 0 | Media | 0 |  Un tempo di inattività maggiore di zero indica che l'applicazione non è riuscita. Se il valore è maggiore di 0, l'applicazione non sta elaborando alcun dato. Consigliato per tutte le applicazioni. La Downtime metrica misura la durata di un'interruzione. Un tempo di inattività maggiore di zero indica che l'applicazione non è riuscita. Per la risoluzione dei problemi, vedere[L'applicazione si sta riavviando](troubleshooting-rt-restarts.md). | 
| RATE (numberOfFailedCheckpoints)> 0 | Media | 0 | Questa metrica conta il numero di checkpoint non riusciti dall'avvio dell'applicazione. A seconda dell'applicazione, un malfunzionamento occasionale dei checkpoint può essere accettabile. Tuttavia, se i checkpoint non riescono regolarmente, è probabile che l'applicazione non sia integra e che necessiti di ulteriore attenzione. Consigliamo di monitorare RATE (numberOfFailedCheckpoints) per generare allarmi sul gradiente e non sui valori assoluti. Consigliato per tutte le applicazioni. Utilizza questa metrica per monitorare lo stato delle applicazioni e l'avanzamento del checkpoint. L'applicazione salva i dati sullo stato nei checkpoint quando è integra. Il checkpoint può fallire a causa di timeout se l'applicazione non sta procedendo nell'elaborazione dei dati di input. Per la risoluzione dei problemi, vedere. [Il checkpoint è in fase di interruzione](troubleshooting-chk-timeout.md) | 
| Operator.numRecordsOutPerSecond< soglia | Media | Il numero minimo di record emessi dall'applicazione in condizioni normali.  | Consigliato per tutte le applicazioni. Un calo al di sotto di questa soglia può indicare che l'applicazione non sta facendo i progressi previsti sui dati di input. Per la risoluzione dei problemi, vedere[La velocità effettiva è troppo lenta](troubleshooting-rt-throughput.md). | 
| records\$1lag\$1max\$1millisbehindLatest> soglia | Massimo | La latenza massima prevista in condizioni normali. | Se l'applicazione utilizza Kinesis o Kafka, queste metriche indicano se l'applicazione è in ritardo e deve essere ridimensionata per stare al passo con il carico corrente. Si tratta di un parametro generico valido e facile da tracciare per tutti i tipi di applicazioni; tuttavia, può essere utilizzato solo per il dimensionamento reattivo, ovvero quando l'applicazione è già in ritardo. Consigliato per tutte le applicazioni. Usa la records\$1lag\$1max metrica per una sorgente Kafka o la per millisbehindLatest una sorgente di flusso Kinesis. Il superamento di questa soglia può indicare che l'applicazione non sta facendo i progressi previsti sui dati di input. Per la risoluzione dei problemi, vedere[La velocità effettiva è troppo lenta](troubleshooting-rt-throughput.md). | 
| lastCheckpointDuration> soglia | Massimo | La durata massima prevista del checkpoint in condizioni normali. | Monitora la quantità di dati archiviati nello stato e il tempo necessario per completare un checkpoint. Se i checkpoint aumentano di dimensioni o richiedono molto tempo, l'applicazione dedica continuamente tempo a effettuare checkpoint e ha meno cicli per l'elaborazione effettiva dei dati. In alcuni punti, i checkpoint possono diventare troppo grandi o impiegare così tanto tempo da non funzionare. Oltre ai valori assoluti, i clienti dovrebbero considerare la possibilità di monitorare la frequenza di modifica con RATE(lastCheckpointSize) e RATE(lastCheckpointDuration). Se il valore aumenta lastCheckpointDuration continuamente, il superamento di questa soglia può indicare che l'applicazione non sta facendo i progressi previsti sui dati di input o che vi sono problemi di integrità dell'applicazione, come la contropressione. Per la risoluzione dei problemi, vedere[Crescita statale illimitata](troubleshooting-rt-stateleaks.md). | 
| lastCheckpointSize> soglia | Massimo | La dimensione massima prevista del checkpoint in condizioni normali. | Monitora la quantità di dati archiviati nello stato e il tempo necessario per completare un checkpoint. Se i checkpoint aumentano di dimensioni o richiedono molto tempo, l'applicazione dedica continuamente tempo a effettuare checkpoint e ha meno cicli per l'elaborazione effettiva dei dati. In alcuni punti, i checkpoint possono diventare troppo grandi o impiegare così tanto tempo da non funzionare. Oltre ai valori assoluti, i clienti dovrebbero considerare la possibilità di monitorare la frequenza di modifica con RATE(lastCheckpointSize) e RATE(lastCheckpointDuration). Se il valore aumenta lastCheckpointSize continuamente, il superamento di questa soglia può indicare che l'applicazione sta accumulando dati sullo stato. Se i dati sullo stato diventano troppo grandi, l'applicazione può esaurire la memoria durante il ripristino da un checkpoint, oppure il ripristino da un checkpoint potrebbe richiedere troppo tempo. Per la risoluzione dei problemi, vedere. [Crescita statale illimitata](troubleshooting-rt-stateleaks.md) | 
| heapMemoryUtilization> soglia | Massimo | Ciò fornisce una buona indicazione dell'utilizzo complessivo delle risorse dell'applicazione e può essere utilizzato per una scalabilità proattiva, a meno che l'applicazione non sia vincolata. I/O La heapMemoryUtilization dimensione massima prevista in condizioni normali, con un valore consigliato del 90 percento. | È possibile utilizzare questa metrica per monitorare l'utilizzo massimo della memoria da parte dei task manager nell'applicazione. Se l'applicazione raggiunge questa soglia, è necessario fornire più risorse. A tale scopo, è necessario abilitare il ridimensionamento automatico o aumentare il parallelismo dell'applicazione. Per ulteriori informazioni sull'aumento delle risorse, vedere. [Implementa la scalabilità delle applicazioni](how-scaling.md) | 
| cpuUtilization> soglia | Massimo | Ciò fornisce una buona indicazione dell'utilizzo complessivo delle risorse dell'applicazione e può essere utilizzato per una scalabilità proattiva, a meno che l'applicazione non sia vincolata. I/O La cpuUtilization dimensione massima prevista in condizioni normali, con un valore consigliato dell'80%. | È possibile utilizzare questa metrica per monitorare l'utilizzo massimo della CPU dei task manager nell'applicazione. Se l'applicazione raggiunge questa soglia, è necessario fornire più risorse. A tale scopo, è necessario abilitare il ridimensionamento automatico o aumentare il parallelismo dell'applicazione. Per ulteriori informazioni sull'aumento delle risorse, vedere. [Implementa la scalabilità delle applicazioni](how-scaling.md) | 
| threadsCount> soglia | Massimo | La threadsCount dimensione massima prevista in condizioni normali. | Puoi utilizzare questa metrica per controllare eventuali perdite di thread nei task manager dell'applicazione. Se questa metrica raggiunge questa soglia, controllate il codice dell'applicazione per verificare se i thread vengono creati senza essere chiusi. | 
| (oldGarbageCollectionTime \$1 100)/60\$1000 over 1 min period')> soglia | Massimo | La oldGarbageCollectionTime durata massima prevista. Si consiglia di impostare una soglia in modo che il tempo di raccolta dei rifiuti tipico sia pari al 60 percento della soglia specificata, ma la soglia corretta per l'applicazione può variare. | Se questa metrica aumenta continuamente, ciò può indicare la presenza di una perdita di memoria nei task manager dell'applicazione. | 
| RATE(oldGarbageCollectionCount) > soglia | Massimo | Il massimo previsto oldGarbageCollectionCount in condizioni normali. La soglia corretta per la tua candidatura può variare. | Se questa metrica aumenta continuamente, ciò può indicare la presenza di una perdita di memoria nei task manager dell'applicazione. | 
| Operator.currentOutputWatermark - Operator.currentInputWatermark > soglia | Minimo | L'incremento minimo previsto della filigrana in condizioni normali. La soglia corretta per la tua candidatura può variare. | Se questa metrica aumenta continuamente, ciò può indicare che l'applicazione sta elaborando eventi sempre più vecchi o che un'attività secondaria a monte non invia una filigrana da un periodo di tempo sempre più lungo. | 