Surveillance pour Lambda SnapStart - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Surveillance pour Lambda SnapStart

Vous pouvez surveiller vos fonctions Lambda SnapStart en utilisant Amazon CloudWatch, AWS X-Ray et l’API Accès aux données de télémétrie en temps réel pour les extensions à l’aide de l’API de télémétrie.

Note

Les variables d'environnement AWS_LAMBDA_LOG_GROUP_NAME et AWS_LAMBDA_LOG_STREAM_NAME ne sont pas disponibles dans les fonctions SnapStart Lambda.

Comprendre le comportement de journalisation et de facturation avec SnapStart

Il existe quelques différences avec le format du flux de journal CloudWatch pour les fonctions SnapStart :

  • Journaux d’initialisation – Lorsqu’un nouvel environnement d’exécution est créé, le REPORT n’inclut pas le champ Init Duration. C’est parce que Lambda initialise les fonctions SnapStart lorsque vous créez une version au lieu de le faire pendant l’invocation de la fonction. Pour les fonctions SnapStart, le champ Init Duration se trouve dans l’enregistrement INIT_REPORT. Cet enregistrement indique les détails de la durée du Phase d’initialisation, y compris la durée de tout hook d’exécution beforeCheckpoint.

  • Journaux d’invocation – Lorsqu’un nouvel environnement d’exécution est créé, le REPORT inclut les champs Restore Duration et Billed Restore Duration :

    • Restore Duration : le temps nécessaire à Lambda pour restaurer un instantané, charger l’exécution et exécuter les éventuels hooks d’exécution après restauration. Le processus de restauration des instantanés peut inclure du temps consacré à des activités en dehors de la MicroVM. Ce temps est indiqué dans Restore Duration.

    • Billed Restore Duration : le temps nécessaire à Lambda pour charger l’exécution et exécuter les éventuels hooks d’exécution après restauration.

Note

Comme pour toutes les fonctions Lambda, des frais de durée s’appliquent au code exécuté dans le gestionnaire de fonctions. Pour les fonctions SnapStart, les frais de durée s’appliquent également au code d’initialisation déclaré en dehors du gestionnaire, au temps de chargement de l’environnement d’exécution et à tout code s’exécutant dans un hook d’exécution.

La durée du démarrage à froid est la somme de Restore Duration + Duration.

L’exemple suivant est une demande Lambda Insights qui renvoie les percentiles de latence pour les fonctions SnapStart. Pour plus d’informations sur les demandes Lambda Insights, consultez Exemple de flux de travail utilisant des demandes pour dépanner une fonction.

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

Suivi actif de X-Ray pour SnapStart

Vous pouvez utiliser X-Ray pour suivre les demandes adressées aux fonctions Lambda SnapStart. Il existe quelques différences avec les sous-segments X-Ray pour les fonctions SnapStart :

  • Il n’existe aucun sous-segment Initialization pour les fonctions SnapStart.

  • Le sous-segment Restore indique le temps nécessaire à Lambda pour restaurer un instantané, charger l’exécution et exécuter les éventuels hooks d’exécution après restauration. Le processus de restauration des instantanés peut inclure du temps consacré à des activités en dehors de la MicroVM. Cette heure est indiquée dans le sous-segment Restore. Le temps passé en dehors de la microVM pour restaurer un instantané ne vous est pas facturé.

Événements de l’API de télémétrie pour SnapStart

Lambda envoie les événements SnapStart suivants à API de télémétrie :

  • platform.restoreStart – Indique l’heure à laquelle la phase Restore a commencé.

  • platform.restoreRuntimeDone – Indique si la phase Restore a réussi. Lambda envoie ce message lorsque l’environnement d’exécution envoie une demande d’API d’exécution restore/next. Il existe trois statuts possibles : succès, échec et dépassement de délai.

  • platform.restoreReport – Indique la durée de la phase Restore et le nombre de millisecondes pour lesquelles vous avez été facturé pendant cette phase.

Métriques de l’URL de la fonction et de l’Amazon API Gateway

Si vous créez une API Web à l’aide d’API Gateway, vous pouvez utiliser la métrique IntegrationLatency pour mesurer la latence de bout en bout (le temps entre le moment où API Gateway relaie une demande au backend et celui où il reçoit une réponse du backend).

Si vous utilisez une URL de la fonction Lambda, vous pouvez utiliser la métrique UrlRequestLatency pour mesurer la latence de bout en bout (le temps entre le moment où l’URL de la fonction reçoit une demande et celui où l’URL de la fonction renvoie une réponse).