Conversione degli oggetti Event dell'API di telemetria Lambda in intervalli OpenTelemetry - AWS Lambda

Conversione degli oggetti Event dell'API di telemetria Lambda in intervalli OpenTelemetry

Lo schema dell'API di telemetria AWS Lambda è semanticamente compatibile con OpenTelemetry (OTel). Ciò significa che è possibile convertire gli oggetti Event dell'API di telemetria di AWS Lambda in intervalli OpenTelemetry (OTel). 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 eventi start, runtimeDone e runtimeReportrappresentano una singola chiamata di funzione. 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 sugli intervalli OTel, consulta Intervallo nella pagina API di tracciatura del sito Web della documentazione di OpenTelemetry.

Mappa a intervalli OTel con eventi di intervallo

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/D, perché l'evento non è ancora stato completato.

Span.Kind

Imposta su Server.

Span.Status

Imposta su Unset.

Span.TraceId

Analizza l'intestazione AWS X-Ray trovata in e.tracing.value, quindi usa il valore TraceId.

Span.ParentId

Analizza l'intestazione X-Ray 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/D per un contesto di traccia X-Ray.

Span.SpanContext.TraceFlags

Analizza l'intestazione X-Ray trovata in e.tracing.value, quindi usa il valore Sampled.

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.

In alternativa, utilizzare e.time - e.metrics.durationMs.

Span.EndTime

N/D, perché l'evento non è ancora stato completato.

Span.Kind

Imposta su Server.

Span.Status

Se e.status non è uguale a success, imposta su Error.

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'intestazione AWS X-Ray trovata in e.tracing.value, quindi usa il valore TraceId.

Span.ParentId

Analizza l'intestazione X-Ray 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/D per un contesto di traccia X-Ray.

Span.SpanContext.TraceFlags

Analizza l'intestazione X-Ray trovata in e.tracing.value, quindi usa il valore Sampled.

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.

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'intestazione AWS X-Ray trovata in e.tracing.value, quindi usa il valore TraceId.

Span.ParentId

Analizza l'intestazione X-Ray 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/D per un contesto di traccia X-Ray.

Span.SpanContext.TraceFlags

Analizza l'intestazione X-Ray trovata in e.tracing.value, quindi usa il valore Sampled.

Span.Attributes

La tua estensione può aggiungere qualsiasi valore personalizzato qui.

Mappa a intervalli OTel con intervalli secondari

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

In alternativa, utilizzare e.time - e.metrics.durationMs.

Span.EndTime

N/D, perché l'evento non è ancora stato completato.

Span.Kind

Imposta su Server.

Span.Status

Se e.status non è uguale a success, imposta su Error.

In caso contrario, imposta il valore su Ok.

Span.TraceId

Analizza l'intestazione AWS X-Ray trovata in e.tracing.value, quindi usa il valore TraceId.

Span.ParentId

Analizza l'intestazione X-Ray 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/D per un contesto di traccia X-Ray.

Span.SpanContext.TraceFlags

Analizza l'intestazione X-Ray trovata in e.tracing.value, quindi usa il valore Sampled.

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/D per un contesto di traccia X-Ray.

ChildSpan[i].SpanContext.TraceFlags

Uguale all'elemento padre Span.SpanContext.TraceFlags.