

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengonversi objek API `Event` Telemetri Lambda ke Span OpenTelemetry
<a name="telemetry-otel-spans"></a>

Skema API AWS Lambda Telemetri secara semantik kompatibel dengan (). OpenTelemetry OTel Ini berarti Anda dapat mengonversi `Event` objek API AWS Lambda Telemetri ke OpenTelemetry (OTel) Span. Saat mengonversi, Anda tidak boleh memetakan satu `Event` objek ke satu OTel Span. Sebagai gantinya, Anda harus menyajikan ketiga peristiwa yang terkait dengan fase siklus hidup dalam satu OTel Span. Misalnya, `start``runtimeDone`, dan `runtimeReport` peristiwa mewakili pemanggilan fungsi tunggal. Hadirkan ketiga acara ini sebagai OTel Span tunggal.

Anda dapat mengonversi acara menggunakan Span Events atau Child (nested) Span. Tabel di halaman ini menjelaskan pemetaan antara properti skema API Telemetri dan properti OTel Span untuk kedua pendekatan. Untuk informasi selengkapnya tentang OTel Rentang, lihat [Span](https://opentelemetry.io/docs/reference/specification/trace/api/#span) di halaman **Tracing API** di situs web OpenTelemetry Dokumen.

**Topics**
+ [Peta ke OTel Bentang dengan Acara Span](#telemetry-otel-span-events)
+ [Peta ke OTel Bentang dengan Rentang Anak](#telemetry-otel-child-spans)

## Peta ke OTel Bentang dengan Acara Span
<a name="telemetry-otel-span-events"></a>

Dalam tabel berikut, `e` mewakili peristiwa yang berasal dari sumber telemetri.

**Memetakan acara \$1Mulai**


| OpenTelemetry | Skema API Telemetri Lambda | 
| --- | --- | 
|  `Span.Name`  |  Ekstensi Anda menghasilkan nilai ini berdasarkan `type` bidang.  | 
|  `Span.StartTime`  |  Gunakan `e.time`.  | 
|  `Span.EndTime`  |  N/A, karena acara belum selesai.  | 
|  `Span.Kind`  |  Setel ke`Server`.  | 
|  `Span.Status`  |  Setel ke`Unset`.  | 
|  `Span.TraceId`  |  Parse AWS X-Ray header yang ditemukan di`e.tracing.value`, lalu gunakan `TraceId` nilainya.  | 
|  `Span.ParentId`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Parent` nilainya.  | 
|  `Span.SpanId`  |  Gunakan `e.tracing.spanId` jika tersedia. Jika tidak, buat yang baru`SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  N/A untuk konteks jejak X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Sampled` nilainya.  | 
|  `Span.Attributes`  |  Ekstensi Anda dapat menambahkan nilai kustom apa pun di sini.  | 

**Memetakan acara\$1 RuntimeDone **


| OpenTelemetry | Skema API Telemetri Lambda | 
| --- | --- | 
|  `Span.Name`  |  Ekstensi Anda menghasilkan nilai berdasarkan `type` bidang.  | 
|  `Span.StartTime`  |  Gunakan `e.time` dari `*Start` acara yang cocok. Alternatif lainnya, gunakan `e.time - e.metrics.durationMs`.  | 
|  `Span.EndTime`  |  N/A, karena acara belum selesai.  | 
|  `Span.Kind`  |  Setel ke`Server`.  | 
|  `Span.Status`  |  Jika `e.status` tidak sama`success`, maka atur ke`Error`. Jika tidak, atur ke`Ok`.  | 
|  `Span.Events[]`  |  Gunakan `e.spans[]`.  | 
|  `Span.Events[i].Name`  |  Gunakan `e.spans[i].name`.  | 
|  `Span.Events[i].Time`  |  Gunakan `e.spans[i].start`.  | 
|  `Span.TraceId`  |  Parse AWS X-Ray header yang ditemukan di`e.tracing.value`, lalu gunakan `TraceId` nilainya.  | 
|  `Span.ParentId`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Parent` nilainya.  | 
|  `Span.SpanId`  |  Gunakan hal yang sama `SpanId` dari `*Start` acara tersebut. Jika tidak tersedia, maka gunakan`e.tracing.spanId`, atau buat yang baru`SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  N/A untuk konteks jejak X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Sampled` nilainya.  | 
|  `Span.Attributes`  |  Ekstensi Anda dapat menambahkan nilai kustom apa pun di sini.  | 

**Memetakan \$1Laporkan peristiwa**


| OpenTelemetry | Skema API Telemetri Lambda | 
| --- | --- | 
|  `Span.Name`  |  Ekstensi Anda menghasilkan nilai berdasarkan `type` bidang.  | 
|  `Span.StartTime`  |  Gunakan `e.time` dari `*Start` acara yang cocok. Alternatif lainnya, gunakan `e.time - e.metrics.durationMs`.  | 
|  `Span.EndTime`  |  Gunakan `e.time`.  | 
|  `Span.Kind`  |  Setel ke`Server`.  | 
|  `Span.Status`  |  Gunakan nilai yang sama dengan `*RuntimeDone` acara.  | 
|  `Span.TraceId`  |  Parse AWS X-Ray header yang ditemukan di`e.tracing.value`, lalu gunakan `TraceId` nilainya.  | 
|  `Span.ParentId`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Parent` nilainya.  | 
|  `Span.SpanId`  |  Gunakan hal yang sama `SpanId` dari `*Start` acara tersebut. Jika tidak tersedia, maka gunakan`e.tracing.spanId`, atau buat yang baru`SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  N/A untuk konteks jejak X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Sampled` nilainya.  | 
|  `Span.Attributes`  |  Ekstensi Anda dapat menambahkan nilai kustom apa pun di sini.  | 

## Peta ke OTel Bentang dengan Rentang Anak
<a name="telemetry-otel-child-spans"></a>

Tabel berikut menjelaskan cara mengonversi peristiwa API Telemetri Lambda menjadi OTel Rentang dengan Rentang Anak (bersarang) untuk Rentang. `*RuntimeDone` Untuk `*Start` dan `*Report` pemetaan, lihat tabel di[Peta ke OTel Bentang dengan Acara Span](#telemetry-otel-span-events), karena sama untuk Rentang Anak. Dalam tabel ini, `e` mewakili peristiwa yang berasal dari sumber telemetri.

**Memetakan acara\$1 RuntimeDone **


| OpenTelemetry | Skema API Telemetri Lambda | 
| --- | --- | 
|  `Span.Name`  |  Ekstensi Anda menghasilkan nilai berdasarkan `type` bidang.  | 
|  `Span.StartTime`  |  Gunakan `e.time` dari `*Start` acara yang cocok. Alternatif lainnya, gunakan `e.time - e.metrics.durationMs`.  | 
|  `Span.EndTime`  |  N/A, karena acara belum selesai.  | 
|  `Span.Kind`  |  Setel ke`Server`.  | 
|  `Span.Status`  |  Jika `e.status` tidak sama`success`, maka atur ke`Error`. Jika tidak, atur ke`Ok`.  | 
|  `Span.TraceId`  |  Parse AWS X-Ray header yang ditemukan di`e.tracing.value`, lalu gunakan `TraceId` nilainya.  | 
|  `Span.ParentId`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Parent` nilainya.  | 
|  `Span.SpanId`  |  Gunakan hal yang sama `SpanId` dari `*Start` acara tersebut. Jika tidak tersedia, maka gunakan`e.tracing.spanId`, atau buat yang baru`SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  N/A untuk konteks jejak X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Parse header X-Ray yang ditemukan di`e.tracing.value`, lalu gunakan `Sampled` nilainya.  | 
|  `Span.Attributes`  |  Ekstensi Anda dapat menambahkan nilai kustom apa pun di sini.  | 
|  `ChildSpan[i].Name`  |  Gunakan `e.spans[i].name`.  | 
|  `ChildSpan[i].StartTime`  |  Gunakan `e.spans[i].start`.  | 
|  `ChildSpan[i].EndTime`  |  Gunakan `e.spans[i].start + e.spans[i].durations`.  | 
|  `ChildSpan[i].Kind`  |  Sama seperti orang tua`Span.Kind`.  | 
|  `ChildSpan[i].Status`  |  Sama seperti orang tua`Span.Status`.  | 
|  `ChildSpan[i].TraceId`  |  Sama seperti orang tua`Span.TraceId`.  | 
|  `ChildSpan[i].ParentId`  |  Gunakan orang tua`Span.SpanId`.  | 
|  `ChildSpan[i].SpanId`  |  Hasilkan yang baru`SpanId`.  | 
|  `ChildSpan[i].SpanContext.TraceState`  |  N/A untuk konteks jejak X-Ray.  | 
|  `ChildSpan[i].SpanContext.TraceFlags`  |  Sama seperti orang tua`Span.SpanContext.TraceFlags`.  | 