Monitoraggio per Lambda SnapStart - AWS Lambda

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 per Lambda SnapStart

È possibile monitorare le funzioni Lambda SnapStart utilizzando Amazon CloudWatch, AWS X-Ray e l'Accesso ai dati di telemetria in tempo reale per le estensioni tramite l'API Telemetry.

Nota

Le variabili di ambiente AWS_LAMBDA_LOG_GROUP_NAME e AWS_LAMBDA_LOG_STREAM_NAME non sono disponibili nelle funzioni Lambda SnapStart.

Informazioni sul comportamento di registrazione e fatturazione con SnapStart

Esistono alcune differenze con il formato del flusso di log di CloudWatch per le funzioni SnapStart:

  • Log di inizializzazione: quando viene creato un nuovo ambiente di esecuzione, il REPORT non include il campo Init Duration. Questo perché Lambda inizializza le funzioni SnapStart quando si crea una versione anziché durante l'invocazione della funzione. Per le funzioni SnapStart, il campo Init Duration è nel record INIT_REPORT. Questo record mostra i dettagli della durata di Fase di init, inclusa la durata di eventuali hook di runtime beforeCheckpoint.

  • Log di invocazione: quando viene creato un nuovo ambiente di esecuzione, il REPORT include i campi Restore Duration e Billed Restore Duration:

    • Restore Duration: il tempo impiegato da Lambda per ripristinare uno snapshot, caricare il runtime (JVM) ed eseguire qualsiasi hook di runtime . Il processo di ripristino degli snapshot può includere il tempo dedicato ad attività esterne alla MicroVM. Questo tempo non è riportato in Restore Duration.

    • Billed Restore Duration: il tempo impiegato da Lambda per ripristinare uno snapshot, caricare il runtime (JVM) ed eseguire qualsiasi hook di runtime .

Nota

Come per tutte le funzioni Lambda, i costi di durata si applicano al codice eseguito nell'handler delle funzioni. Per le funzioni SnapStart, i costi di durata si applicano anche al codice di inizializzazione dichiarato all'esterno dell'handler, al tempo necessario per il caricamento del runtime e a qualsiasi codice eseguito in un hook di runtime.

La durata dell'avviamento a freddo è la somma di Restore Duration e Duration.

L'esempio seguente è una query Lambda Insights che restituisce i percentili di latenza per le funzioni SnapStart. Per ulteriori informazioni sulle query Lambda Insights, consulta Esempio di flusso di lavoro utilizzando query per risolvere i problemi di una funzione.

filter @type = "REPORT" | parse @log /\d+:\/aws\/lambda\/(?<function>.*)/ | parse @message /Restore Duration: (?<restoreDuration>.*?) ms/ | stats count(*) as invocations, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 50) as p50, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 90) as p90, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99) as p99, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99.9) as p99.9 group by function, (ispresent(@initDuration) or ispresent(restoreDuration)) as coldstart | sort by coldstart desc

Tracciamento attivo X-Ray per SnapStart

È possibile utilizzare X-Ray per tracciare le richieste alle funzioni Lambda SnapStart. I sottosegmenti X-Ray per le funzioni SnapStart presentano alcune differenze:

  • Non esiste un sottosegmento Initialization per le funzioni SnapStart.

  • Il sottosegmento mostra il tempo impiegato da Lambda per ripristinare uno snapshot, caricare il runtime (JVM) ed eseguire qualsiasi hook di runtime . Il processo di ripristino degli snapshot può includere il tempo dedicato ad attività esterne alla MicroVM. Questa volta è riportato nel segmento secondario Restore. Non ti viene addebitato il tempo trascorso fuori dalla microVM per il ripristino di una snapshot.

Eventi dell'API di telemetria per SnapStart

Lambda invia i seguenti eventi SnapStart all'API di telemetria:

  • platform.restoreStart: mostra l'ora in cui è iniziata la fase Restore.

  • platform.restoreRuntimeDone: indica se la fase Restore è riuscita correttamente. Lambda genera questo messaggio quando il runtime invia una richiesta API di runtime restore/next. Ci sono tre stati possibili: riuscito, errore e timeout.

  • platform.restoreReport: mostra quanto è durata la fase Restore e quanti millisecondi sono stati fatturati durante questa fase.

Parametri di Gateway Amazon API e della funzione URL

Se crei un'API Web utilizzando Gateway API, puoi utilizzare il parametro IntegrationLatency per misurare la latenza end-to-end (il tempo che intercorre tra il momento in cui Gateway API inoltra una richiesta al backend e il momento in cui riceve una risposta dal backend).

Se utilizzi l'URL di una funzione Lambda, puoi utilizzare il parametro URLRequestLatency per misurare la latenza end-to-end (il tempo che intercorre tra il momento in cui la funzione URL riceve una richiesta e il momento in cui restituisce una risposta).