

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# `Conversione degli oggetti Event dell'API Lambda Telemetry in Spans` OpenTelemetry
<a name="telemetry-otel-spans"></a>

Lo schema dell'API di AWS Lambda telemetria è semanticamente compatibile con (Otel). OpenTelemetry Ciò significa che puoi convertire gli oggetti dell'API di AWS Lambda telemetria in (Otel) Spans. `Event` OpenTelemetry Durante la conversione, non dovresti mappare un singolo oggetto `Event` a un singolo intervallo OTel.

Dovreste invece presentare tutti e tre gli eventi relativi a una fase del ciclo di vita in un singolo intervallo OTel. Ad esempio, gli `runtimeReport` eventi `start``runtimeDone`, e rappresentano una singola chiamata di Event Function. Presenta tutti e tre questi eventi come un unico intervallo OTel.

Puoi convertire i tuoi eventi usando Span Events o Child Spans (nidificati). Le tabelle di questa pagina descrivono le mappature tra le proprietà dello schema dell'API di telemetria e le proprietà dell'intervallo OTel per entrambi gli approcci. Per ulteriori informazioni su Otel Spans, consulta [Span](https://opentelemetry.io/docs/reference/specification/trace/api/#span) nella pagina **Tracing API** del sito Web Docs. OpenTelemetry 

**Topics**
+ [Mappa a intervalli OTel con eventi di intervallo](#telemetry-otel-span-events)
+ [Mappa a intervalli OTel con intervalli secondari](#telemetry-otel-child-spans)

## Mappa a intervalli OTel con eventi di intervallo
<a name="telemetry-otel-span-events"></a>

Nelle seguenti tabelle, `e` rappresenta l'evento proveniente dall'origine di telemetria.

**Mappatura degli eventi \*Start**


| OpenTelemetry | Schema dell'API di telemetria Lambda | 
| --- | --- | 
| `Span.Name` | La tua estensione genera questo valore in base al campo `type`. | 
| `Span.StartTime` | Utilizza `e.time`. | 
| `Span.EndTime` | N/A, perché l'evento non è ancora stato completato. | 
| `Span.Kind` | Imposta su `Server`. | 
| `Span.Status` | Imposta su `Unset`. | 
| `Span.TraceId` | Analizza l' AWS X-Ray intestazione trovata in`e.tracing.value`, quindi usa il `TraceId` valore. | 
| `Span.ParentId` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il valore. `Parent` | 
| `Span.SpanId` | Usa `e.tracing.spanId` se disponibile. Altrimenti, genera un nuovo `SpanId`. | 
| `Span.SpanContext.TraceState` | N/A per un contesto di X-Ray traccia. | 
| `Span.SpanContext.TraceFlags` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il `Sampled` valore. | 
| `Span.Attributes` | La tua estensione può aggiungere qualsiasi valore personalizzato qui. | 

**Mappatura degli eventi \* RuntimeDone **


| OpenTelemetry | Schema dell'API di telemetria Lambda | 
| --- | --- | 
| `Span.Name` | L'estensione genera il valore in base al campo `type`. | 
| `Span.StartTime` | Usa `e.time` dall'evento `*Start` corrispondente.<br />In alternativa, utilizzare `e.time - e.metrics.durationMs`. | 
| `Span.EndTime` | N/A, perché l'evento non è ancora stato completato. | 
| `Span.Kind` | Imposta su `Server`. | 
| `Span.Status` | Se `e.status` non è uguale a `success`, imposta su `Error`.<br />In caso contrario, imposta il valore su `Ok`. | 
| `Span.Events[]` | Utilizza `e.spans[]`. | 
| `Span.Events[i].Name` | Utilizza `e.spans[i].name`. | 
| `Span.Events[i].Time` | Utilizza `e.spans[i].start`. | 
| `Span.TraceId` | Analizza l' AWS X-Ray intestazione trovata in`e.tracing.value`, quindi usa il `TraceId` valore. | 
| `Span.ParentId` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il valore. `Parent` | 
| `Span.SpanId` | Usa lo stesso `SpanId` dell'evento `*Start`. Se non disponibile, usa `e.tracing.spanId` o genera un nuovo `SpanId`. | 
| `Span.SpanContext.TraceState` | N/A per un contesto di X-Ray traccia. | 
| `Span.SpanContext.TraceFlags` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il `Sampled` valore. | 
| `Span.Attributes` | La tua estensione può aggiungere qualsiasi valore personalizzato qui. | 

**Mappatura degli eventi \*Report**


| OpenTelemetry | Schema dell'API di telemetria Lambda | 
| --- | --- | 
| `Span.Name` | L'estensione genera il valore in base al campo `type`. | 
| `Span.StartTime` | Usa `e.time` dall'evento `*Start` corrispondente.<br />In alternativa, utilizzare `e.time - e.metrics.durationMs`. | 
| `Span.EndTime` | Utilizza `e.time`. | 
| `Span.Kind` | Imposta su `Server`. | 
| `Span.Status` | Usa lo stesso valore dell'evento `*RuntimeDone`. | 
| `Span.TraceId` | Analizza l' AWS X-Ray intestazione trovata in`e.tracing.value`, quindi usa il valore. `TraceId` | 
| `Span.ParentId` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il valore. `Parent` | 
| `Span.SpanId` | Usa lo stesso `SpanId` dell'evento `*Start`. Se non disponibile, usa `e.tracing.spanId` o genera un nuovo `SpanId`. | 
| `Span.SpanContext.TraceState` | N/A per un contesto di X-Ray traccia. | 
| `Span.SpanContext.TraceFlags` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il `Sampled` valore. | 
| `Span.Attributes` | La tua estensione può aggiungere qualsiasi valore personalizzato qui. | 

## Mappa a intervalli OTel con intervalli secondari
<a name="telemetry-otel-child-spans"></a>

La tabella seguente descrive come convertire gli eventi dell'API di telemetria Lambda in intervalli OTel con intervalli secondari (annidati) per gli intervalli `*RuntimeDone`. Per le mappature `*Start` e `*Report`, fai riferimento alle tabelle in [Mappa a intervalli OTel con eventi di intervallo](#telemetry-otel-span-events), poiché sono le stesse per gli intervalli secondari. In questa tabella, `e` rappresenta l'evento proveniente dall'origine di telemetria.

**Mappatura degli eventi \* RuntimeDone **


| OpenTelemetry | Schema dell'API di telemetria Lambda | 
| --- | --- | 
| `Span.Name` | L'estensione genera il valore in base al campo `type`. | 
| `Span.StartTime` | Usa `e.time` dall'evento `*Start` corrispondente.<br />In alternativa, utilizzare `e.time - e.metrics.durationMs`. | 
| `Span.EndTime` | N/A, perché l'evento non è ancora stato completato. | 
| `Span.Kind` | Imposta su `Server`. | 
| `Span.Status` | Se `e.status` non è uguale a `success`, imposta su `Error`.<br />In caso contrario, imposta il valore su `Ok`. | 
| `Span.TraceId` | Analizza l' AWS X-Ray intestazione trovata in`e.tracing.value`, quindi usa il `TraceId` valore. | 
| `Span.ParentId` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il valore. `Parent` | 
| `Span.SpanId` | Usa lo stesso `SpanId` dell'evento `*Start`. Se non disponibile, usa `e.tracing.spanId` o genera un nuovo `SpanId`. | 
| `Span.SpanContext.TraceState` | N/A per un contesto di X-Ray traccia. | 
| `Span.SpanContext.TraceFlags` | Analizza l' X-Ray intestazione trovata in`e.tracing.value`, quindi usa il `Sampled` valore. | 
| `Span.Attributes` | La tua estensione può aggiungere qualsiasi valore personalizzato qui. | 
| `ChildSpan[i].Name` | Utilizza `e.spans[i].name`. | 
| `ChildSpan[i].StartTime` | Utilizza `e.spans[i].start`. | 
| `ChildSpan[i].EndTime` | Utilizza `e.spans[i].start + e.spans[i].durations`. | 
| `ChildSpan[i].Kind` | Uguale all'elemento padre `Span.Kind`. | 
| `ChildSpan[i].Status` | Uguale all'elemento padre `Span.Status`. | 
| `ChildSpan[i].TraceId` | Uguale all'elemento padre `Span.TraceId`. | 
| `ChildSpan[i].ParentId` | Usa elemento padre `Span.SpanId`. | 
| `ChildSpan[i].SpanId` | Genera un nuovo `SpanId`. | 
| `ChildSpan[i].SpanContext.TraceState` | N/A per un contesto di X-Ray traccia. | 
| `ChildSpan[i].SpanContext.TraceFlags` | Uguale all'elemento padre `Span.SpanContext.TraceFlags`. | 