HTTP가 아닌 컨텍스트의 추적 ID에서 범위 구성
HTTP가 아닌 컨텍스트의 헤더를 사용하여 추적을 전파하는 경우 수동으로 구성해야 합니다. 제공된 추적 및 범위 ID를 사용하여 범위를 확장합니다. 이를 달성하는 방법은 다음과 같습니다.
구독자 측:
추적 및 스팬 헤더를 사용하여 수신 메시지를 처리하는 함수 내부:
예:
<code class="go">func handleIncomingMessage(request NewRequest) { traceID, err := trace.TraceIDFromHex(request.TraceID) if err != nil { fmt.Println("error: ", err) return } spanID, err := trace.SpanIDFromHex(request.SpanID) if err != nil { fmt.Println("error: ", err) return } spanContext := trace.NewSpanContext(trace.SpanContextConfig{ TraceID: traceID, SpanID: spanID, TraceFlags: 01, Remote: false, }) ctx := context.Background() ctx = trace.ContextWithSpanContext(ctx, spanContext) _, span := otel.Tracer("requestInLoop").Start(ctx, "requestInLoopSpan") span.AddEvent("processing....") }</code>
이 예에서 NewRequest는 다음을 포함하는 사용자 정의 유형입니다. 추적 및 범위 ID. handlerIncomingMessage 함수는 NewRequest 구조체를 입력으로 사용하고 제공된 추적 및 범위 ID를 사용하여 범위를 생성합니다.
참고: 제공된 범위의 IsRemote 필드가 있는 경우 새 범위가 생성되지 않는지 확인하세요. context는 true로 설정됩니다. 이는 해당 범위가 이미 원격으로 내보내졌음을 나타냅니다.
위 내용은 HTTP가 아닌 컨텍스트의 추적 ID에서 스팬을 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!