Lambda Event 텔레메트리 API 객체를 스팬으로 변환 OpenTelemetry - AWS Lambda

Lambda Event 텔레메트리 API 객체를 스팬으로 변환 OpenTelemetry

AWS Lambda텔레메트리 API 스키마는 (oTel) 과 의미상 호환됩니다. OpenTelemetry 즉, AWS Lambda 텔레메트리 API Event 객체를 (oTel) 범위로 변환할 OpenTelemetry 수 있습니다. 변환할 때는 단일 Event 객체를 단일 OTel 범위에 매핑해서는 안 됩니다. 대신 수명 주기 단계와 관련한 세 가지 이벤트를 모두 단일 OTel 범위에 표시해야 합니다. 예를 들어 start, runtimeDoneruntimeReport 이벤트는 단일 함수 호출을 나타냅니다. 이 세 가지 이벤트를 모두 하나의 OTel 범위로 표시합니다.

범위 이벤트 또는 하위(중첩) 범위를 사용하여 이벤트를 변환할 수 있습니다. 이 페이지의 표에서는 두 접근 방식에 대한 텔레메트리 API 스키마 속성과 OTel 범위 속성 간의 매핑을 설명합니다. oTel 범위에 대한 자세한 내용은 문서 웹 사이트의 추적 API 페이지에서 범위를 참조하십시오. OpenTelemetry

OTel 범위를 범위 이벤트에 매핑

다음 표에서 e는 텔레메트리 소스에서 발생하는 이벤트를 나타냅니다.

*Start 이벤트 매핑
OpenTelemetry Lambda 텔레메트리 API 스키마

Span.Name

확장은 type 필드를 기반으로 이 값을 생성합니다.

Span.StartTime

e.time를 사용합니다.

Span.EndTime

이벤트가 아직 완료되지 않았으므로 해당 사항이 없습니다.

Span.Kind

Server로 설정합니다.

Span.Status

Unset로 설정합니다.

Span.TraceId

e.tracing.value에 있는 AWS X-Ray 헤더를 구문 분석한 다음 TraceId 값을 사용합니다.

Span.ParentId

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Parent 값을 사용합니다.

Span.SpanId

가능한 경우 e.tracing.spanId를 사용합니다. 그렇지 않으면 새 SpanId를 생성합니다.

Span.SpanContext.TraceState

X-Ray 트레이스 컨텍스트의 경우 해당 사항이 없습니다.

Span.SpanContext.TraceFlags

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Sampled 값을 사용합니다.

Span.Attributes

확장은 여기에 사용자 지정 값을 추가할 수 있습니다.

*RuntimeDone 이벤트 매핑
OpenTelemetry Lambda 텔레메트리 API 스키마

Span.Name

확장은 type 필드를 기반으로 값을 생성합니다.

Span.StartTime

일치하는 *Start 이벤트의 e.time을 사용합니다.

또는 e.time - e.metrics.durationMs를 사용합니다.

Span.EndTime

이벤트가 아직 완료되지 않았으므로 해당 사항이 없습니다.

Span.Kind

Server로 설정합니다.

Span.Status

e.statussuccess와 같지 않으면 Error로 설정합니다.

그렇지 않으면 Ok(으)로 설정합니다.

Span.Events[]

e.spans[]를 사용합니다.

Span.Events[i].Name

e.spans[i].name를 사용합니다.

Span.Events[i].Time

e.spans[i].start를 사용합니다.

Span.TraceId

e.tracing.value에 있는 AWS X-Ray 헤더를 구문 분석한 다음 TraceId 값을 사용합니다.

Span.ParentId

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Parent 값을 사용합니다.

Span.SpanId

*Start 이벤트와 동일한 SpanId를 사용합니다. 사용할 수 없는 경우 e.tracing.spanId를 사용하거나 새 SpanId를 생성합니다.

Span.SpanContext.TraceState

X-Ray 트레이스 컨텍스트의 경우 해당 사항이 없습니다.

Span.SpanContext.TraceFlags

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Sampled 값을 사용합니다.

Span.Attributes

확장은 여기에 사용자 지정 값을 추가할 수 있습니다.

*Report 이벤트 매핑
OpenTelemetry Lambda 텔레메트리 API 스키마

Span.Name

확장은 type 필드를 기반으로 값을 생성합니다.

Span.StartTime

일치하는 *Start 이벤트의 e.time을 사용합니다.

또는 e.time - e.metrics.durationMs를 사용합니다.

Span.EndTime

e.time를 사용합니다.

Span.Kind

Server로 설정합니다.

Span.Status

*RuntimeDone 이벤트와 동일한 값을 사용합니다.

Span.TraceId

e.tracing.value에 있는 AWS X-Ray 헤더를 구문 분석한 다음 TraceId 값을 사용합니다.

Span.ParentId

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Parent 값을 사용합니다.

Span.SpanId

*Start 이벤트와 동일한 SpanId를 사용합니다. 사용할 수 없는 경우 e.tracing.spanId를 사용하거나 새 SpanId를 생성합니다.

Span.SpanContext.TraceState

X-Ray 트레이스 컨텍스트의 경우 해당 사항이 없습니다.

Span.SpanContext.TraceFlags

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Sampled 값을 사용합니다.

Span.Attributes

확장은 여기에 사용자 지정 값을 추가할 수 있습니다.

OTel 범위를 하위 범위에 매핑

다음 표에서는 Lambda 텔레메트리 API 이벤트를 *RuntimeDone 범위의 하위(중첩) 범위가 포함된 OTel 범위로 변환하는 방법을 설명합니다. *Start*Report 매핑의 경우 하위 범위와 동일하므로 OTel 범위를 범위 이벤트에 매핑의 테이블을 참조하세요. 이 표에서 e는 텔레메트리 소스에서 발생하는 이벤트를 나타냅니다.

*RuntimeDone 이벤트 매핑
OpenTelemetry Lambda 텔레메트리 API 스키마

Span.Name

확장은 type 필드를 기반으로 값을 생성합니다.

Span.StartTime

일치하는 *Start 이벤트의 e.time을 사용합니다.

또는 e.time - e.metrics.durationMs를 사용합니다.

Span.EndTime

이벤트가 아직 완료되지 않았으므로 해당 사항이 없습니다.

Span.Kind

Server로 설정합니다.

Span.Status

e.statussuccess와 같지 않으면 Error로 설정합니다.

그렇지 않으면 Ok(으)로 설정합니다.

Span.TraceId

e.tracing.value에 있는 AWS X-Ray 헤더를 구문 분석한 다음 TraceId 값을 사용합니다.

Span.ParentId

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Parent 값을 사용합니다.

Span.SpanId

*Start 이벤트와 동일한 SpanId를 사용합니다. 사용할 수 없는 경우 e.tracing.spanId를 사용하거나 새 SpanId를 생성합니다.

Span.SpanContext.TraceState

X-Ray 트레이스 컨텍스트의 경우 해당 사항이 없습니다.

Span.SpanContext.TraceFlags

e.tracing.value에 있는 X-Ray 헤더를 구문 분석한 다음 Sampled 값을 사용합니다.

Span.Attributes

확장은 여기에 사용자 지정 값을 추가할 수 있습니다.

ChildSpan[i].Name

e.spans[i].name를 사용합니다.

ChildSpan[i].StartTime

e.spans[i].start를 사용합니다.

ChildSpan[i].EndTime

e.spans[i].start + e.spans[i].durations를 사용합니다.

ChildSpan[i].Kind

상위 Span.Kind와 동일합니다.

ChildSpan[i].Status

상위 Span.Status와 동일합니다.

ChildSpan[i].TraceId

상위 Span.TraceId와 동일합니다.

ChildSpan[i].ParentId

상위 Span.SpanId를 사용합니다.

ChildSpan[i].SpanId

SpanId를 생성합니다.

ChildSpan[i].SpanContext.TraceState

X-Ray 트레이스 컨텍스트의 경우 해당 사항이 없습니다.

ChildSpan[i].SpanContext.TraceFlags

상위 Span.SpanContext.TraceFlags와 동일합니다.