Conversion d'objets de l'API de télémétrie Lambda en Spans Event OpenTelemetry - AWS Lambda

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

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 sur la page de l'API de suivi du site Web de OpenTelemetry Docs.

Carte de OTel Spans avec Span Events

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

Mappage des événements *Start

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é danse.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*

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é danse.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 *Report

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é danse.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

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, 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*

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é danse.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.