

# Referência de esquema para `Event` da API de Telemetria do Lambda
<a name="telemetry-schema-reference"></a>

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 `2025-01-29`, consulte os itens a seguir:
+ **HTTP**: [telemetry-api-http-schema.zip](samples/events_http_schema_v2025_01_29.zip)
+ **TCP**: [telemetry-api-tcp-schema.zip](samples/events_tcp_schema_v2025_01_29.zip)

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  |  `platform.initStart`  |  A inicialização da função foi iniciada.  |  Esquema [`platform.initStart`](#platform-initStart)  | 
|  Evento de plataforma  |  `platform.initRuntimeDone`  |  A inicialização da função foi concluída.  |  Esquema [`platform.initRuntimeDone`](#platform-initRuntimeDone)  | 
|  Evento de plataforma  |  `platform.initReport`  |  Um relatório sobre a inicialização da função.  |  Esquema [`platform.initReport`](#platform-initReport)  | 
|  Evento de plataforma  |  `platform.start`  |  A invocação da função foi iniciada.  |  Esquema [`platform.start`](#platform-start)  | 
|  Evento de plataforma  |  `platform.runtimeDone`  |  O runtime concluiu o processamento de um evento com êxito ou com falha.  |  Esquema [`platform.runtimeDone`](#platform-runtimeDone)  | 
|  Evento de plataforma  |  `platform.report`  |  Um relatório sobre a invocação de função.  |  Esquema [`platform.report`](#platform-report)  | 
|  Evento de plataforma  |  `platform.restoreStart`  |  A restauração do runtime foi iniciada.  |  Esquema [`platform.restoreStart`](#platform-restoreStart)  | 
|  Evento de plataforma  |  `platform.restoreRuntimeDone`  |  A restauração do runtime foi concluída.  |  Esquema [`platform.restoreRuntimeDone`](#platform-restoreRuntimeDone)  | 
|  Evento de plataforma  |  `platform.restoreReport`  |  Relatório de restauração do runtime.  |  Esquema [`platform.restoreReport`](#platform-restoreReport)  | 
|  Evento de plataforma  |  `platform.telemetrySubscription`  |  A extensão foi inscrita na API de telemetria.  |  Esquema [`platform.telemetrySubscription`](#platform-telemetrySubscription)  | 
|  Evento de plataforma  |  `platform.logsDropped`  |  O Lambda descartou entradas de log.  |  Esquema [`platform.logsDropped`](#platform-logsDropped)  | 
|  Logs de função  |  `function`  |  Uma linha de log do código da função.  |  Esquema [`function`](#telemetry-api-function)  | 
|  Logs de extensões  |  `extension`  |  Uma linha de log do código de extensão.  |  Esquema [`extension`](#telemetry-api-extension)  | 

**Contents**
+ [Tipos de objeto `Event` da API de telemetria](#telemetry-api-events)
  + [`platform.initStart`](#platform-initStart)
  + [`platform.initRuntimeDone`](#platform-initRuntimeDone)
  + [`platform.initReport`](#platform-initReport)
  + [`platform.start`](#platform-start)
  + [`platform.runtimeDone`](#platform-runtimeDone)
  + [`platform.report`](#platform-report)
  + [`platform.restoreStart`](#platform-restoreStart)
  + [`platform.restoreRuntimeDone`](#platform-restoreRuntimeDone)
  + [`platform.restoreReport`](#platform-restoreReport)
  + [`platform.extension`](#platform-extension)
  + [`platform.telemetrySubscription`](#platform-telemetrySubscription)
  + [`platform.logsDropped`](#platform-logsDropped)
  + [`function`](#telemetry-api-function)
  + [`extension`](#telemetry-api-extension)
+ [Tipos de objetos compartilhados](#telemetry-api-objects)
  + [`InitPhase`](#InitPhase)
  + [`InitReportMetrics`](#InitReportMetrics)
  + [`InitType`](#InitType)
  + [`ReportMetrics`](#ReportMetrics)
  + [`RestoreReportMetrics`](#RestoreReportMetrics)
  + [`RuntimeDoneMetrics`](#RuntimeDoneMetrics)
  + [`Span`](#Span)
  + [`Status`](#Status)
  + [`TraceContext`](#TraceContext)
  + [`TracingType`](#TracingType)

## Tipos de objeto `Event` da API de telemetria
<a name="telemetry-api-events"></a>

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`
<a name="platform-initStart"></a>

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:
+ **functionName** – `String`
+ **functionVersion**: `String`
+ **initializationType**: objeto ``InitType``
+ **instanceId?**: `String`
+ **instanceMaxMemory?**: `Integer`
+ **phase** (fase): objeto ``InitPhase``
+ **runtimeVersion?** – `String`
+ **runtimeVersionArn?** – `String`

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`
<a name="platform-initRuntimeDone"></a>

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:
+ **initializationType**: objeto ``InitType``
+ **phase** (fase): objeto ``InitPhase``
+ **status**: objeto ``Status``
+ **spans?** : lista de objetos ``Span``

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`
<a name="platform-initReport"></a>

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`
<a name="platform-start"></a>

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`
<a name="platform-runtimeDone"></a>

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:

**Instâncias gerenciadas do Lambda**  
Não há suporte para o evento `platform.runtimeDone` em instâncias gerenciadas do Lambda. As extensões executadas em instâncias gerenciadas não receberão esse evento porque as extensões não podem se inscrever no evento `INVOKE` em instâncias gerenciadas. Devido ao modelo de execução simultânea em que várias invocações podem ser processadas simultaneamente, as extensões não podem realizar o processamento pós-invocação para invocações individuais, como acontece tradicionalmente nas funções do Lambda (padrão).  
Em instâncias gerenciadas, as extensões `responseLatency` e `responseDuration` que normalmente são incluídas em `platform.runtimeDone` estão disponíveis no evento `platform.report`. Para mais detalhes, consulte [`platform.report`](#platform-report).

```
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`
<a name="platform-report"></a>

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:

**Instâncias gerenciadas do Lambda**  
O evento `platform.report` para instâncias gerenciadas do Lambda tem métricas e extensões diferentes em comparação com as funções do Lambda (padrão). Para instâncias gerenciadas  
**Extensões**: contém `responseLatency` e `responseDuration` em vez de `extensionOverhead`. A extensão `extensionOverhead` não está disponível porque as extensões não podem assinar o evento em `INVOKE` em instâncias gerenciadas devido ao modelo de execução simultânea.
**Métricas**: inclui apenas `durationMs`. As métricas a seguir não estão incluídas: `billedDurationMs`, `initDurationMs`, `maxMemoryUsedMB` e `memorySizeMB`. Essas métricas por invocação não são aplicáveis no ambiente de execução simultânea. Para métricas de utilização de recursos, use [Monitoramento de instâncias gerenciadas do Lambda](lambda-managed-instances-monitoring.md) ou o [Lambda Insights](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-insights.html).

```
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`
<a name="platform-restoreStart"></a>

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 obter mais informações, consulte [Lambda SnapStart](snapstart.md). 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`
<a name="platform-restoreRuntimeDone"></a>

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 obter mais informações, consulte [Lambda SnapStart](snapstart.md). 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:
+ **errorType?** – `String`
+ **spans?** : lista de objetos ``Span``
+ **status**: objeto ``Status``

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`
<a name="platform-restoreReport"></a>

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`
<a name="platform-extension"></a>

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`
<a name="platform-telemetrySubscription"></a>

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`
<a name="platform-logsDropped"></a>

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`
<a name="telemetry-api-function"></a>

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](monitoring-cloudwatchlogs-logformat.md).

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. Para instâncias gerenciadas do Lambda, é necessário usar a versão `2025-01-29` do esquema.

### `extension`
<a name="telemetry-api-extension"></a>

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](monitoring-cloudwatchlogs-logformat.md).

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. Para instâncias gerenciadas do Lambda, é necessário usar a versão `2025-01-29` do esquema.

## Tipos de objetos compartilhados
<a name="telemetry-api-objects"></a>

Esta seção detalha os tipos de objetos compartilhados aos quais a API de Telemetria do Lambda oferece suporte.

### `InitPhase`
<a name="InitPhase"></a>

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`\$1`invoke`\$1`snap-start`

### `InitReportMetrics`
<a name="InitReportMetrics"></a>

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`
<a name="InitType"></a>

Uma enumeração de string que descreve como o Lambda inicializou o ambiente.
+ **Tipo** – `String`
+ **Valores válidos** – `on-demand`\$1`provisioned-concurrency`

### `ReportMetrics`
<a name="ReportMetrics"></a>

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`
<a name="RestoreReportMetrics"></a>

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`
<a name="RuntimeDoneMetrics"></a>

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`
<a name="Span"></a>

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](https://opentelemetry.io/docs/reference/specification/trace/api/#span) na página **Tracing API** (API de rastreamento) do site OpenTelemetry Docs.

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](runtimes-api.md#runtimes-api-next) 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`
<a name="Status"></a>

Um objeto que descreve o status de uma fase de inicialização ou invocação. Se o status for `failure` ou`error`, o objeto `Status` também conterá um campo `errorType` com a descrição do erro.
+ **Tipo** – `Object`
+ **Valores de status válidos** – `success`\$1`failure`\$1`error`\$1`timeout`

### `TraceContext`
<a name="TraceContext"></a>

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`
<a name="TracingType"></a>

Uma enumeração de string que descreve o tipo de rastreamento em um objeto ``TraceContext``.
+ **Tipo** – `String`
+ **Valores válidos** – `X-Amzn-Trace-Id`