View a markdown version of this page

Lambda Telemetry API-Ereignisobjekte in Spans konvertieren OpenTelemetry - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Lambda Telemetry API-Ereignisobjekte in Spans konvertieren OpenTelemetry

Das AWS Lambda Telemetrie-API-Schema ist semantisch kompatibel mit (Otel). OpenTelemetry Das bedeutet, dass Sie Ihre AWS Lambda Event Telemetrie-API-Objekte in OpenTelemetry (oTEL) -Spans konvertieren können. Beim Konvertieren sollten Sie kein einzelnes Event-Objekt einem einzelnen OTel Span zuordnen.

Stattdessen sollten Sie alle drei Ereignisse, die sich auf eine Lebenszyklusphase beziehen, in einem einzigen OTel-Span darstellen. Die start, runtimeDone, und runtimeReport-Ereignisse repräsentieren beispielsweise einen einzelnen Funktionsaufruf. Stellen Sie alle drei Ereignisse als einen einzigen OTel-Span dar.

Sie können Ihre Ereignisse mithilfe von Span-Ereignissen oder untergeordneten (verschachtelten) Spans konvertieren. Die Tabellen auf dieser Seite beschreiben die Zuordnungen zwischen Telemetrie-API-Schemaeigenschaften und OTel-Span-Eigenschaften für beide Ansätze. Weitere Informationen zu OTEL Spans finden Sie unter https://opentelemetry.io/docs/reference/specification/trace/api/#span Span auf der Tracing-API-Seite der Docs-Website. OpenTelemetry

Zuordnung zu OTel Spans mit Span-Ereignissen

In den folgenden Tabellen stellt e das Ereignis dar, das von der Telemetrie-Quelle stammt.

Zuordnung der *Start-Ereignisse

OpenTelemetry Schema der Lambda-Telemetrie-API

Span.Name

Ihre Erweiterung generiert diesen Wert basierend auf dem type-Feld.

Span.StartTime

Verwenden Sie e.time.

Span.EndTime

N/A, weil die Veranstaltung noch nicht abgeschlossen ist.

Span.Kind

Setzen Sie diesen Wert auf Server.

Span.Status

Setzen Sie diesen Wert auf Unset.

Span.TraceId

Analysieren Sie den in gefundenen AWS X-Ray Header e.tracing.value und verwenden Sie dann den TraceId Wert.

Span.ParentId

Analysieren Sie den X-Ray Header, der in gefunden wurdee.tracing.value, und verwenden Sie dann den Parent Wert.

Span.SpanId

Verwenden Sie e.tracing.spanId, falls verfügbar. Generieren Sie andernfalls eine neue SpanId.

Span.SpanContext.TraceState

N/A für einen X-Ray Trace-Kontext.

Span.SpanContext.TraceFlags

Analysieren Sie den in gefundenen X-Ray Header e.tracing.value und verwenden Sie dann den Sampled Wert.

Span.Attributes

Ihre Erweiterung kann hier beliebige benutzerdefinierte Werte hinzufügen.

Zuordnung der RuntimeDone *-Ereignisse

OpenTelemetry Schema der Lambda-Telemetrie-API

Span.Name

Ihre Erweiterung generiert den Wert basierend auf dem type-Feld.

Span.StartTime

Verwenden Sie e.time aus dem übereinstimmenden *Start-Ereignis.

Als alternative Vorgehensweise verwenden Sie e.time - e.metrics.durationMs.

Span.EndTime

N/A, weil die Veranstaltung noch nicht abgeschlossen ist.

Span.Kind

Setzen Sie diesen Wert auf Server.

Span.Status

Wenn e.status nicht gleich success ist, dann Wert auf Error festlegen.

Ansonsten auf Ok festlegen.

Span.Events[]

Verwenden Sie e.spans[].

Span.Events[i].Name

Verwenden Sie e.spans[i].name.

Span.Events[i].Time

Verwenden Sie e.spans[i].start.

Span.TraceId

Analysieren Sie den in gefundenen AWS X-Ray Header e.tracing.value und verwenden Sie dann den TraceId Wert.

Span.ParentId

Analysieren Sie den X-Ray Header, der in gefunden wurdee.tracing.value, und verwenden Sie dann den Parent Wert.

Span.SpanId

Verwenden Sie dieselbe SpanId aus dem *Start-Ereignis. Falls nicht verfügbar, verwenden Sie e.tracing.spanId oder generieren Sie eine neue SpanId.

Span.SpanContext.TraceState

N/A für einen X-Ray Trace-Kontext.

Span.SpanContext.TraceFlags

Analysieren Sie den in gefundenen X-Ray Header e.tracing.value und verwenden Sie dann den Sampled Wert.

Span.Attributes

Ihre Erweiterung kann hier beliebige benutzerdefinierte Werte hinzufügen.

Zuordnung der *Report-Ereignisse

OpenTelemetry Schema der Lambda-Telemetrie-API

Span.Name

Ihre Erweiterung generiert den Wert basierend auf dem type-Feld.

Span.StartTime

Verwenden Sie e.time aus dem übereinstimmenden *Start-Ereignis.

Als alternative Vorgehensweise verwenden Sie e.time - e.metrics.durationMs.

Span.EndTime

Verwenden Sie e.time.

Span.Kind

Setzen Sie diesen Wert auf Server.

Span.Status

Verwenden Sie den gleichen Wert wie das *RuntimeDone-Ereignis.

Span.TraceId

Analysieren Sie den AWS X-Ray Header, der in gefunden wurdee.tracing.value, und verwenden Sie dann den TraceId Wert.

Span.ParentId

Analysieren Sie den X-Ray Header, der in gefunden wurdee.tracing.value, und verwenden Sie dann den Parent Wert.

Span.SpanId

Verwenden Sie dieselbe SpanId aus dem *Start-Ereignis. Falls nicht verfügbar, verwenden Sie e.tracing.spanId oder generieren Sie eine neue SpanId.

Span.SpanContext.TraceState

N/A für einen X-Ray Trace-Kontext.

Span.SpanContext.TraceFlags

Analysieren Sie den in gefundenen X-Ray Header e.tracing.value und verwenden Sie dann den Sampled Wert.

Span.Attributes

Ihre Erweiterung kann hier beliebige benutzerdefinierte Werte hinzufügen.

Zuordnung zu OTel-Spans mit untergeordneten Spans

Die folgende Tabelle beschreibt, wie Lambda-Telemetrie-API-Ereignisse in OTel-Spans mit untergeordneten (verschachtelten) Spans für *RuntimeDone-Spans konvertiert werden. Informationen zu *Start- und *Report-Zuordnungen finden Sie in den Tabellen in Zuordnung zu OTel Spans mit Span-Ereignissen, da diese für untergeordnete Spans identisch sind. In dieser Tabelle stellt e das Ereignis dar, das von der Telemetrie-Quelle stammt.

Zuordnung der RuntimeDone *-Ereignisse

OpenTelemetry Schema der Lambda-Telemetrie-API

Span.Name

Ihre Erweiterung generiert den Wert basierend auf dem type-Feld.

Span.StartTime

Verwenden Sie e.time aus dem übereinstimmenden *Start-Ereignis.

Als alternative Vorgehensweise verwenden Sie e.time - e.metrics.durationMs.

Span.EndTime

N/A, weil die Veranstaltung noch nicht abgeschlossen ist.

Span.Kind

Setzen Sie diesen Wert auf Server.

Span.Status

Wenn e.status nicht gleich success ist, dann Wert auf Error festlegen.

Ansonsten auf Ok festlegen.

Span.TraceId

Analysieren Sie den in gefundenen AWS X-Ray Header e.tracing.value und verwenden Sie dann den TraceId Wert.

Span.ParentId

Analysieren Sie den X-Ray Header, der in gefunden wurdee.tracing.value, und verwenden Sie dann den Parent Wert.

Span.SpanId

Verwenden Sie dieselbe SpanId aus dem *Start-Ereignis. Falls nicht verfügbar, verwenden Sie e.tracing.spanId oder generieren Sie eine neue SpanId.

Span.SpanContext.TraceState

N/A für einen X-Ray Trace-Kontext.

Span.SpanContext.TraceFlags

Analysieren Sie den in gefundenen X-Ray Header e.tracing.value und verwenden Sie dann den Sampled Wert.

Span.Attributes

Ihre Erweiterung kann hier beliebige benutzerdefinierte Werte hinzufügen.

ChildSpan[i].Name

Verwenden Sie e.spans[i].name.

ChildSpan[i].StartTime

Verwenden Sie e.spans[i].start.

ChildSpan[i].EndTime

Verwenden Sie e.spans[i].start + e.spans[i].durations.

ChildSpan[i].Kind

Wie bei übergeordnetem Span.Kind.

ChildSpan[i].Status

Wie bei übergeordnetem Span.Status.

ChildSpan[i].TraceId

Wie bei übergeordnetem Span.TraceId.

ChildSpan[i].ParentId

Verwenden Sie die übergeordnete Span.SpanId.

ChildSpan[i].SpanId

Generieren Sie eine neue SpanId.

ChildSpan[i].SpanContext.TraceState

N/A für einen X-Ray Trace-Kontext.

ChildSpan[i].SpanContext.TraceFlags

Wie bei übergeordnetem Span.SpanContext.TraceFlags.