Monitoraggio dei processi - Amazon EMR

Monitoraggio dei processi

Monitoraggio dei processi con Amazon CloudWatch Events

Amazon EMR su EKS emette eventi quando cambia lo stato dell'esecuzione di un processo. Per ogni evento sono disponibili informazioni, ad esempio la data e l'ora in cui si è verificato, nonché ulteriori dettagli, ad esempio l'ID del cluster virtuale e l'ID dell'esecuzione di processo che ha interessato.

È possibile utilizzare gli eventi per tenere traccia dell'attività e dell'integrità di un processo eseguito in un cluster virtuale. Amazon CloudWatch Events può essere utilizzato anche per definire un'operazione da effettuare quando un processo genera un evento che corrisponde a un modello specificato dall'utente. Gli eventi sono utili per monitorare un'occorrenza specifica durante il ciclo di vita dell'esecuzione di un processo. Ad esempio, è possibile monitorare quando l'esecuzione di un processo cambia stato da submitted a running. Per ulteriori informazioni su CloudWatch Events, consulta la Guida per l'utente di Amazon CloudWatch Events.

La tabella seguente elenca gli eventi di Amazon EMR su EKS, insieme allo stato o alla modifica dello stato che l'evento indica, la gravità dell'evento e messaggi relativi agli eventi. Ogni evento è rappresentato come un oggetto JSON inviato automaticamente a un flusso di eventi. L'oggetto JSON include ulteriori dettagli sull'evento. L'oggetto JSON è particolarmente importante quando si configurano delle regole per l'elaborazione di eventi mediante CloudWatch Events, in quanto le regole cercano di stabilire una corrispondenza con dei modelli nell'oggetto JSON. Per ulteriori informazioni, consulta Eventi e modelli di eventi ed Eventi Amazon EMR su EKS nella Guida per l'utente di Eventi Amazon CloudWatch.

Eventi di modifica dello stato dell'esecuzione di processo
Stato Gravità Message
SUBMITTED (INVIATO) INFO L'esecuzione di processo JobRunId (JobRunName) è stata inviata correttamente al cluster virtuale VirtualClusterId alle Time UTC.
RUNNING (ESECUZIONE IN CORSO) INFO L'elaborazione dell'esecuzione di processo JobRunId (JobRunName) nel cluster virtuale VirtualClusterId è iniziata alle Time.
COMPLETED INFO L'esecuzione di processo JobRunId (JobRunName) nel cluster virtuale VirtualClusterId è stata completata alle Time. L'esecuzione di processo è stata avviata alle Time ed è stata completata in Num minuti.
CANCELLED WARN La richiesta di annullamento è andata a buon fine per l'esecuzione di processo JobRunId (JobRunName) nel cluster virtuale VirtualClusterId alle Time e l'esecuzione di processo è ora annullata.
Non riuscito ERROR L'esecuzione di processo JobRunId (JobRunName) nel cluster virtuale VirtualClusterId ha avuto esito negativo alle Time.

Automazione di Amazon EMR su EKS con CloudWatch Events

Amazon CloudWatch Events consente di automatizzare i servizi AWS per rispondere a eventi di sistema, come i problemi relativi alla disponibilità delle applicazioni o le modifiche delle risorse. Gli eventi dei servizi AWS vengono recapitati a CloudWatch Events quasi in tempo reale. Puoi compilare regole semplici che indichino quali eventi sono considerati di interesse per te e quali operazioni automatizzate intraprendere quando un evento corrisponde a una regola. Le azioni che possono essere attivate automaticamente includono le seguenti:

  • Richiamo di una funzione AWS Lambda

  • Richiamo del comando di esecuzione di Amazon EC2

  • Inoltro dell'evento a Amazon Kinesis Data Streams

  • Attivazione di una macchina a stati AWS Step Functions

  • Notifica di un argomento Amazon Simple Notification Service (SNS) o una coda Amazon Simple Queue Service (SQS)

Alcuni esempi dell'utilizzo di CloudWatch Events con Amazon EMR su EKS includono:

  • Attivazione di una funzione Lambda quando un'esecuzione di processo ha esito positivo

  • Notifica di un argomento Amazon SNS quando un'esecuzione di processo ha esito negativo

Gli eventi CloudWatch Events per "detail-type:" "EMR Job Run State Change" sono generati da Amazon EMR su EKS per le modifiche di stato di SUBMITTED, RUNNING, CANCELLED, FAILED e COMPLETED.

Esempio: impostare una regola che richiami Lambda

Utilizza la procedura seguente per impostare una regola di CloudWatch Events che richiami Lambda quando è presente un evento "EMR Job Run State Change (Modifica stato esecuzione di processo EMR)".

aws events put-rule \ --name cwe-test \ --event-pattern '{"detail-type": ["EMR Job Run State Change"]}'

Aggiungi la funzione Lambda che possiedi come nuovo target e fornisci a CloudWatch Events l'autorizzazione per richiamare la funzione Lambda nel modo seguente. Sostituisci 123456789012 con l'ID del tuo account.

aws events put-targets \ --rule cwe-test \ --targets Id=1,Arn=arn:aws:lambda:us-east-1:123456789012:function:MyFunction
aws lambda add-permission \ --function-name MyFunction \ --statement-id MyId \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com
Nota

Non è possibile scrivere un programma che dipenda dall'ordine o dall'esistenza di eventi di notifica, poiché questi ultimi potrebbero essere fuori sequenza o mancanti. Gli eventi vengono emessi nel miglior modo possibile.

Come monitorare il driver pod di un processo con una policy di ripetizione utilizzando Eventi Amazon CloudWatch

Utilizzando eventi di CloudWatch, puoi monitorare driver pod creati nei processi che hanno policy di ripetizione. Per ulteriori informazioni sul tagging, consulta Monitoraggio di un processo con una policy di ripetizione in questa guida.