Monitorare le prestazioni delle funzioni con Lambda Insights di Amazon CloudWatch - AWS Lambda

Monitorare le prestazioni delle funzioni con Lambda Insights di Amazon CloudWatch

Amazon CloudWatch Lambda Insights raccoglie e aggrega parametri e registri delle prestazioni del runtime delle funzioni Lambda per le applicazioni serverless. In questa pagina viene descritto come abilitare e utilizzare Lambda Insights per eseguire la diagnosi dei problemi relativi alle funzioni Lambda.

Come Lambda Insights monitora le applicazioni serverless

CloudWatch Lambda Insights è una soluzione di monitoraggio e risoluzione dei problemi per applicazioni serverless in esecuzione su AWS Lambda. La soluzione raccoglie, aggrega e riassume le metriche a livello di sistema, tra cui il tempo della CPU, la memoria, l'utilizzo del disco e della rete. Vengono inoltre raccolte, aggregate e riepilogate informazioni diagnostiche quali avvii a freddo e arresti del worker Lambda per aiutare a isolare i problemi con le funzioni Lambda e risolverli rapidamente.

Lambda Insights utilizza una nuova estensione CloudWatch Lambda Insights che viene fornita come livello Lambda. Quando si abilita questa estensione su una funzione Lambda per un runtime supportato, essa raccoglie parametri a livello di sistema ed emette un singolo evento di log delle prestazioni per ogni chiamata di tale funzione Lambda. CloudWatch utilizza la formattazione dei parametri incorporata per estrarre i parametri dagli eventi di log. Per ulteriori informazioni, consulta l'argomento relativo all'Uso delle estensioni AWS Lambda.

Il livello Lambda Insights estende CreateLogStream e PutLogEvents per il gruppo di log /aws/lambda-insights/.

Prezzi

Quando so abilita Lambda Insights per la funzione Lambda, Lambda Insights riporta 8 parametri per funzione e ogni chiamata di funzione invia circa 1 KB di dati di log a CloudWatch. Paghi solo in base ai parametri e ai registri riportati per la tua funzione da Lambda Insights. Non sono previste tariffe minime né policy di utilizzo del servizio obbligatorie. Non si paga per Lambda Insights se la funzione non viene richiamata. Per informazioni sui prezzi, consulta la pagina Prezzi di Amazon CloudWatch.

Runtime supportati

È possibile utilizzare Lambda Insights con qualsiasi runtime che supporta le estensioni Lambda.

Attivazione di Lambda Insights nella console Lambda

È possibile abilitare il monitoraggio Lambda Insights avanzato su funzioni Lambda nuove ed esistenti. Quando si abilita Lambda Insights su una funzione nella console Lambda per un runtime supportato, Lambda aggiunge l'estensione Lambda Insights come livello alla funzione e verifica o prova ad allegare la policy CloudWatchLambdaInsightsExecutionRolePolicy al ruolo di esecuzione della funzione.

Per attivare Lambda Insights nella console Lambda
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegliere la funzione.

  3. Scegli la scheda Configurazione.

  4. Dal menu a sinistra, scegli Strumenti di monitoraggio e operazioni.

  5. Nel riquadro Strumenti di monitoraggio aggiuntivi scegli Modifica.

  6. In CloudWatch Lambda Insights, attiva Monitoraggio avanzato.

  7. Selezionare Salva.

Attivazione di Lambda Insights a livello di programmazione

È inoltre possibile abilitare Lambda Insights utilizzando la AWS Command Line Interface (AWS CLI), la CLI (SAM) AWS Serverless Application Model, CloudFormation o il AWS Cloud Development Kit (AWS CDK). Quando si abilita Lambda Insights a livello di programmazione su una funzione per un runtime supportato, CloudWatch collega la policy CloudWatchLambdaInsightsExecutionRolePolicy al ruolo di esecuzione della funzione.

Per ulteriori informazioni, consulta le Nozioni di base su Lambda Insights nella Guida per l'utente di Amazon CloudWatch.

Uso del pannello di controllo di Lambda Insights

Il pannello di controllo Lambda Insights ha due visualizzazioni nella console CloudWatch: la panoramica multifunzione e la vista a funzione singola. La panoramica multi-funzione aggrega i parametri di runtime per le funzioni Lambda nell'account AWS attuale e nella regione. La vista a funzione singola mostra i parametri di runtime disponibili per una singola funzione Lambda.

È possibile utilizzare la panoramica multifunzione del pannello di controllo Lambda Insights nella console CloudWatch per identificare le funzioni Lambda sovrautilizzate e sottoutilizzate. È possibile utilizzare la visualizzazione a funzione singola del pannello di controllo Lambda Insights nella console CloudWatch per risolvere i problemi delle singole richieste.

Per visualizzare i parametri di runtime per tutte le funzioni
  1. Aprire la pagina Multifunzione nella console CloudWatch.

  2. Scegli tra gli intervalli di tempo predefiniti oppure scegli un intervallo di tempo personalizzato.

  3. (Facoltativo) Scegliere Add to dashboard (Aggiungi a pannello di controllo) per aggiungere i widget al dashboard CloudWatch.

    La panoramica multifunzione sul pannello di controllo Lambda Insights.
Per visualizzare le metriche di runtime di una singola funzione
  1. Aprire la pagina Funzione singola nella console CloudWatch.

  2. Scegli tra gli intervalli di tempo predefiniti oppure scegli un intervallo di tempo personalizzato.

  3. (Facoltativo) Scegliere Add to dashboard (Aggiungi a pannello di controllo) per aggiungere i widget al dashboard CloudWatch.

    La vista a funzione singola sul pannello di controllo Lambda Insights.

Per ulteriori informazioni, vedere Creazione e utilizzo dei widget nei pannelli di controllo CloudWatch.

Esempio di flusso di lavoro per rilevare anomalie delle funzioni

È possibile utilizzare la panoramica multifunzione sul pannello di controllo Lambda Insights per identificare e rilevare anomalie della memoria di calcolo con la funzione. Ad esempio, se la panoramica multifunzione indica che una funzione utilizza una grande quantità di memoria, è possibile visualizzare metriche dettagliate sull'utilizzo della memoria nel riquadro Uso memoria. Puoi quindi accedere al pannello di controllo Parametri per abilitare il rilevamento delle anomalie o creare un allarme.

Per abilitare il rilevamento delle anomalie per una funzione
  1. Aprire la pagina Multifunzione nella console CloudWatch.

  2. In Riepilogo funzione, scegliere il nome della funzione.

    La vista a funzione singola si apre con le metriche di runtime della funzione.

    Il riquadro di riepilogo delle funzioni nel pannello di controllo Lambda Insights.
  3. Nel riquadro Uso memoria scegliere i tre punti verticali, quindi scegliere Visualizza in metriche per aprire il pannello di controllo Parametri .

    Il menu del riquadro Memory Usage (Utilizzo memoria).
  4. Nella scheda Graphed metrics (Parametri grafici), nella colonna Actions (Operazioni), scegli la prima icona per abilitare il rilevamento delle anomalie per la funzione.

    Scheda Graphed metrics (Parametri nel grafico) del riquadro Memory Usage (Uso memoria).

Per ulteriori informazioni, consulta Utilizzo del rilevamento delle anomalie di CloudWatch.

Esempio di flusso di lavoro utilizzando query per risolvere i problemi di una funzione

È possibile utilizzare la visualizzazione a funzione singola nel pannello di controllo Lambda Insights per identificare la causa principale di un picco nella durata della funzione. Ad esempio, se la panoramica multifunzione indica un notevole aumento della durata della funzione, è possibile sospendere o scegliere ciascuna funzione nel riquadro Durata per determinare quale funzione sta causando l'aumento. È quindi possibile accedere alla visualizzazione a funzione singola ed esaminare i registri applicazioni per determinare la causa principale.

Per eseguire query su una funzione
  1. Aprire la pagina Multifunzione nella console CloudWatch.

  2. Nel riquadro Durata scegliere la funzione per filtrare le metriche della durata.

    Funzione scelta nel riquadro Durata.
  3. Aprire la pagina Funzione singola.

  4. Scegli l'elenco a discesa Filtra metriche per nome funzione, quindi scegli la funzione.

  5. Per visualizzare i 1000 registri applicazioni più recenti, scegliere la scheda Registri applicazioni.

  6. Esaminare il timestamp e il messaggio per identificare la richiesta di chiamata per cui si desidera risolvere i problemi.

    I 1000 registri applicazioni più recenti.
  7. Per visualizzare le 1000 invocazioni più recenti, scegliere la scheda Invocazioni .

  8. Selezionare il timestamp o il messaggio per la richiesta di invocazione per cui si desidera risolvere i problemi.

    Selezione di una richiesta di chiamata recente.
  9. Scegliere l'elenco a discesa Visualizza registri quindi scegliere Visualizza registri prestazioni.

    Viene visualizzata una query generata automaticamente per la funzione nel pannello di controllo Logs Insights (Analisi registri) .

  10. Scegliere Esegui query per generare un messaggio Log per la richiesta di chiamata.

    Esecuzione di query sulla funzione selezionata nel pannello di controllo Logs Insights (Analisi registri).

Fasi successive