Referência de esquema para Event da API de Telemetria do Lambda
Use o endpoint da API de Telemetria do Lambda para assinar extensões para fluxos de telemetria. É possível recuperar o endpoint da API de telemetria da variável de ambiente AWS_LAMBDA_RUNTIME_API. Para enviar uma solicitação de API, vincule a versão da API (2022-07-01/) e telemetry/. Por exemplo:
http://${AWS_LAMBDA_RUNTIME_API}/2022-07-01/telemetry/
Para obter a definição da Especificação OpenAPI (OAS) da versão das respostas de assinatura 2022-12-13, consulte os itens a seguir:
A tabela a seguir é um resumo de todos os tipos de objetos Event aos quais a API de telemetria oferece suporte.
| Categoria | Tipo de evento | Descrição | Esquema de registro de evento |
|---|---|---|---|
|
Evento de plataforma |
|
A inicialização da função foi iniciada. |
Esquema platform.initStart |
|
Evento de plataforma |
|
A inicialização da função foi concluída. |
Esquema platform.initRuntimeDone |
|
Evento de plataforma |
|
Um relatório sobre a inicialização da função. |
Esquema platform.initReport |
|
Evento de plataforma |
|
A invocação da função foi iniciada. |
Esquema platform.start |
|
Evento de plataforma |
|
O runtime concluiu o processamento de um evento com sucesso ou com falha. |
Esquema platform.runtimeDone |
|
Evento de plataforma |
|
Um relatório sobre a invocação de função. |
Esquema platform.report |
|
Evento de plataforma |
|
A restauração do runtime foi iniciada. |
Esquema platform.restoreStart |
|
Evento de plataforma |
|
A restauração do runtime foi concluída. |
Esquema platform.restoreRuntimeDone |
|
Evento de plataforma |
|
Relatório de restauração do runtime. |
Esquema platform.restoreReport |
|
Evento de plataforma |
|
A extensão foi inscrita na API de telemetria. |
Esquema platform.telemetrySubscription |
|
Evento de plataforma |
|
O Lambda descartou entradas de log. |
Esquema platform.logsDropped |
|
Registros de função |
|
Uma linha de log do código da função. |
Esquema function |
|
Logs de extensões |
|
Uma linha de log do código de extensão. |
Esquema extension |
Sumário
Tipos de objeto Event da API de telemetria
Esta seção detalha os tipos de objetos Event aos quais a API de Telemetria do Lambda oferece suporte. Nas descrições dos eventos, um ponto de interrogação (?) indica que o atributo pode não estar presente no objeto.
platform.initStart
Um evento platform.initStart indica que a fase de inicialização da função foi iniciada. Um objeto Event platform.initStart tem a forma a seguir:
Event: Object - time: String - type: String = platform.initStart - record: PlatformInitStart
O objeto PlatformInitStart tem os seguintes atributos:
Veja a seguir um exemplo de Event do 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
Um evento platform.initRuntimeDone indica que a fase de inicialização da função foi concluída. Um objeto Event platform.initRuntimeDone tem a forma a seguir:
Event: Object - time: String - type: String = platform.initRuntimeDone - record: PlatformInitRuntimeDone
O objeto PlatformInitRuntimeDone tem os seguintes atributos:
Veja a seguir um exemplo de Event do 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
Um evento platform.initReport contém um relatório geral da fase de inicialização da função. Um objeto Event platform.initReport tem a forma a seguir:
Event: Object - time: String - type: String = platform.initReport - record: PlatformInitReport
O objeto PlatformInitReport tem os seguintes atributos:
-
errorType?: string
-
initializationType: objeto
InitType -
phase (fase): objeto
InitPhase -
metrics (métricas): objeto
InitReportMetrics -
spans? : lista de objetos
Span -
status: objeto
Status
Veja a seguir um exemplo de Event do 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
Um evento platform.start indica que a fase de invocação da função foi iniciada. Um objeto Event platform.start tem a forma a seguir:
Event: Object - time: String - type: String = platform.start - record: PlatformStart
O objeto PlatformStart tem os seguintes atributos:
-
requestId:
String -
version?:
String -
tracing?:
TraceContext
Veja a seguir um exemplo de Event do 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
Um evento platform.runtimeDone indica que a fase de invocação da função foi concluída. Um objeto Event platform.runtimeDone tem a forma a seguir:
Event: Object - time: String - type: String = platform.runtimeDone - record: PlatformRuntimeDone
O objeto PlatformRuntimeDone tem os seguintes atributos:
-
errorType?:
String -
metrics?: objeto
RuntimeDoneMetrics -
requestId:
String -
status: objeto
Status -
spans? : lista de objetos
Span -
tracing?: objeto
TraceContext
Veja a seguir um exemplo de Event do 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
Um evento platform.report contém um relatório geral da fase de invocação da função. Um objeto Event platform.report tem a forma a seguir:
Event: Object - time: String - type: String = platform.report - record: PlatformReport
O objeto PlatformReport tem os seguintes atributos:
-
metrics (métricas): objeto
ReportMetrics -
requestId:
String -
spans? : lista de objetos
Span -
status: objeto
Status -
tracing?: objeto
TraceContext
Veja a seguir um exemplo de Event do 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
Um evento platform.restoreStart indica que um evento de restauração do ambiente de função foi iniciado. Em um evento de restauração do ambiente, o Lambda cria o ambiente de um snapshot armazenado em cache, em vez de inicializá-lo do zero. Para ter mais informações, consulte Lambda SnapStart. Um objeto Event platform.restoreStart tem a forma a seguir:
Event: Object - time: String - type: String = platform.restoreStart - record: PlatformRestoreStart
O objeto PlatformRestoreStart tem os seguintes atributos:
-
functionName:
String -
functionVersion:
String -
instanceId?:
String -
instanceMaxMemory?:
String -
runtimeVersion?:
String -
runtimeVersionArn?:
String
Veja a seguir um exemplo de Event do 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
Um evento platform.restoreRuntimeDone indica que um evento de restauração do ambiente de função foi concluído. Em um evento de restauração do ambiente, o Lambda cria o ambiente de um snapshot armazenado em cache, em vez de inicializá-lo do zero. Para ter mais informações, consulte Lambda SnapStart. Um objeto Event platform.restoreRuntimeDone tem a forma a seguir:
Event: Object - time: String - type: String = platform.restoreRuntimeDone - record: PlatformRestoreRuntimeDone
O objeto PlatformRestoreRuntimeDone tem os seguintes atributos:
Veja a seguir um exemplo de Event do 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
Um evento platform.restoreReport contém um relatório geral de um evento de restauração de função. Um objeto Event platform.restoreReport tem a forma a seguir:
Event: Object - time: String - type: String = platform.restoreReport - record: PlatformRestoreReport
O objeto PlatformRestoreReport tem os seguintes atributos:
-
errorType?: string
-
metrics?: objeto
RestoreReportMetrics -
spans? : lista de objetos
Span -
status: objeto
Status
Veja a seguir um exemplo de Event do 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
Um evento extension contém logs do código de extensão. Um objeto Event extension tem a forma a seguir:
Event: Object - time: String - type: String = extension - record: {}
O objeto PlatformExtension tem os seguintes atributos:
-
events (eventos): lista de
String -
name (nome):
String -
state (estado):
String
Veja a seguir um exemplo de Event do 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
Um evento platform.telemetrySubscription contém informações sobre uma assinatura de extensão. Um objeto Event platform.telemetrySubscription tem a forma a seguir:
Event: Object - time: String - type: String = platform.telemetrySubscription - record: PlatformTelemetrySubscription
O objeto PlatformTelemetrySubscription tem os seguintes atributos:
-
name (nome):
String -
state (estado):
String -
types (tipos): lista de
String
Veja a seguir um exemplo de Event do 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
Um evento platform.logsDropped contém informações sobre eventos descartados. O Lambda emite o evento platform.logsDropped quando uma função gera logs em uma taxa muito alta para o Lambda processá-los. Quando o Lambda não consegue enviar logs para o CloudWatch ou para a extensão inscrita na API Telemetry na velocidade em que a função os produz, ele descarta logs para impedir que a execução da função fique mais lenta. Um objeto Event platform.logsDropped tem a forma a seguir:
Event: Object - time: String - type: String = platform.logsDropped - record: PlatformLogsDropped
O objeto PlatformLogsDropped tem os seguintes atributos:
-
droppedBytes:
Integer -
droppedRecords:
Integer -
reason (razão):
String
Veja a seguir um exemplo de Event do 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
Um evento function contém logs do código da função. Um objeto Event function tem a forma a seguir:
Event: Object - time: String - type: String = function - record: {}
O formato do campo record vai variar dependendo se os logs da função estão em formato de texto simples ou JSON. Para saber mais sobre as opções de configuração de formato de logs, consulte Configurar logs em formato de texto simples e JSON.
Veja abaixo um exemplo de Event de tipo function em que o log está formatado em texto simples:
{ "time": "2022-10-12T00:03:50.000Z", "type": "function", "record": "[INFO] Hello world, I am a function!" }
Veja abaixo um exemplo de Event de tipo function em que o log está formatado em 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
Se a versão do esquema que você está usando for mais antiga que a versão 2022-12-13, o campo "record" será sempre renderizado como uma string, mesmo se o formato do log da função estiver configurado como JSON.
extension
Um evento extension contém logs do código de extensão. Um objeto Event extension tem a forma a seguir:
Event: Object - time: String - type: String = extension - record: {}
O formato do campo record vai variar dependendo se os logs da função estão em formato de texto simples ou JSON. Para saber mais sobre as opções de configuração de formato de logs, consulte Configurar logs em formato de texto simples e JSON.
Veja abaixo um exemplo de Event de tipo extension em que o log está formatado em texto simples:
{ "time": "2022-10-12T00:03:50.000Z", "type": "extension", "record": "[INFO] Hello world, I am an extension!" }
Veja abaixo um exemplo de Event de tipo extension em que o log está formatado em 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
Se a versão do esquema que você está usando for mais antiga que a versão 2022-12-13, o campo "record" será sempre renderizado como uma string, mesmo se o formato do log da função estiver configurado como JSON.
Tipos de objetos compartilhados
Esta seção detalha os tipos de objetos compartilhados aos quais a API de Telemetria do Lambda oferece suporte.
InitPhase
Uma enumeração da string que descreve a fase em que ocorre a etapa de inicialização. Na maioria dos casos, o Lambda executa o código de inicialização da função durante a fase init. No entanto, em alguns casos de erro, o Lambda pode executar novamente o código de inicialização da função durante a fase invoke. (Isso é chamado de suppressed init [inicialização suprimida]).
-
Tipo:
String -
Valores válidos:
init|invoke|snap-start
InitReportMetrics
Um objeto que contém as métricas sobre uma fase de inicialização.
-
Tipo:
Object
Um objeto InitReportMetrics tem a forma a seguir:
InitReportMetrics: Object - durationMs: Double
Veja a seguir um exemplo de um objeto InitReportMetrics:
{ "durationMs": 247.88 }
InitType
Uma enumeração de string que descreve como o Lambda inicializou o ambiente.
-
Tipo:
String -
Valores válidos:
on-demand|provisioned-concurrency
ReportMetrics
Um objeto que contém métricas sobre uma fase concluída.
-
Tipo:
Object
Um objeto ReportMetrics tem a forma a seguir:
ReportMetrics: Object - billedDurationMs: Integer - durationMs: Double - initDurationMs?: Double - maxMemoryUsedMB: Integer - memorySizeMB: Integer - restoreDurationMs?: Double
Veja a seguir um exemplo de um objeto ReportMetrics:
{ "billedDurationMs": 694, "durationMs": 693.92, "initDurationMs": 397.68, "maxMemoryUsedMB": 84, "memorySizeMB": 128 }
RestoreReportMetrics
Um objeto que contém métricas sobre uma fase de restauração concluída.
-
Tipo:
Object
Um objeto RestoreReportMetrics tem a forma a seguir:
RestoreReportMetrics: Object - durationMs: Double
Veja a seguir um exemplo de um objeto RestoreReportMetrics:
{ "durationMs": 15.19 }
RuntimeDoneMetrics
Um objeto que contém métricas sobre uma fase de invocação.
-
Tipo:
Object
Um objeto RuntimeDoneMetrics tem a forma a seguir:
RuntimeDoneMetrics: Object - durationMs: Double - producedBytes?: Integer
Veja a seguir um exemplo de um objeto RuntimeDoneMetrics:
{ "durationMs": 200.0, "producedBytes": 15 }
Span
Um objeto que contém detalhes sobre um span. Um span representa uma unidade de trabalho ou de operação em um rastreamento. Para obter mais informações sobre os spans, consulte Span
O Lambda é compatível com os seguintes spans para o evento platform.RuntimeDone:
-
O span
responseLatencydescreve quanto tempo sua função do Lambda demorou para começar a enviar a resposta. -
O span
responseDurationdescreve quanto tempo sua função do Lambda demorou para concluir o envio da resposta completa. -
O span
runtimeOverheaddescreve quanto tempo levou para o runtime do Lambda sinalizar que está pronto para processar a próxima invocação da função. Esse é o tempo que o runtime levou para chamar a próxima API de invocação para obter o próximo evento após retornar a resposta da função.
Veja a seguir um exemplo de um objeto do span responseLatency:
{ "name": "responseLatency", "start": "2022-08-02T12:01:23.521Z", "durationMs": 23.02 }
Status
Um objeto que descreve o status de uma fase de inicialização ou invocação. Se o status for failure ouerror, o objeto Status também conterá um campo errorType com a descrição do erro.
-
Tipo:
Object -
Valores de status válidos:
success|failure|error|timeout
TraceContext
Um objeto que descreve as propriedades de um rastreamento.
-
Tipo:
Object
Um objeto TraceContext tem a forma a seguir:
TraceContext: Object - spanId?: String - type: TracingType enum - value: String
Veja a seguir um exemplo de um objeto TraceContext:
{ "spanId": "073a49012f3c312e", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" }
TracingType
Uma enumeração de string que descreve o tipo de rastreamento em um objeto TraceContext.
-
Tipo:
String -
Valores válidos:
X-Amzn-Trace-Id