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 |
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
responseLatency
descreve quanto tempo sua função do Lambda demorou para começar a enviar a resposta. -
O span
responseDuration
descreve quanto tempo sua função do Lambda demorou para concluir o envio da resposta completa. -
O span
runtimeOverhead
descreve 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