Monitoraggio di AWS Glue con i parametri di Amazon CloudWatch - AWS Glue

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 di AWS Glue con i parametri di Amazon CloudWatch

Puoi creare il profilo delle attività AWS Glue e monitorarle utilizzando il profiler dei processi AWS Glue. Raccoglie i dati non elaborati dai processi AWS Glue e li elabora in parametri leggibili quasi in tempo reale archiviati in Amazon CloudWatch. Queste statistiche vengono conservate e aggregate in CloudWatch, per permettere l'accesso alle informazioni di cronologia per ottenere una panoramica migliore delle prestazioni dell'applicazione.

Nota

Potrebbero essere applicati costi aggiuntivi quando si abilitano i parametri del processo e vengono creati i parametri personalizzati di CloudWatch. Per ulteriori informazioni, consulta Prezzi di Amazon CloudWatch .

Panoramica dei parametri AWS Glue

Quando interagisci con AWS Glue, i parametri vengono inviati a CloudWatch. Puoi visualizzare questi parametri nella console AWS Glue (metodo preferenziale), nel pannello di controllo della console CloudWatch o in AWS Command Line Interface (AWS CLI).

Per visualizzare i parametri usando il pannello di controllo della console AWS Glue

Puoi visualizzare grafici dettagliati o di riepilogo dei parametri per un processo oppure grafici dettagliati per un'esecuzione di un processo.

  1. Accedi alla Console di gestione AWS, quindi apri la console AWS Glue all'indirizzo https://console.aws.amazon.com/glue/.

  2. Nel riquadro di navigazione, scegli Monitoraggio dell'esecuzione del processo.

  3. In Esecuzioni del processo, scegli Operazioni per interrompere un processo attualmente in esecuzione, visualizzare un processo o riavvolgerne il segnalibro.

  4. Seleziona un processo, quindi scegli Visualizza dettagli di esecuzione per visualizzare informazioni aggiuntive sull'esecuzione del processo.

Per visualizzare i parametri utilizzando il pannello di controllo della console CloudWatch

I parametri vengono raggruppati prima in base allo spazio dei nomi del servizio e successivamente in base alle diverse combinazioni di dimensioni all'interno di ogni spazio dei nomi.

  1. Aprire la console CloudWatch all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel riquadro di navigazione, scegli Parametri.

  3. Selezionare lo spazio dei nomi Glue.

Per visualizzare i parametri usando AWS CLI
  • Al prompt dei comandi utilizza il comando seguente.

    aws cloudwatch list-metrics --namespace Glue

AWS Glue invia i parametri a CloudWatch ogni 30 secondi e i pannelli di controllo dei parametri di CloudWatch sono configurati per visualizzare i parametri ogni minuto. I parametri AWS Glue rappresentano i valori delta rispetto ai valori segnalati in precedenza. Se appropriato, i pannelli di controllo dei parametri aggregano (sommano) i valori inviati ogni 30 secondi per ottenere un valore per l'intero ultimo minuto.

Comportamento dei parametri di AWS Glue per i processi Spark

I parametri di AWS Glue vengono abilitati al momento dell'inizializzazione di un GlueContext in uno script e vengono in genere aggiornati solo al termine di un'attività di Apache Spark. Rappresentano i valori aggregati per tutte le attività di Spark completate fino al momento attuale.

Tuttavia, i parametri Spark passati da AWS Glue a CloudWatch sono generalmente valori assoluti che rappresentano lo stato corrente nel momento in cui vengono segnalati. AWS Glue invia i parametri a CloudWatch ogni 30 secondi e i pannelli di controllo dei parametri mostrano in genere la media tra i punti dati ricevuti nell'ultimo minuto.

I nomi dei parametri AWS Glue sono tutti preceduti da uno dei seguenti tipi di prefisso:

  • glue.driver.: i parametri i cui nomi iniziano con questo prefisso rappresentano parametri AWS Glue aggregati da tutti gli executor nel driver Spark oppure parametri Spark corrispondenti al driver Spark.

  • glue.executorId.: executorId è il numero di un executor Spark specifico. Corrisponde agli executor elencati nei log.

  • glue.ALL.: i parametri i cui nomi iniziano con questo prefisso aggregano i valori di tutti gli executor Spark.

Parametri di AWS Glue

AWS Glue fornisce i profili e invia i seguenti parametri a CloudWatch ogni 30 secondi e il pannello di controllo dei parametri di AWS Glue li segnala una volta al minuto:

Parametro Descrizione

glue.driver.aggregate.bytesRead

Il numero di byte letti da tutte le origini dati da tutti i processi Spark completati in esecuzione in tutti gli executor.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: byte

Può essere utilizzato per monitorare:

  • I byte letti.

  • L'avanzamento del processo.

  • L'origine dati JDBC.

  • Problemi relativi ai segnalibri di processo.

  • Varianza tra esecuzioni di processo.

Questo parametro può essere utilizzato come il parametro glue.ALL.s3.filesystem.read_bytes, con la differenza che questo viene aggiornato alla fine di un processo Spark e acquisisce anche origini dati non S3.

glue.driver.aggregate.elapsedTime

Il tempo di ETL trascorso in millisecondi (non include i tempi di bootstrap del processo).

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: millisecondi

Può essere utilizzato per determinare il tempo medio di esecuzione di un processo.

Alcuni modi per utilizzare i dati:

  • Impostare allarmi per i ritardi.

  • Misurare la varianza tra esecuzioni di processo.

glue.driver.aggregate.numCompletedStages

Il numero di fasi completate nel processo.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: numero

Può essere utilizzato per monitorare:

  • L'avanzamento del processo.

  • La sequenza temporale per fase dell'esecuzione del processo, se correlata ad altri parametri.

Alcuni modi per utilizzare i dati:

  • Identificare fasi impegnative nell'esecuzione di un processo.

  • Impostare gli allarmi per picchi correlati (fasi impegnative) tra le esecuzioni dei lavori.

glue.driver.aggregate.numCompletedTasks

Il numero di attività completate nel processo.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: numero

Può essere utilizzato per monitorare:

  • L'avanzamento del processo.

  • Parallelismo all'interno di una fase.

glue.driver.aggregate.numFailedTasks

Il numero di processi non riusciti.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: numero

Può essere utilizzato per monitorare:

  • Anomalie dei dati che causano la non riuscita delle attività del processo.

  • Anomalie del cluster che causano la non riuscita delle attività del processo.

  • Anomalie dello script che causano la non riuscita delle attività del processo.

I dati possono essere utilizzati per impostare allarmi per errori maggiori che potrebbero suggerire anomalie nei dati, nel cluster o negli script.

glue.driver.aggregate.numKilledTasks

Il numero di attività interrotte.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: numero

Può essere utilizzato per monitorare:

  • Anomalie nella differenza dei dati che provocano eccezioni (OOM) che interrompono le attività.

  • Anomalie dello script che provocano eccezioni (OOM) che interrompono le attività.

Alcuni modi per utilizzare i dati:

  • Impostare allarmi per errori maggiori che potrebbero suggerire anomalie nei dati.

  • Impostare allarmi per errori maggiori che potrebbero suggerire anomalie nel cluster.

  • Impostare allarmi per errori maggiori che potrebbero suggerire anomalie nello script.

glue.driver.aggregate.recordsRead

Il numero di record letti da tutte le origini dati da tutti i processi Spark completati in esecuzione in tutti gli executor.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: numero

Può essere utilizzato per monitorare:

  • Record letti.

  • L'avanzamento del processo.

  • L'origine dati JDBC.

  • Problemi relativi ai segnalibri di processo.

  • Differenza nelle esecuzioni dei processi nei giorni.

Questo parametro può essere utilizzato come il parametro glue.ALL.s3.filesystem.read_bytes, con la differenza che questo viene aggiornato alla fine di un processo Spark.

glue.driver.aggregate.shuffleBytesWritten

Numero di byte scritti da tutti gli executor per distribuire i dati in modo casuale dal report precedente (aggregati in base al pannello di controllo dei parametri di AWS Glue come il numero di byte scritti a questo scopo nel minuto precedente).

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: byte

Può essere utilizzato per monitorare: la distribuzione casuale dei dati nei processi (join di grandi dimensioni, groupBy, repartition, coalesce).

Alcuni modi per utilizzare i dati:

  • Ripartizionare o decomprimere file di input di grandi dimensioni prima di ulteriori elaborazioni.

  • Ripartizionare i dati in modo più uniforme per evitare i tasti di scelta rapida.

  • Prefiltrare i dati prima delle operazioni di join o groupBy.

glue.driver.aggregate.shuffleLocalBytesRead

Numero di byte letti da tutti gli executor per distribuire i dati in modo casuale dal report precedente (aggregati in base al pannello di controllo dei parametri di AWS Glue come il numero di byte letti a questo scopo nel minuto precedente).

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue, viene utilizzata una statistica SUM (Somma) per l'aggregazione.

Unità: byte

Può essere utilizzato per monitorare: la distribuzione casuale dei dati nei processi (join di grandi dimensioni, groupBy, repartition, coalesce).

Alcuni modi per utilizzare i dati:

  • Ripartizionare o decomprimere file di input di grandi dimensioni prima di ulteriori elaborazioni.

  • Ripartizionare i dati in modo più uniforme utilizzando i tasti di scelta rapida.

  • Prefiltrare i dati prima delle operazioni di join o groupBy.

glue.driver.BlockManager.disk.diskSpaceUsed_MB

Numero di megabyte di spazio su disco utilizzati in tutti gli executor.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(valutazione).

Statistiche valide: Average (Media). Si tratta di un parametro Spark, riportato come valore assoluto.

Unità: megabyte

Può essere utilizzato per monitorare:

  • Spazio su disco utilizzato per i blocchi che rappresentano partizioni RDD memorizzate nella cache.

  • Spazio su disco utilizzato per i blocchi che rappresentano uscite shuffle intermedie.

  • Spazio su disco utilizzato per i blocchi che rappresentano le trasmissioni.

Alcuni modi per utilizzare i dati:

  • Identificare gli errori dei processi dovuti a un maggiore utilizzo del disco.

  • Identificare partizioni di grandi dimensioni con conseguente riversamento o distribuzione casuale.

  • Aumentare la capacità DPU sottoposta a provisioning per risolvere questi problemi.

glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

Numero di executor di processo attivi.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(valutazione).

Statistiche valide: Average (Media). Si tratta di un parametro Spark, riportato come valore assoluto.

Unità: numero

Può essere utilizzato per monitorare:

  • L'attività dei processi.

  • Calo degli executor (con solo pochi executor attivi)

  • Parallelismo attuale a livello di executor.

Alcuni modi per utilizzare i dati:

  • Ripartizionare o decomprimere i file di input di grandi dimensioni in anticipo se il cluster è sottoutilizzato.

  • Identificare i ritardi di esecuzione delle fasi o dei processi dovuti a scenari di rallentamento.

  • • Confrontare con numberMaxNeededExecutors per comprendere il backlog per il provisioning di più DPU.

glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

Il numero massimo di executor di processo (attivi e in sospeso) necessari per soddisfare il carico corrente.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(valutazione).

Statistiche valide: Maximum (Massimo). Si tratta di un parametro Spark, riportato come valore assoluto.

Unità: numero

Può essere utilizzato per monitorare:

  • L'attività dei processi.

  • Parallelismo attuale a livello di executor e backlog delle attività in sospeso non ancora pianificate per la non disponibilità degli executor, a causa della capacità DPU o di executor interrotti/non riusciti.

Alcuni modi per utilizzare i dati:

  • Identificare sospensione/backlog della coda di pianificazione.

  • Identificare i ritardi di esecuzione delle fasi o dei processi dovuti a scenari di rallentamento.

  • Confrontare con numberAllExecutors per comprendere il backlog per il provisioning di più DPU.

  • Aumentare la capacità DPU sottoposta a provisioning per correggere il backlog dell'executor in sospeso.

glue.driver.jvm.heap.usage

glue.executorId.jvm.heap.usage

glue.ALL.jvm.heap.usage

Frazione di memoria usata dall'heap JVM per questo driver (dimensione: 0-1) per driver, executor identificato da executorId o TUTTI gli executor.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(valutazione).

Statistiche valide: Average (Media). Si tratta di un parametro Spark, riportato come valore assoluto.

Unità: percentuale

Può essere utilizzato per monitorare:

  • Condizioni di memoria insufficiente (OOM) del driver utilizzando glue.driver.jvm.heap.usage.

  • Condizioni di memoria insufficiente (OOM) dell'executor utilizzando glue.ALL.jvm.heap.usage.

Alcuni modi per utilizzare i dati:

  • Identificare gli ID e le fasi dell'executor che consumano memoria.

  • Identificare gli ID e le fasi dell'executor in calo.

  • Identificare una condizione di memoria esaurita (OOM) del driver.

  • Identificare una condizione di memoria insufficiente (OOM) dell'executor e ottenere l'ID dell'executor corrispondente, in modo da avere una traccia di stack dal log dell'executor.

  • Identificare i file o le partizioni con potenziali differenze dei dati che causano ritardi o condizioni di memoria insufficiente (OOM).

glue.driver.jvm.heap.used

glue.executorId.jvm.heap.used

glue.ALL.jvm.heap.used

Il numero di byte di memoria utilizzati dall'heap JVM per il driver, l'executor identificato da executorId o TUTTI gli executor.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(valutazione).

Statistiche valide: Average (Media). Si tratta di un parametro Spark, riportato come valore assoluto.

Unità: byte

Può essere utilizzato per monitorare:

  • Condizioni di memoria insufficiente (OOM) del driver.

  • Condizioni di memoria insufficiente (OOM) dell'executor.

Alcuni modi per utilizzare i dati:

  • Identificare gli ID e le fasi dell'executor che consumano memoria.

  • Identificare gli ID e le fasi dell'executor in calo.

  • Identificare una condizione di memoria esaurita (OOM) del driver.

  • Identificare una condizione di memoria insufficiente (OOM) dell'executor e ottenere l'ID dell'executor corrispondente, in modo da avere una traccia di stack dal log dell'executor.

  • Identificare i file o le partizioni con potenziali differenze dei dati che causano ritardi o condizioni di memoria insufficiente (OOM).

glue.driver.s3.filesystem.read_bytes

glue.executorId.s3.filesystem.read_bytes

glue.ALL.s3.filesystem.read_bytes

Numero di byte letti da Amazon S3 dal driver, un executor identificato da executorId o TUTTI gli executor dal report precedente (aggregati in base al pannello di controllo dei parametri di AWS Glue come il numero di byte letti nel minuto precedente).

Dimensioni valide: JobName, JobRunId e Type (valutazione).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue viene utilizzata una statistica SUM (Somma) per l'aggregazione. L'area sotto la curva nel pannello di controllo dei parametri di AWS Glue può essere utilizzata per confrontare visivamente i byte letti da due diverse esecuzioni di processi.

Unità: byte.

Può essere utilizzato per monitorare:

  • Spostamento di dati ETL.

  • L'avanzamento del processo.

  • Problemi relativi ai segnalibri di processo (dati elaborati, rielaborati e saltati).

  • Confronto tra letture e velocità di importazione da origini dati esterne.

  • Varianza tra esecuzioni di processo.

I dati risultanti possono essere utilizzati per:

  • Pianificazione della capacità DPU.

  • Impostare gli allarmi per picchi o riduzioni di grandi dimensioni nei dati letti per le esecuzioni le fasi dei processi.

glue.driver.s3.filesystem.write_bytes

glue.executorId.s3.filesystem.write_bytes

glue.ALL.s3.filesystem.write_bytes

Numero di byte scritti da Amazon S3 dal driver, un executor identificato da executorId o TUTTI gli executor dal report precedente (aggregati in base al pannello di controllo dei parametri di AWS Glue come il numero di byte scritti nel minuto precedente).

Dimensioni valide: JobName, JobRunId e Type (valutazione).

Statistiche valide: SUM (Somma). Questo parametro è un valore delta rispetto all'ultimo valore riportato, quindi nel pannello di controllo dei parametri di AWS Glue viene utilizzata una statistica SUM (Somma) per l'aggregazione. L'area sotto la curva nel pannello di controllo dei parametri di AWS Glue può essere utilizzata per confrontare visivamente i byte scritti da due diverse esecuzioni di processi.

Unità: byte

Può essere utilizzato per monitorare:

  • Spostamento di dati ETL.

  • L'avanzamento del processo.

  • Problemi relativi ai segnalibri di processo (dati elaborati, rielaborati e saltati).

  • Confronto tra letture e velocità di importazione da origini dati esterne.

  • Varianza tra esecuzioni di processo.

Alcuni modi per utilizzare i dati:

  • Pianificazione della capacità DPU.

  • Impostare gli allarmi per picchi o riduzioni di grandi dimensioni nei dati letti per le esecuzioni le fasi dei processi.

glue.driver.streaming.numRecords

Numero di record ricevuti in un micro-batch. Questo parametro è disponibile solo per processi di streaming AWS Glue con AWS Glue versione 2.0 e successive.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Valid Statistics: Sum (Somma), Maximum (Massimo), Minimum (Minimo), Average (Media), Percentile (Percentuale)

Unità: numero

Può essere utilizzato per monitorare:

  • Record letti.

  • L'avanzamento del processo.

glue.driver.streaming.batchProcessingTimeInMs

Il tempo necessario per elaborare i batch in millisecondi. Questo parametro è disponibile solo per processi di streaming AWS Glue con AWS Glue versione 2.0 e successive.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(conteggio).

Valid Statistics: Sum (Somma), Maximum (Massimo), Minimum (Minimo), Average (Media), Percentile (Percentuale)

Unità: numero

Può essere utilizzato per monitorare:

  • L'avanzamento del processo.

  • Prestazioni dello script.

glue.driver.system.cpuSystemLoad

glue.executorId.system.cpuSystemLoad

glue.ALL.system.cpuSystemLoad

Frazione del carico di sistema della CPU usata (dimensione: 0-1) dal driver, da un executor identificato da executorId o da tutti gli executor.

Dimensioni valide: JobName (il nome del processo AWS Glue), JobRunId (l'ID JobRun o ALL) e Type(valutazione).

Statistiche valide: Average (Media). Questo parametro è riportato come valore assoluto.

Unità: percentuale

Può essere utilizzato per monitorare:

  • Carico della CPU del driver.

  • Carico della CPU dell'executor.

  • Rilevamento di executor o fasi associati alla CPU o all'IO in un processo.

Alcuni modi per utilizzare i dati:

  • Pianificazione della capacità DPU insieme alle metriche IO (Byte letti/casuali, parallelismo dell'attività) e al numero massimo di parametri di executor necessari.

  • Identificare il rapporto CPU/IO. Questo consente il ripartizionamento e l'aumento della capacità di provisioning per i processi a esecuzione prolungata con set di dati suddivisibili con minore utilizzo della CPU.

Dimensioni dei parametri di AWS Glue

I parametri di AWS Glue utilizzano lo spazio dei nomi AWS Glue e forniscono i parametri per le seguenti dimensioni:

Dimensione Descrizione

JobName

Questa dimensione filtra i parametri di tutte le esecuzioni di processo di uno specifico processo AWS Glue.

JobRunId

Questa dimensione filtra i parametri di uno specifico processo AWS Glue eseguito da un ID JobRun o ALL.

Type

Questa dimensione filtra i parametri in base a count (numero aggregato) o gauge (valore in un determinato momento).

Per ulteriori informazioni, consultare la Guida per l'utente di Amazon CloudWatch.