

# Lambda Telemetry API `Event` スキーマリファレンス
<a name="telemetry-schema-reference"></a>

Lambda Telemetry API エンドポイントを使用して、拡張機能をテレメトリーストリームにサブスクライブします。Telemetry API エンドポイントは、`AWS_LAMBDA_RUNTIME_API` 環境変数から取得できます。API リクエストを送信するには、API バージョン (`2022-07-01/`) と `telemetry/` を付加します。例えば、次のようになります。

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

サブスクリプションレスポンスバージョン `2025-01-29` の OpenAPI Specification (OAS) 定義については、以下を参照してください。
+ **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)

以下の表は、Telemetry API がサポートするすべての `Event` オブジェクトタイプをまとめたものです。


| Category | イベントタイプ | 説明 | イベントレコードスキーマ | 
| --- | --- | --- | --- | 
|  プラットフォームイベント  |  `platform.initStart`  |  関数の初期化が開始されました。  |  [`platform.initStart`](#platform-initStart) スキーマ  | 
|  プラットフォームイベント  |  `platform.initRuntimeDone`  |  関数の初期化が完了しました。  |  [`platform.initRuntimeDone`](#platform-initRuntimeDone) スキーマ  | 
|  プラットフォームイベント  |  `platform.initReport`  |  関数の初期化のレポートです。  |  [`platform.initReport`](#platform-initReport) スキーマ  | 
|  プラットフォームイベント  |  `platform.start`  |  関数の呼び出しが開始されました。  |  [`platform.start`](#platform-start) スキーマ  | 
|  プラットフォームイベント  |  `platform.runtimeDone`  |  ランタイムが、成功または失敗のいずれかでイベントの処理を終了しました。  |  [`platform.runtimeDone`](#platform-runtimeDone) スキーマ  | 
|  プラットフォームイベント  |  `platform.report`  |  関数の呼び出しのレポートです。  |  [`platform.report`](#platform-report) スキーマ  | 
|  プラットフォームイベント  |  `platform.restoreStart`  |  ランタイムの復元が開始されました。  |  [`platform.restoreStart`](#platform-restoreStart) スキーマ  | 
|  プラットフォームイベント  |  `platform.restoreRuntimeDone`  |  ランタイムの復元が完了しました。  |  [`platform.restoreRuntimeDone`](#platform-restoreRuntimeDone) スキーマ  | 
|  プラットフォームイベント  |  `platform.restoreReport`  |  ランタイムの復元のレポート。  |  [`platform.restoreReport`](#platform-restoreReport) スキーマ  | 
|  プラットフォームイベント  |  `platform.telemetrySubscription`  |  拡張機能が Telemetry API にサブスクライブしました。  |  [`platform.telemetrySubscription`](#platform-telemetrySubscription) スキーマ  | 
|  プラットフォームイベント  |  `platform.logsDropped`  |  Lambda がログエントリをドロップしました。  |  [`platform.logsDropped`](#platform-logsDropped) スキーマ  | 
|  関数ログ  |  `function`  |  関数コードからのログ行です。  |  [`function`](#telemetry-api-function) スキーマ  | 
|  拡張ログ  |  `extension`  |  拡張コードからのログ行です。  |  [`extension`](#telemetry-api-extension) スキーマ  | 

**Contents**
+ [Telemetry API `Event` オブジェクトタイプ](#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)
+ [共有オブジェクトタイプ](#telemetry-api-objects)
  + [`InitPhase`](#InitPhase)
  + [`InitReportMetrics`](#InitReportMetrics)
  + [`InitType`](#InitType)
  + [`ReportMetrics`](#ReportMetrics)
  + [`RestoreReportMetrics`](#RestoreReportMetrics)
  + [`RuntimeDoneMetrics`](#RuntimeDoneMetrics)
  + [`Span`](#Span)
  + [`Status`](#Status)
  + [`TraceContext`](#TraceContext)
  + [`TracingType`](#TracingType)

## Telemetry API `Event` オブジェクトタイプ
<a name="telemetry-api-events"></a>

このセクションでは、Lambda Telemetry API がサポートする `Event` オブジェクトのタイプについて詳しく説明します。イベントの説明にある疑問符 (`?`) は、その属性がオブジェクト内に存在しない可能性があることを示します。

### `platform.initStart`
<a name="platform-initStart"></a>

`platform.initStart` イベントは、関数の初期化フェーズが開始されたことを示します。`platform.initStart` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformInitStart` オブジェクトには以下の属性があります。
+ **functionName** – `String`
+ **functionVersion** – `String`
+ **initializationType** – ``InitType`` オブジェクト
+ **instanceId?** – `String`
+ **instanceMaxMemory?** – `Integer`
+ **phase** – ``InitPhase`` オブジェクト
+ **runtimeVersion?** – `String`
+ **runtimeVersionArn?** – `String`

以下は、タイプ `platform.initStart` の `Event` の例です。

```
{
    "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>

`platform.initRuntimeDone` イベントは、関数の初期化フェーズが完了したことを示します。`platform.initRuntimeDone` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformInitRuntimeDone` オブジェクトには以下の属性があります。
+ **initializationType** – ``InitType`` オブジェクト
+ **phase** – ``InitPhase`` オブジェクト
+ **status** – ``Status`` オブジェクト
+ **spans?** – ``Span`` オブジェクトのリスト

以下は、タイプ `platform.initRuntimeDone` の `Event` の例です。

```
{
    "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>

`platform.initReport` イベントには、関数の初期化フェーズに関する全体的なレポートが含まれています。`platform.initReport` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformInitReport` オブジェクトには以下の属性があります。
+ **errorType?** – 文字列
+ **initializationType** – ``InitType`` オブジェクト
+ **phase** – ``InitPhase`` オブジェクト
+ **metrics** – ``InitReportMetrics`` オブジェクト
+ **spans?** – ``Span`` オブジェクトのリスト
+ **status** – ``Status`` オブジェクト

以下は、タイプ `platform.initReport` の `Event` の例です。

```
{
    "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>

`platform.start` イベントは、関数の呼び出しフェーズが開始されたことを示します。`platform.start` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformStart` オブジェクトには以下の属性があります。
+ **requestId** – `String`
+ **version?** – `String`
+ **tracing?** – ``TraceContext``

以下は、タイプ `platform.start` の `Event` の例です。

```
{
    "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>

`platform.runtimeDone` イベントは、関数の呼び出しフェーズが完了したことを示します。`platform.runtimeDone` `Event` オブジェクトは以下のような形状になっています。

**Lambda マネージドインスタンス**  
`platform.runtimeDone` イベントは Lambda マネージドインスタンスではサポートされていません。マネージドインスタンスで実行されている拡張機能は、マネージドインスタンスで `INVOKE` イベントをサブスクライブできないため、このイベントを受信しません。複数の呼び出しを同時に処理できる同時実行モデルにより、拡張機能は、従来の Lambda (デフォルト) 関数で行われている、個々の呼び出しの呼び出し後処理を実行できません。  
マネージドインスタンスの場合、通常は `platform.runtimeDone` に含まれる `responseLatency` および `responseDuration` スパンが、代わりに `platform.report` イベントで使用できます。詳細については、「[`platform.report`](#platform-report)」を参照してください。

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

`PlatformRuntimeDone` オブジェクトには以下の属性があります。
+ **errorType?** – `String`
+ **metrics?** – ``RuntimeDoneMetrics`` オブジェクト
+ **requestId** – `String`
+ **status** – ``Status`` オブジェクト
+ **spans?** – ``Span`` オブジェクトのリスト
+ **tracing?** – ``TraceContext`` オブジェクト

以下は、タイプ `platform.runtimeDone` の `Event` の例です。

```
{
    "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>

`platform.report` イベントには、関数の呼び出しフェーズに関する全体的なレポートが含まれています。`platform.report` `Event` オブジェクトは以下のような形状になっています。

**Lambda マネージドインスタンス**  
Lambda マネージドインスタンスの `platform.report` イベントには、Lambda (デフォルト) 関数とは異なるメトリクスとスパンがあります。マネージドインスタンス:  
**スパン**: `extensionOverhead` の代わりに `responseLatency` と `responseDuration` が含まれます。同時実行モデルにより、拡張機能がマネージドインスタンスの `INVOKE` イベントにサブスクライブできないため、`extensionOverhead` スパンは使用できません。
**メトリクス**: `durationMs` のみが含まれます。`billedDurationMs`、`initDurationMs`、`maxMemoryUsedMB`、`memorySizeMB` メトリクスは含まれません。これらの呼び出しごとのメトリクスは、同時実行環境には適用されません。リソース使用率メトリクスには、[Lambda マネージドインスタンスのモニタリング](lambda-managed-instances-monitoring.md) または [Lambda Insights](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-insights.html) を使用します。

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

`PlatformReport` オブジェクトには以下の属性があります。
+ **metrics** – ``ReportMetrics`` オブジェクト
+ **requestId** – `String`
+ **spans?** – ``Span`` オブジェクトのリスト
+ **status** – ``Status`` オブジェクト
+ **tracing?** – ``TraceContext`` オブジェクト

以下は、タイプ `platform.report` の `Event` の例です。

```
{
    "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>

`platform.restoreStart` イベントは、関数の環境復元イベントが開始されたことを示します。環境復元イベントでは、Lambda は環境をゼロから初期化するのではなく、キャッシュされたスナップショットから環境を作成します。詳細については、「[Lambda SnapStart](snapstart.md)」を参照してください。`platform.restoreStart` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformRestoreStart` オブジェクトには以下の属性があります。
+ **functionName** – `String`
+ **functionVersion** – `String`
+ **instanceId?** – `String`
+ **instanceMaxMemory?** – `String`
+ **runtimeVersion?** – `String`
+ **runtimeVersionArn?** – `String`

以下は、タイプ `platform.restoreStart` の `Event` の例です。

```
{
    "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>

`platform.restoreRuntimeDone` イベントは、関数の環境復元イベントが完了したことを示します。環境復元イベントでは、Lambda は環境をゼロから初期化するのではなく、キャッシュされたスナップショットから環境を作成します。詳細については、「[Lambda SnapStart](snapstart.md)」を参照してください。`platform.restoreRuntimeDone` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformRestoreRuntimeDone` オブジェクトには以下の属性があります。
+ **errorType?** – `String`
+ **spans?** – ``Span`` オブジェクトのリスト
+ **status** – ``Status`` オブジェクト

以下は、タイプ `platform.restoreRuntimeDone` の `Event` の例です。

```
{
    "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>

`platform.restoreReport` イベントには、関数の復元イベントに関する全体的なレポートが含まれています。`platform.restoreReport` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformRestoreReport` オブジェクトには以下の属性があります。
+ **errorType?** – 文字列
+ **metrics?** – ``RestoreReportMetrics`` オブジェクト
+ **spans?** – ``Span`` オブジェクトのリスト
+ **status** – ``Status`` オブジェクト

以下は、タイプ `platform.restoreReport` の `Event` の例です。

```
{
    "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>

`extension` イベントには、拡張機能コードからのログが含まれています。`extension` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformExtension` オブジェクトには以下の属性があります。
+ **events** – `String` のリスト
+ **name** – `String`
+ **state** – `String`

以下は、タイプ `platform.extension` の `Event` の例です。

```
{
    "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>

`platform.telemetrySubscription` イベントには、拡張機能サブスクリプションに関する情報が含まれています。`platform.telemetrySubscription` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformTelemetrySubscription` オブジェクトには以下の属性があります。
+ **name** – `String`
+ **state** – `String`
+ **types** – `String` のリスト

以下は、タイプ `platform.telemetrySubscription` の `Event` の例です。

```
{
    "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>

`platform.logsDropped` イベントには、ドロップされたイベントに関する情報が含まれています。関数が短時間に大量のログを出力して Lambda が処理できない場合、Lambda は `platform.logsDropped` イベントを発行します。関数が生成するレートで CloudWatch または Telemetry API にサブスクライブされている拡張機能にログを送信できない場合、Lambda は関数の実行速度が低下するのを防ぐためにログを削除します。`platform.logsDropped` `Event` オブジェクトは以下のような形状になっています。

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

`PlatformLogsDropped` オブジェクトには以下の属性があります。
+ **droppedBytes** – `Integer`
+ **droppedRecords** – `Integer`
+ **reason** – `String`

以下は、タイプ `platform.logsDropped` の `Event` の例です。

```
{
    "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>

`function` イベントには、関数コードからのログが含まれています。`function` `Event` オブジェクトは以下のような形状になっています。

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

`record` フィールドの形式は、関数のログがプレーンテキスト形式か JSON 形式かによって異なります。ログ形式設定オプションの詳細については、「[JSON とプレーンテキストのログフォーマットの設定](monitoring-cloudwatchlogs-logformat.md)」を参照してください。

以下は、ログ形式がプレーンテキストであるタイプ `function` の `Event` 例です。

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

以下は、ログ形式が JSON であるタイプ `function` の `Event` 例です。

```
{
    "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!"
    }
}
```

**注記**  
使用しているスキーマのバージョンが `2022-12-13` バージョンよりも古い場合、関数のログ記録形式が JSON として設定されていても、`"record"` は常に文字列としてレンダリングされます。Lambda マネージドインスタンスの場合は、スキーマバージョン `2025-01-29` を使用する必要があります。

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

`extension` イベントには、拡張機能コードからのログが含まれています。`extension` `Event` オブジェクトは以下のような形状になっています。

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

`record` フィールドの形式は、関数のログがプレーンテキスト形式か JSON 形式かによって異なります。ログ形式設定オプションの詳細については、「[JSON とプレーンテキストのログフォーマットの設定](monitoring-cloudwatchlogs-logformat.md)」を参照してください。

以下は、ログ形式がプレーンテキストであるタイプ `extension` の `Event` 例です。

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

以下は、ログ形式が JSON であるタイプ `extension` の `Event` 例です。

```
{
    "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!"
    }    
}
```

**注記**  
使用しているスキーマのバージョンが `2022-12-13` バージョンよりも古い場合、関数のログ記録形式が JSON として設定されていても、`"record"` は常に文字列としてレンダリングされます。Lambda マネージドインスタンスの場合は、スキーマバージョン `2025-01-29` を使用する必要があります。

## 共有オブジェクトタイプ
<a name="telemetry-api-objects"></a>

このセクションでは、Lambda Telemetry API がサポートする共有オブジェクトのタイプについて詳しく説明します。

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

初期化ステップが行われるフェーズを記述する文字列列挙です。ほとんどの場合、Lambda は `init` フェーズ中に関数の初期化コードを実行しますが、一部のエラーケースでは、Lambda が `invoke` フェーズ中に関数の初期化コードを再実行する場合があります。(これは、*抑制された初期化*と呼ばれます。)
+ **型** – `String`
+ **有効な値** – `init`\$1`invoke`\$1`snap-start`

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

初期化フェーズに関するメトリクスが含まれたオブジェクトです。
+ **型** – `Object`

`InitReportMetrics` オブジェクトは以下のように形成されています。

```
InitReportMetrics: Object
- durationMs: Double
```

以下は、`InitReportMetrics` オブジェクトの例です。

```
{
    "durationMs": 247.88
}
```

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

Lambda が環境を初期化した方法を記述する文字列列挙です。
+ **型** – `String`
+ **有効な値** – `on-demand`\$1`provisioned-concurrency`

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

完了したフェーズに関するメトリクスが含まれるオブジェクトです。
+ **型** – `Object`

`ReportMetrics` オブジェクトは以下のように形成されています。

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

以下は、`ReportMetrics` オブジェクトの例です。

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

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

完了した復元フェーズに関するメトリクスが含まれるオブジェクトです。
+ **型** – `Object`

`RestoreReportMetrics` オブジェクトは以下のように形成されています。

```
RestoreReportMetrics: Object
- durationMs: Double
```

以下は、`RestoreReportMetrics` オブジェクトの例です。

```
{
    "durationMs": 15.19
}
```

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

呼び出しフェーズに関するメトリクスが含まれるオブジェクトです。
+ **型** – `Object`

`RuntimeDoneMetrics` オブジェクトは以下のように形成されています。

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

以下は、`RuntimeDoneMetrics` オブジェクトの例です。

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

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

スパンに関する詳細情報が含まれるオブジェクトです。スパンは、トレース内の作業または操作の単位を表します。スパンの詳細については、OpenTelemetry Docs ウェブサイトの「**Tracing API**」ページにある「[Span](https://opentelemetry.io/docs/reference/specification/trace/api/#span)」(スパン) を参照してください。

Lambda は、`platform.RuntimeDone` イベントに対して次のスパンをサポートしています。
+ `responseLatency` スパンは、Lambda 関数がレスポンスの送信を開始するまでにかかった時間を表します。
+ `responseDuration` スパンは、Lambda 関数がレスポンス全体の送信を完了するまでにかかった時間を表します。
+ `runtimeOverhead` スパンは、Lambda ランタイムが次の関数呼び出しを処理する準備ができたことを通知するまでにかかった時間を表します。これは、関数のレスポンスを返した後に、次のイベントを取得するための[次の呼び出し](runtimes-api.md#runtimes-api-next) API をランタイムが呼び出すまでにかかった時間です。

以下は、`responseLatency` スパンオブジェクトの例です。

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

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

初期化または呼び出しフェーズのステータスを記述するオブジェクトです。ステータスが `failure` または `error` の場合、`Status` オブジェクトにはエラーを記述する `errorType` フィールドも含まれています。
+ **型** – `Object`
+ **有効なステータス値** – `success`\$1`failure`\$1`error`\$1`timeout`

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

トレースのプロパティを記述するオブジェクトです。
+ **型** – `Object`

`TraceContext` オブジェクトは以下のように形成されています。

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

以下は、`TraceContext` オブジェクトの例です。

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

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

``TraceContext`` オブジェクト内のトレーシングのタイプを記述する文字列列挙です。
+ **型** – `String`
+ **有効な値** – `X-Amzn-Trace-Id`