

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Conversion d'objets de l'API de télémétrie Lambda en Spans `Event` OpenTelemetry
<a name="telemetry-otel-spans"></a>

Le schéma de l'API AWS Lambda de télémétrie est sémantiquement compatible avec (). OpenTelemetry OTel Cela signifie que vous pouvez convertir les `Event` objets de votre API de AWS Lambda télémétrie en OpenTelemetry (OTel) Spans. Lors de la conversion, vous ne devez pas mapper un seul `Event` objet à un seul OTel Span. Vous devez plutôt présenter les trois événements liés à une phase du cycle de vie dans un seul OTel intervalle. Par exemple, les événements `start`, `runtimeDone` et `runtimeReport` représentent un seul appel de fonction. Présentez ces trois événements sous la forme d'un seul OTel Span.

Vous pouvez convertir vos événements en utilisant des événements Span ou des Spans enfants (imbriqués). Les tableaux de cette page décrivent les mappages entre les propriétés du schéma de l'API de télémétrie et les propriétés OTel Span pour les deux approches. Pour plus d'informations sur OTel Spans, consultez [Span](https://opentelemetry.io/docs/reference/specification/trace/api/#span) sur la page de l'**API de suivi** du site Web de OpenTelemetry Docs.

**Topics**
+ [Carte de OTel Spans avec Span Events](#telemetry-otel-span-events)
+ [Carte des OTel travées avec des travées pour les enfants](#telemetry-otel-child-spans)

## Carte de OTel Spans avec Span Events
<a name="telemetry-otel-span-events"></a>

Dans les tableaux suivants, `e` représente l’événement provenant de la source de télémétrie.

**Mappage des événements \$1Start**


| OpenTelemetry | Schéma de l’API de télémétrie Lambda | 
| --- | --- | 
|  `Span.Name`  |  Votre extension génère cette valeur sur la base du champ `type`.  | 
|  `Span.StartTime`  |  Utilisez `e.time`.  | 
|  `Span.EndTime`  |  S/O, car l’événement n’est pas encore terminé.  | 
|  `Span.Kind`  |  Définie sur `Server`.  | 
|  `Span.Status`  |  Définie sur `Unset`.  | 
|  `Span.TraceId`  |  Analysez l' AWS X-Ray en-tête trouvé dans`e.tracing.value`, puis utilisez la `TraceId` valeur.  | 
|  `Span.ParentId`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Parent`.  | 
|  `Span.SpanId`  |  Utilisez `e.tracing.spanId` si disponible. Sinon, générer un nouveau `SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  S/O pour un contexte de trace X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Sampled`.  | 
|  `Span.Attributes`  |  Votre extension peut ajouter toute valeur personnalisée ici.  | 

**Cartographie des RuntimeDone événements\$1**


| OpenTelemetry | Schéma de l’API de télémétrie Lambda | 
| --- | --- | 
|  `Span.Name`  |  Votre extension génère la valeur basée sur le champ `type`.  | 
|  `Span.StartTime`  |  Utilisez `e.time` à partir de l’événement `*Start` correspondant. Sinon, utilisez `e.time - e.metrics.durationMs`.  | 
|  `Span.EndTime`  |  S/O, car l’événement n’est pas encore terminé.  | 
|  `Span.Kind`  |  Définie sur `Server`.  | 
|  `Span.Status`  |  Si `e.status` n’est pas égal à `success`, mettez `Error`. Sinon, définissez sur `Ok`.  | 
|  `Span.Events[]`  |  Utilisez `e.spans[]`.  | 
|  `Span.Events[i].Name`  |  Utilisez `e.spans[i].name`.  | 
|  `Span.Events[i].Time`  |  Utilisez `e.spans[i].start`.  | 
|  `Span.TraceId`  |  Analysez l' AWS X-Ray en-tête trouvé dans`e.tracing.value`, puis utilisez la `TraceId` valeur.  | 
|  `Span.ParentId`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Parent`.  | 
|  `Span.SpanId`  |  Utilisez le même `SpanId` de l’événement `*Start`. S’il n’est pas disponible, utilisez alors `e.tracing.spanId`, ou générez un nouveau `SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  S/O pour un contexte de trace X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Sampled`.  | 
|  `Span.Attributes`  |  Votre extension peut ajouter toute valeur personnalisée ici.  | 

**Mappage des événements \$1Report**


| OpenTelemetry | Schéma de l’API de télémétrie Lambda | 
| --- | --- | 
|  `Span.Name`  |  Votre extension génère la valeur basée sur le champ `type`.  | 
|  `Span.StartTime`  |  Utilisez `e.time` à partir de l’événement `*Start` correspondant. Sinon, utilisez `e.time - e.metrics.durationMs`.  | 
|  `Span.EndTime`  |  Utilisez `e.time`.  | 
|  `Span.Kind`  |  Définie sur `Server`.  | 
|  `Span.Status`  |  Utilisez la même valeur que l’événement `*RuntimeDone`.  | 
|  `Span.TraceId`  |  Analysez l' AWS X-Ray en-tête trouvé dans`e.tracing.value`, puis utilisez la `TraceId` valeur.  | 
|  `Span.ParentId`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Parent`.  | 
|  `Span.SpanId`  |  Utilisez le même `SpanId` de l’événement `*Start`. S’il n’est pas disponible, utilisez alors `e.tracing.spanId`, ou générez un nouveau `SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  S/O pour un contexte de trace X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Sampled`.  | 
|  `Span.Attributes`  |  Votre extension peut ajouter toute valeur personnalisée ici.  | 

## Carte des OTel travées avec des travées pour les enfants
<a name="telemetry-otel-child-spans"></a>

Le tableau suivant décrit comment convertir les événements de l'API de télémétrie Lambda en OTel spans with Child (imbriqué) Spans for Spans. `*RuntimeDone` Pour les mappages `*Start` et `*Report`, reportez-vous aux tableaux de [Carte de OTel Spans avec Span Events](#telemetry-otel-span-events), car ils sont les mêmes pour les Spans enfant. Dans cette table, `e` représente l’événement provenant de la source de télémétrie.

**Cartographie des RuntimeDone événements\$1**


| OpenTelemetry | Schéma de l’API de télémétrie Lambda | 
| --- | --- | 
|  `Span.Name`  |  Votre extension génère la valeur basée sur le champ `type`.  | 
|  `Span.StartTime`  |  Utilisez `e.time` à partir de l’événement `*Start` correspondant. Sinon, utilisez `e.time - e.metrics.durationMs`.  | 
|  `Span.EndTime`  |  S/O, car l’événement n’est pas encore terminé.  | 
|  `Span.Kind`  |  Définie sur `Server`.  | 
|  `Span.Status`  |  Si `e.status` n’est pas égal à `success`, mettez `Error`. Sinon, définissez sur `Ok`.  | 
|  `Span.TraceId`  |  Analysez l' AWS X-Ray en-tête trouvé dans`e.tracing.value`, puis utilisez la `TraceId` valeur.  | 
|  `Span.ParentId`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Parent`.  | 
|  `Span.SpanId`  |  Utilisez le même `SpanId` de l’événement `*Start`. S’il n’est pas disponible, utilisez alors `e.tracing.spanId`, ou générez un nouveau `SpanId`.  | 
|  `Span.SpanContext.TraceState`  |  S/O pour un contexte de trace X-Ray.  | 
|  `Span.SpanContext.TraceFlags`  |  Analysez l’en-tête X-Ray trouvé dans `e.tracing.value`, puis utilisez la valeur `Sampled`.  | 
|  `Span.Attributes`  |  Votre extension peut ajouter toute valeur personnalisée ici.  | 
|  `ChildSpan[i].Name`  |  Utilisez `e.spans[i].name`.  | 
|  `ChildSpan[i].StartTime`  |  Utilisez `e.spans[i].start`.  | 
|  `ChildSpan[i].EndTime`  |  Utilisez `e.spans[i].start + e.spans[i].durations`.  | 
|  `ChildSpan[i].Kind`  |  Identique au parent `Span.Kind`.  | 
|  `ChildSpan[i].Status`  |  Identique au parent `Span.Status`.  | 
|  `ChildSpan[i].TraceId`  |  Identique au parent `Span.TraceId`.  | 
|  `ChildSpan[i].ParentId`  |  Utilisez le parent `Span.SpanId`.  | 
|  `ChildSpan[i].SpanId`  |  Générer un nouveau `SpanId`.  | 
|  `ChildSpan[i].SpanContext.TraceState`  |  S/O pour un contexte de trace X-Ray.  | 
|  `ChildSpan[i].SpanContext.TraceFlags`  |  Identique au parent `Span.SpanContext.TraceFlags`.  | 