Référence du schéma de API Event télémétrie Lambda - 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.

Référence du schéma de API Event télémétrie Lambda

Utilisez le point de API terminaison de télémétrie Lambda pour abonner des extensions aux flux de télémétrie. Vous pouvez récupérer le point de API terminaison de télémétrie à partir de la variable d'AWS_LAMBDA_RUNTIME_APIenvironnement. Pour envoyer une API demande, ajoutez les API versions (2022-07-01/) ettelemetry/. Par exemple :

http://${AWS_LAMBDA_RUNTIME_API}/2022-07-01/telemetry/

Pour la définition Open API Specification (OAS) de la version des réponses aux abonnements2022-12-13, consultez ce qui suit :

Le tableau suivant est un résumé de tous les types d'Eventobjets pris en charge par la télémétrieAPI.

Catégorie Type d’événement Description Schéma d’enregistrement des événements

Événement de plateforme

platform.initStart

L’initialisation de la fonction a commencé.

Schéma platform.initStart

Événement de plateforme

platform.initRuntimeDone

L’initialisation de la fonction est terminée.

Schéma platform.initRuntimeDone

Événement de plateforme

platform.initReport

Un rapport d’initialisation de la fonction.

Schéma platform.initReport

Événement de plateforme

platform.start

L’invocation de la fonction a commencé.

Schéma platform.start

Événement de plateforme

platform.runtimeDone

L’environnement d’exécution a fini de traiter un événement avec succès ou échec.

Schéma platform.runtimeDone

Événement de plateforme

platform.report

Un rapport sur l’invocation de la fonction.

Schéma platform.report

Événement de plateforme

platform.restoreStart

La restauration de l’exécution a commencé.

Schéma platform.restoreStart

Événement de plateforme

platform.restoreRuntimeDone

La restauration de l’exécution est terminée.

Schéma platform.restoreRuntimeDone

Événement de plateforme

platform.restoreReport

Le rapport de restauration de d’exécution.

Schéma platform.restoreReport

Événement de plateforme

platform.telemetrySubscription

L'extension s'est abonnée à la télémétrieAPI.

Schéma platform.telemetrySubscription

Événement de plateforme

platform.logsDropped

Les entrées de journal abandonnées par Lambda.

Schéma platform.logsDropped

Journaux de fonctions

function

Une ligne de journal du code de la fonction.

Schéma function

Journaux d’extension

extension

Une ligne de journal du code de l’extension.

Schéma extension

Types d'objets de télémétrie API Event

Cette section détaille les types d'Eventobjets pris en charge par la API télémétrie Lambda. Dans les descriptions d’événements, un point d’interrogation (?) indique que l’attribut peut ne pas être présent dans l’objet.

platform.initStart

Un événement platform.initStart indique que la phase d’initialisation de la fonction a commencé. Un objet Event platform.initStart a la forme suivante :

Event: Object - time: String - type: String = platform.initStart - record: PlatformInitStart

L’objet PlatformInitStart possède les attributs suivants :

  • functionNameString

  • functionVersionString

  • initializationTypeInitType objet

  • instanceId?String

  • instanceMaxMemory?Integer

  • phase – Objet InitPhase

  • runtimeVersion?String

  • runtimeVersionArn?String

Voici un exemple de Event de type platform.initStart :

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.initStart", "record": { "initializationType": "on-demand", "phase": "init", "runtimeVersion": "nodejs-14.v3", "runtimeVersionArn": "arn", "functionName": "myFunction", "functionVersion": "$LATEST", "instanceId": "82561ce0-53dd-47d1-90e0-c8f5e063e62e", "instanceMaxMemory": 256 } }

platform.initRuntimeDone

Un événement platform.initRuntimeDone indique que la phase d’initialisation de la fonction est terminée. Un objet Event platform.initRuntimeDone a la forme suivante :

Event: Object - time: String - type: String = platform.initRuntimeDone - record: PlatformInitRuntimeDone

L’objet PlatformInitRuntimeDone possède les attributs suivants :

Voici un exemple de Event de type platform.initRuntimeDone :

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.initRuntimeDone", "record": { "initializationType": "on-demand" "status": "success", "spans": [ { "name": "someTimeSpan", "start": "2022-06-02T12:02:33.913Z", "durationMs": 70.5 } ] } }

platform.initReport

Un événement platform.initReport contient un rapport global de la phase d’initialisation de la fonction. Un objet Event platform.initReport a la forme suivante :

Event: Object - time: String - type: String = platform.initReport - record: PlatformInitReport

L’objet PlatformInitReport possède les attributs suivants :

Voici un exemple de Event de type platform.initReport :

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.initReport", "record": { "initializationType": "on-demand", "status": "success", "phase": "init", "metrics": { "durationMs": 125.33 }, "spans": [ { "name": "someTimeSpan", "start": "2022-06-02T12:02:33.913Z", "durationMs": 90.1 } ] } }

platform.start

Un événement platform.start indique que la phase d’invocation de la fonction a commencé. Un objet Event platform.start a la forme suivante :

Event: Object - time: String - type: String = platform.start - record: PlatformStart

L’objet PlatformStart possède les attributs suivants :

  • requestIdString

  • version?String

  • tracing?TraceContext

Voici un exemple de Event de type platform.start :

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.start", "record": { "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa", "version": "$LATEST", "tracing": { "spanId": "54565fb41ac79632", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" } } }

platform.runtimeDone

Un événement platform.runtimeDone indique que la phase d’invocation de la fonction est terminée. Un objet Event platform.runtimeDone a la forme suivante :

Event: Object - time: String - type: String = platform.runtimeDone - record: PlatformRuntimeDone

L’objet PlatformRuntimeDone possède les attributs suivants :

Voici un exemple de Event de type platform.runtimeDone :

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.runtimeDone", "record": { "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa", "status": "success", "tracing": { "spanId": "54565fb41ac79632", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" }, "spans": [ { "name": "someTimeSpan", "start": "2022-08-02T12:01:23:521Z", "durationMs": 80.0 } ], "metrics": { "durationMs": 140.0, "producedBytes": 16 } } }

platform.report

Un platform.report événement contient un rapport global de la phase d'appel de la fonction. Un objet Event platform.report a la forme suivante :

Event: Object - time: String - type: String = platform.report - record: PlatformReport

L’objet PlatformReport possède les attributs suivants :

Voici un exemple de Event de type platform.report :

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.report", "record": { "metrics": { "billedDurationMs": 694, "durationMs": 693.92, "initDurationMs": 397.68, "maxMemoryUsedMB": 84, "memorySizeMB": 128 }, "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa", } }

platform.restoreStart

Un événement platform.restoreStart indique qu’un événement de restauration d’environnement de fonction a commencé. Dans un événement de restauration d’environnement, Lambda crée l’environnement à partir d’un instantané mis en cache plutôt que de l’initialiser à partir de zéro. Pour de plus amples informations, veuillez consulter Lambda SnapStart. Un objet Event platform.restoreStart a la forme suivante :

Event: Object - time: String - type: String = platform.restoreStart - record: PlatformRestoreStart

L’objet PlatformRestoreStart possède les attributs suivants :

  • functionNameString

  • functionVersionString

  • instanceId?String

  • instanceMaxMemory?String

  • runtimeVersion?String

  • runtimeVersionArn?String

Voici un exemple de Event de type platform.restoreStart :

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.restoreStart", "record": { "runtimeVersion": "nodejs-14.v3", "runtimeVersionArn": "arn", "functionName": "myFunction", "functionVersion": "$LATEST", "instanceId": "82561ce0-53dd-47d1-90e0-c8f5e063e62e", "instanceMaxMemory": 256 } }

platform.restoreRuntimeDone

Un événement platform.restoreRuntimeDone indique qu’un événement de restauration d’environnement de fonction s’est terminé. Dans un événement de restauration d’environnement, Lambda crée l’environnement à partir d’un instantané mis en cache plutôt que de l’initialiser à partir de zéro. Pour de plus amples informations, veuillez consulter Lambda SnapStart. Un objet Event platform.restoreRuntimeDone a la forme suivante :

Event: Object - time: String - type: String = platform.restoreRuntimeDone - record: PlatformRestoreRuntimeDone

L’objet PlatformRestoreRuntimeDone possède les attributs suivants :

  • errorType?String

  • spans? – Liste d’objets Span

  • status – Objet Status

Voici un exemple de Event de type platform.restoreRuntimeDone :

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.restoreRuntimeDone", "record": { "status": "success", "spans": [ { "name": "someTimeSpan", "start": "2022-08-02T12:01:23:521Z", "durationMs": 80.0 } ] } }

platform.restoreReport

Un événement platform.restoreReport contient un rapport global d’un événement de restauration de fonction. Un objet Event platform.restoreReport a la forme suivante :

Event: Object - time: String - type: String = platform.restoreReport - record: PlatformRestoreReport

L’objet PlatformRestoreReport possède les attributs suivants :

Voici un exemple de Event de type platform.restoreReport :

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.restoreReport", "record": { "status": "success", "metrics": { "durationMs": 15.19 }, "spans": [ { "name": "someTimeSpan", "start": "2022-08-02T12:01:23:521Z", "durationMs": 30.0 } ] } }

platform.extension

Un événement extension contient des journaux provenant du code d’extension. Un objet Event extension a la forme suivante :

Event: Object - time: String - type: String = extension - record: {}

L’objet PlatformExtension possède les attributs suivants :

  • events – Liste de String

  • nomString

  • stateString

Voici un exemple de Event de type platform.extension :

{ "time": "2022-10-12T00:02:15.000Z", "type": "platform.extension", "record": { "events": [ "INVOKE", "SHUTDOWN" ], "name": "my-telemetry-extension", "state": "Ready" } }

platform.telemetrySubscription

Un événement platform.telemetrySubscription contient des informations sur un abonnement d’extension. Un objet Event platform.telemetrySubscription a la forme suivante :

Event: Object - time: String - type: String = platform.telemetrySubscription - record: PlatformTelemetrySubscription

L’objet PlatformTelemetrySubscription possède les attributs suivants :

  • nomString

  • stateString

  • types – Liste de String

Voici un exemple de Event de type platform.telemetrySubscription :

{ "time": "2022-10-12T00:02:35.000Z", "type": "platform.telemetrySubscription", "record": { "name": "my-telemetry-extension", "state": "Subscribed", "types": [ "platform", "function" ] } }

platform.logsDropped

Un événement platform.logsDropped contient des informations sur les événements abandonnés. Lambda émet un platform.logsDropped événement lorsqu'une fonction produit des logs à un taux trop élevé pour que Lambda puisse les traiter. Lorsque Lambda ne parvient pas à envoyer des journaux vers CloudWatch ou vers l'extension abonnée à Telemetry API au rythme où la fonction les produit, il supprime les journaux pour empêcher l'exécution de la fonction de ralentir. Un objet Event platform.logsDropped a la forme suivante :

Event: Object - time: String - type: String = platform.logsDropped - record: PlatformLogsDropped

L’objet PlatformLogsDropped possède les attributs suivants :

  • droppedBytesInteger

  • droppedRecordsInteger

  • reasonString

Voici un exemple de Event de type platform.logsDropped :

{ "time": "2022-10-12T00:02:35.000Z", "type": "platform.logsDropped", "record": { "droppedBytes": 12345, "droppedRecords": 123, "reason": "Some logs were dropped because the downstream consumer is slower than the logs production rate" } }

function

Un événement function contient des journaux provenant du code de fonction. Un objet Event function a la forme suivante :

Event: Object - time: String - type: String = function - record: {}

Le format du record champ varie selon que les journaux de votre fonction sont formatés en texte brut ou au formatJSON. Pour en savoir plus sur les options de configuration du format des journaux, voir Configuration JSON et formats de journal en texte brut

Voici un exemple Event de type function où le format du journal est en texte brut :

{ "time": "2022-10-12T00:03:50.000Z", "type": "function", "record": "[INFO] Hello world, I am a function!" }

Voici un exemple Event de type function où le format du journal est le suivant JSON :

{ "time": "2022-10-12T00:03:50.000Z", "type": "function", "record": { "timestamp": "2022-10-12T00:03:50.000Z", "level": "INFO", "requestId": "79b4f56e-95b1-4643-9700-2807f4e68189", "message": "Hello world, I am a function!" } }
Note

Si la version du schéma que vous utilisez est plus ancienne que la 2022-12-13 version, elle "record" est toujours affichée sous forme de chaîne, même lorsque le format de journalisation de votre fonction est configuré comme suitJSON.

extension

Un événement extension contient des journaux provenant du code d’extension. Un objet Event extension a la forme suivante :

Event: Object - time: String - type: String = extension - record: {}

Le format du record champ varie selon que les journaux de votre fonction sont formatés en texte brut ou au formatJSON. Pour en savoir plus sur les options de configuration du format des journaux, voir Configuration JSON et formats de journal en texte brut

Voici un exemple Event de type extension où le format du journal est en texte brut :

{ "time": "2022-10-12T00:03:50.000Z", "type": "extension", "record": "[INFO] Hello world, I am an extension!" }

Voici un exemple Event de type extension où le format du journal est le suivant JSON :

{ "time": "2022-10-12T00:03:50.000Z", "type": "extension", "record": { "timestamp": "2022-10-12T00:03:50.000Z", "level": "INFO", "requestId": "79b4f56e-95b1-4643-9700-2807f4e68189", "message": "Hello world, I am an extension!" } }
Note

Si la version du schéma que vous utilisez est plus ancienne que la 2022-12-13 version, elle "record" est toujours affichée sous forme de chaîne, même lorsque le format de journalisation de votre fonction est configuré comme suitJSON.

Types d’objets partagés

Cette section détaille les types d'objets partagés pris en charge par la API télémétrie Lambda.

InitPhase

Une enum de chaînes de caractères qui décrit la phase où l’étape d’initialisation se produit. Dans la plupart des cas, Lambda exécute le code d’initialisation de la fonction pendant la phase init. Toutefois, dans certains cas d’erreur, Lambda peut réexécuter le code d’initialisation de la fonction pendant la phase invoke. (Cela s’appelle une init supprimée.)

  • TypeString

  • Valeurs valides : init|invoke|snap-start

InitReportMetrics

Un objet qui contient des métriques sur une phase d’initialisation.

  • TypeObject

Un objet InitReportMetrics a la forme suivante :

InitReportMetrics: Object - durationMs: Double

Voici un exemple d’objet InitReportMetrics :

{ "durationMs": 247.88 }

InitType

Une enum de chaînes de caractères qui décrit comment Lambda a initialisé l’environnement.

  • TypeString

  • Valeurs valideson-demand|provisioned-concurrency

ReportMetrics

Un objet qui contient des métriques sur une phase terminée.

  • TypeObject

Un objet ReportMetrics a la forme suivante :

ReportMetrics: Object - billedDurationMs: Integer - durationMs: Double - initDurationMs?: Double - maxMemoryUsedMB: Integer - memorySizeMB: Integer - restoreDurationMs?: Double

Voici un exemple d’objet ReportMetrics :

{ "billedDurationMs": 694, "durationMs": 693.92, "initDurationMs": 397.68, "maxMemoryUsedMB": 84, "memorySizeMB": 128 }

RestoreReportMetrics

Un objet qui contient des métriques sur une phase de restauration terminée.

  • TypeObject

Un objet RestoreReportMetrics a la forme suivante :

RestoreReportMetrics: Object - durationMs: Double

Voici un exemple d’objet RestoreReportMetrics :

{ "durationMs": 15.19 }

RuntimeDoneMetrics

Un objet qui contient des métriques sur une phase d’invocation.

  • TypeObject

Un objet RuntimeDoneMetrics a la forme suivante :

RuntimeDoneMetrics: Object - durationMs: Double - producedBytes?: Integer

Voici un exemple d’objet RuntimeDoneMetrics :

{ "durationMs": 200.0, "producedBytes": 15 }

Span

Un objet qui contient des détails sur un span. Un span représente une unité de travail ou une opération dans une trace. Pour plus d'informations sur les intervalles, consultez Span sur la API page de suivi du site Web de OpenTelemetry Docs.

Lambda prend en charge les span suivants pour l’événement platform.RuntimeDone :

  • Le span responseLatency décrit le temps qu’il a fallu à votre fonction Lambda pour commencer à envoyer la réponse.

  • Le span responseDuration décrit le temps qu’il a fallu à votre fonction Lambda pour finir d’envoyer la réponse entière.

  • Le span runtimeOverhead décrit le temps qu’il a fallu à l’environnement d’exécution Lambda pour signaler qu’il était prêt à traiter la prochaine invocation de fonction. C'est le temps qu'il a fallu au moteur d'exécution pour appeler le prochain appel API afin d'obtenir le prochain événement après avoir renvoyé la réponse de votre fonction.

Voici un exemple d’objet span responseLatency :

{ "name": "responseLatency", "start": "2022-08-02T12:01:23.521Z", "durationMs": 23.02 }

Status

Un objet qui décrit le statut d’une phase d’initialisation ou d’invocation. Si le statut est failure ou error, l’objet Status contient également un champ errorType décrivant l’erreur.

  • TypeObject

  • Valeurs de status valides : success|failure|error|timeout

TraceContext

Un objet qui décrit les propriétés d’une trace.

  • TypeObject

Un objet TraceContext a la forme suivante :

TraceContext: Object - spanId?: String - type: TracingType enum - value: String

Voici un exemple d’objet TraceContext :

{ "spanId": "073a49012f3c312e", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" }

TracingType

Un enum de chaînes de caractères qui décrit le type de trace dans un objet TraceContext.

  • TypeString

  • Valeurs validesX-Amzn-Trace-Id