Referencia del esquema Event de la API de telemetría de Lambda
Utilice el punto de conexión de la API de telemetría de Lambda para suscribir extensiones a los flujos de telemetría. Puede recuperar el punto de conexión de la API de telemetría desde la variable de entorno AWS_LAMBDA_RUNTIME_API. Para enviar una solicitud de API, agregue la versión de la API (2022-07-01/) y telemetry/. Por ejemplo:
http://${AWS_LAMBDA_RUNTIME_API}/2022-07-01/telemetry/
Para ver la definición de la especificación OpenAPI (OAS) de la versión de respuestas de suscripción 2022-12-13, consulte lo siguiente:
La siguiente tabla resume de todos los tipos de objetos de Event que admite la API de telemetría.
| Categoría | Tipo de evento | Descripción | Esquema de registro de eventos |
|---|---|---|---|
|
Evento de plataforma |
|
Se inició la inicialización de la función. |
esquema platform.initStart |
|
Evento de plataforma |
|
Se completó la inicialización de la función. |
esquema platform.initRuntimeDone |
|
Evento de plataforma |
|
Un informe de inicialización de la función. |
esquema platform.initReport |
|
Evento de plataforma |
|
Se inició la invocación de la función. |
esquema platform.start |
|
Evento de plataforma |
|
El tiempo de ejecución terminó de procesar un evento con éxito o con falla. |
esquema platform.runtimeDone |
|
Evento de plataforma |
|
Un informe de la invocación de funciones. |
esquema platform.report |
|
Evento de plataforma |
|
Se inició la restauración en tiempo de ejecución. |
esquema platform.restoreStart |
|
Evento de plataforma |
|
Se completó la restauración en tiempo de ejecución. |
esquema platform.restoreRuntimeDone |
|
Evento de plataforma |
|
Informe de restauración en tiempo de ejecución. |
esquema platform.restoreReport |
|
Evento de plataforma |
|
La extensión suscrita a la API de telemetría. |
esquema platform.telemetrySubscription |
|
Evento de plataforma |
|
Lambda ha eliminado las entradas de registro. |
esquema platform.logsDropped |
|
Registros de funciones |
|
Una línea de registro del código de la función. |
esquema function |
|
Registros de extensión |
|
Una línea de registro del código de extensión. |
esquema extension |
Contenido
Tipos de objetos Event de la API de telemetría
En esta sección, se detallan los tipos de objetos Event que admite la API de telemetría de Lambda. En las descripciones de los eventos, un signo de interrogación (?) indica que el atributo puede no estar presente en el objeto.
platform.initStart
Un evento platform.initStart indica que se ha iniciado la fase de inicialización de la función. Un objeto platform.initStart Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.initStart - record: PlatformInitStart
El objeto PlatformInitStart tiene los siguientes atributos:
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.initRuntimeDone indica que se ha completado la fase de inicialización de la función. Un objeto platform.initRuntimeDone Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.initRuntimeDone - record: PlatformInitRuntimeDone
El objeto PlatformInitRuntimeDone tiene los siguientes atributos:
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.initReport contiene un informe general de la fase de inicialización de la función. Un objeto platform.initReport Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.initReport - record: PlatformInitReport
El objeto PlatformInitReport tiene los siguientes atributos:
-
errorType?: cadena
-
InitializationType: objeto
InitType -
phase: objeto
InitPhase -
metrics: objeto
InitReportMetrics -
spans? Lista de objetos
Span -
status: objeto
Status
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.start indica que se ha iniciado la fase de invocación de la función. Un objeto platform.start Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.start - record: PlatformStart
El objeto PlatformStart tiene los siguientes atributos:
-
requestId:
String -
version?:
String -
tracing?:
TraceContext
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.runtimeDone indica que se ha completado la fase de invocación de la función. Un objeto platform.runtimeDone Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.runtimeDone - record: PlatformRuntimeDone
El objeto PlatformRuntimeDone tiene los siguientes atributos:
-
errorType?:
String -
metrics?: objeto
RuntimeDoneMetrics -
requestId:
String -
status: objeto
Status -
spans? Lista de objetos
Span -
tracing?: objeto
TraceContext
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.report contiene un informe general de la fase de invocación de la función. Un objeto platform.report Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.report - record: PlatformReport
El objeto PlatformReport tiene los siguientes atributos:
-
metrics: objeto
ReportMetrics -
requestId:
String -
spans? Lista de objetos
Span -
status: objeto
Status -
tracing?: objeto
TraceContext
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.restoreStart indica que se inició un evento de restauración del entorno de funciones. En un evento de restauración del entorno, Lambda crea el entorno a partir de una instantánea almacenada en caché en lugar de inicializarlo desde cero. Para obtener más información, consulte Lambda SnapStart. Un objeto platform.restoreStart Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.restoreStart - record: PlatformRestoreStart
El objeto PlatformRestoreStart tiene los siguientes atributos:
-
functionName:
String -
functionVersion:
String -
instanceId?:
String -
instanceMaxMemory?:
String -
runtimeVersion?:
String -
runtimeVersionArn?:
String
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.restoreRuntimeDone indica que se completó un evento de restauración del entorno de funciones. En un evento de restauración del entorno, Lambda crea el entorno a partir de una instantánea almacenada en caché en lugar de inicializarlo desde cero. Para obtener más información, consulte Lambda SnapStart. Un objeto platform.restoreRuntimeDone Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.restoreRuntimeDone - record: PlatformRestoreRuntimeDone
El objeto PlatformRestoreRuntimeDone tiene los siguientes atributos:
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.restoreReport contiene un informe general de un evento de restauración de funciones. Un objeto platform.restoreReport Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.restoreReport - record: PlatformRestoreReport
El objeto PlatformRestoreReport tiene los siguientes atributos:
-
errorType?: cadena
-
metrics?: objeto
RestoreReportMetrics -
spans? Lista de objetos
Span -
status: objeto
Status
A continuación, se muestra un ejemplo de Event de tipo 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 evento extension contiene registros del código de extensión. Un objeto extension Event tiene la siguiente forma:
Event: Object - time: String - type: String = extension - record: {}
El objeto PlatformExtension tiene los siguientes atributos:
-
events: Lista de
String -
name:
String -
state:
String
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.telemetrySubscription contiene información sobre una suscripción de extensión. Un objeto platform.telemetrySubscription Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.telemetrySubscription - record: PlatformTelemetrySubscription
El objeto PlatformTelemetrySubscription tiene los siguientes atributos:
-
name:
String -
state:
String -
types: lista de
String
A continuación, se muestra un ejemplo de Event de tipo 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 evento platform.logsDropped contiene información sobre los eventos eliminados. Lambda emite el evento platform.logsDropped cuando una función genera registros a una velocidad demasiado alta para que Lambda los procese. Cuando Lambda no puede enviar registros a CloudWatch o a la extensión suscripta a la API de telemetría a la velocidad a la que su función los produce, elimina los registros para evitar que la ejecución de la función se ralentice. Un objeto platform.logsDropped Event tiene la siguiente forma:
Event: Object - time: String - type: String = platform.logsDropped - record: PlatformLogsDropped
El objeto PlatformLogsDropped tiene los siguientes atributos:
-
droppedBytes:
Integer -
droppedRecords:
Integer -
reason:
String
A continuación, se muestra un ejemplo de Event de tipo 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 evento function contiene registros del código de la función. Un objeto function Event tiene la siguiente forma:
Event: Object - time: String - type: String = function - record: {}
El formato del campo record depende de si los registros de la función están formateados en texto sin formato o en formato JSON. Para obtener más información sobre las opciones de configuración del formato de registro, consulte Configuración de los formatos de registro JSON y de texto sin formato
El siguiente es un ejemplo de Event de un tipo function en el que el formato de registro es texto sin formato:
{ "time": "2022-10-12T00:03:50.000Z", "type": "function", "record": "[INFO] Hello world, I am a function!" }
El siguiente es un ejemplo de Event de un tipo function en el que el formato de registro es texto en formato 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!" } }
nota
Si la versión del esquema que está utilizando es anterior a la versión 2022-12-13, entonces "record" siempre se representa como una cadena, incluso cuando el formato de registro de la función esté configurado como JSON.
extension
Un evento extension contiene registros del código de extensión. Un objeto extension Event tiene la siguiente forma:
Event: Object - time: String - type: String = extension - record: {}
El formato del campo record depende de si los registros de la función están formateados en texto sin formato o en formato JSON. Para obtener más información sobre las opciones de configuración del formato de registro, consulte Configuración de los formatos de registro JSON y de texto sin formato
El siguiente es un ejemplo de Event de un tipo extension en el que el formato de registro es texto sin formato:
{ "time": "2022-10-12T00:03:50.000Z", "type": "extension", "record": "[INFO] Hello world, I am an extension!" }
El siguiente es un ejemplo de Event de un tipo extension en el que el formato de registro es texto en formato 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!" } }
nota
Si la versión del esquema que está utilizando es anterior a la versión 2022-12-13, entonces "record" siempre se representa como una cadena, incluso cuando el formato de registro de la función esté configurado como JSON.
Tipos de objetos compartidos
En esta sección, se detallan los tipos de objetos compartidos que admite la API de telemetría de Lambda.
InitPhase
Una enumeración de la cadena que describe la fase en la que se produce el paso de inicialización. En la mayoría de los casos, Lambda ejecuta el código de inicialización de la función durante la fase init. Sin embargo, en algunos casos de error, Lambda puede volver a ejecutar el código de inicialización de la función durante la fase invoke. (Esto se denomina inicio suprimido).
-
Tipo:
String -
Valores válidos:
init|invoke|snap-start
InitReportMetrics
Un objeto que contiene métricas sobre una fase de inicialización.
-
Tipo:
Object
Un objeto InitReportMetrics tiene la siguiente forma:
InitReportMetrics: Object - durationMs: Double
A continuación, se muestra un ejemplo de objeto InitReportMetrics:
{ "durationMs": 247.88 }
InitType
Una enumeración de la cadena que describe cómo Lambda inicializó el entorno.
-
Tipo:
String -
Valores válidos:
on-demand|provisioned-concurrency
ReportMetrics
Un objeto que contiene métricas sobre una fase completa.
-
Tipo:
Object
Un objeto ReportMetrics tiene la siguiente forma:
ReportMetrics: Object - billedDurationMs: Integer - durationMs: Double - initDurationMs?: Double - maxMemoryUsedMB: Integer - memorySizeMB: Integer - restoreDurationMs?: Double
A continuación, se muestra un ejemplo de objeto ReportMetrics:
{ "billedDurationMs": 694, "durationMs": 693.92, "initDurationMs": 397.68, "maxMemoryUsedMB": 84, "memorySizeMB": 128 }
RestoreReportMetrics
Un objeto que contiene métricas sobre una fase de restauración completa.
-
Tipo:
Object
Un objeto RestoreReportMetrics tiene la siguiente forma:
RestoreReportMetrics: Object - durationMs: Double
A continuación, se muestra un ejemplo de objeto RestoreReportMetrics:
{ "durationMs": 15.19 }
RuntimeDoneMetrics
Un objeto que contiene métricas sobre una fase de invocación completa.
-
Tipo:
Object
Un objeto RuntimeDoneMetrics tiene la siguiente forma:
RuntimeDoneMetrics: Object - durationMs: Double - producedBytes?: Integer
A continuación, se muestra un ejemplo de objeto RuntimeDoneMetrics:
{ "durationMs": 200.0, "producedBytes": 15 }
Span
Un objeto que contiene detalles acerca de un intervalo. Un intervalo representa una unidad de trabajo u operación en un seguimiento. Para obtener más información sobre intervalos, consulte Span
Lambda admite los siguientes intervalos para el evento platform.RuntimeDone:
-
El intervalo
responseLatencydescribe cuánto tiempo tardó la función de Lambda en empezar a enviar la respuesta. -
El intervalo
responseDurationdescribe cuánto tiempo tardó la función de Lambda en terminar de enviar toda la respuesta. -
El intervalo
runtimeOverheaddescribe cuánto tiempo tardó el tiempo de ejecución de Lambda en indicar que estaba listo para procesar la siguiente invocación de la función. Este es el tiempo que tardó el tiempo de ejecución en llamar a la API de siguiente invocación para obtener el siguiente evento después de devolver la respuesta de su función.
A continuación, se muestra un ejemplo de objeto de intervalo responseLatency:
{ "name": "responseLatency", "start": "2022-08-02T12:01:23.521Z", "durationMs": 23.02 }
Status
Un objeto que describe el estado de una fase de inicialización o invocación. Si el estado es failure o error, el objeto Status también contiene un campo errorType que describe el error.
-
Tipo:
Object -
Valores de estado válidos:
success|failure|error|timeout
TraceContext
Un objeto que describe las propiedades de un seguimiento.
-
Tipo:
Object
Un objeto TraceContext tiene la siguiente forma:
TraceContext: Object - spanId?: String - type: TracingType enum - value: String
A continuación, se muestra un ejemplo de objeto TraceContext:
{ "spanId": "073a49012f3c312e", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" }
TracingType
Una enumeración de la cadena que describe el tipo de seguimiento de un objeto TraceContext.
-
Tipo:
String -
Valores válidos:
X-Amzn-Trace-Id