Überwachung für Lambda SnapStart
Sie können Ihre Lambda-SnapStart-Funktionen mit Amazon CloudWatch, AWS X-Ray und der Zugriff auf Echtzeit-Telemetriedaten für Erweiterungen über die Telemetrie-API überwachen.
Anmerkung
Die Umgebungsvariablen AWS_LAMBDA_LOG_GROUP_NAME und AWS_LAMBDA_LOG_STREAM_NAME sind in den Lambda-SnapStart-Funktionen nicht verfügbar.
Verstehen des Protokollierungs- und Abrechnungsverhaltens mit SnapStart
Es gibt einige Unterschiede zum CloudWatch-Protokollstream-Format für SnapStart-Funktionen:
-
Initialisierungsprotokolle – Wenn eine neue Ausführungsumgebung erstellt wird, enthält
REPORTdas FeldInit Durationnicht. Das liegt daran, dass Lambda SnapStart-Funktionen initialisiert, wenn Sie eine Version erstellen und nicht während des Funktionsaufrufs. Für SnapStart-Funktionen befindet sich dasInit Duration-Feld imINIT_REPORT-Datensatz. Dieser Datensatz zeigt die Dauer von Init-Phase, einschließlich der Dauer allerbeforeCheckpoint-Laufizeit-Hooks an. -
Aufrufprotokolle – Wenn eine neue Ausführungsumgebung erstellt wird, enthält
REPORTdie FelderRestore DurationundBilled Restore Duration:-
Restore Duration: Die Zeit, die Lambda benötigt, um einen Snapshot wiederherzustellen, die Laufzeit zu laden und ggf. Laufzeit-Hooks nach der Wiederherstellung auszuführen. Der Prozess der Wiederherstellung von Snapshots kann Zeit beinhalten, die für Aktivitäten außerhalb der MicroVM aufgewendet wird. Diese Zeit wird in erfasstRestore Duration. -
Billed Restore Duration: Die Zeit, die Lambda benötigt, um die Laufzeit zu laden und ggf. Laufzeit-Hooks nach der Wiederherstellung auszuführen.
-
Anmerkung
Wie bei allen Lambda-Funktionen fallen Dauergebühren für Code an, der im Funktionshandler ausgeführt wird. Bei SnapStart-Funktionen gelten die Gebühren für die Dauer auch für Initialisierungscode, der außerhalb des Handlers deklariert wird, für die Zeit, die die Laufzeit zum Laden benötigt, und für jeden Code, der in einem Laufzeit-Hook ausgeführt wird.
Die Kaltstartdauer ist die Summe von Restore Duration + Duration.
Das folgende Beispiel ist eine Lambda-Insights-Abfrage, die die Latenzperzentile für SnapStart-Funktionen zurückgibt. Weitere Informationen zu Lambda-Insights-Abfragen finden Sie unter Beispiel-Workflow mit Abfragen zur Fehlerbehebung einer Funktion.
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
Aktive X-Ray-Ablaufverfolgung für SnapStart
Sie können X-Ray verwenden, um Anforderungen an Lambda-SnapStart-Funktionen nachzuverfolgen. Bei den X-Ray-Teilsegmenten für SnapStart-Funktionen gibt es einige Unterschiede:
-
Es gibt kein
Initialization-Teilsegment für SnapStart-Funktionen. -
Das Teilsegment
Restorezeigt die Zeit an, die Lambda benötigt, um einen Snapshot wiederherzustellen, die Laufzeit zu laden und vorhandene Laufzeit-Hooks nach der Wiederherstellung auszuführen. Der Prozess der Wiederherstellung von Snapshots kann Zeit beinhalten, die für Aktivitäten außerhalb der MicroVM aufgewendet wird. Diese Zeit wird imRestore-Untersegment erfasst. Die Zeit, die Sie außerhalb der microVM für die Wiederherstellung eines Snapshots aufwenden, wird Ihnen nicht in Rechnung gestellt.
Telemetrie-API-Ereignisse für SnapStart
Lambda sendet die folgenden SnapStart-Ereignisse an Telemetrie-API:
-
platform.restoreStart – Zeigt die Zeit an, zu der die Restore-Phase gestartet wurde.
-
platform.restoreRuntimeDone – Zeigt an, ob die
Restore-Phase erfolgreich war. Lambda sendet diese Nachricht, wenn die Laufzeit einerestore/next-Laufzeit-API-Anfrage sendet. Es gibt drei mögliche Status: erfolgreich, fehlgeschlagen und Timeout. -
platform.restoreReport – Zeigt an, wie lange die
Restore-Phase gedauert hat und wie viele Millisekunden Ihnen während dieser Phase in Rechnung gestellt wurden.
Amazon-API-Gateway- und Funktions-URL-Metriken
Wenn Sie eine Web-API mit API-Gateway erstellen, können Sie die IntegrationLatency-Metrik verwenden, um die durchgehende Latenz zu messen (die Zeit zwischen der Weiterleitung einer Anfrage an das Backend durch API-Gateway und dem Empfang einer Antwort vom Backend.
Wenn Sie eine Lambda-Funktions-URL verwenden, können Sie die UrlRequestLatency-Metrik verwenden, um die durchgehende Latenz zu messen (die Zeit zwischen dem Empfang einer Anfrage durch die Funktions-URL und der Rückgabe einer Antwort durch die Funktions-URL).