Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Anda Boleh Mencipta Span OpenTelemetry daripada String TraceID?
Untuk mewujudkan hubungan induk-anak antara rentang, pengepala mesti digunakan dalam situasi di mana penyebaran konteks tidak berdaya maju. Dalam senario ini, ID surih dan ID span terkandung dalam pengepala broker mesej, yang membolehkan pelanggan membuat span baharu dengan ID surih induk.
Langkah berikut boleh diambil untuk membina konteks atau rentang pada bahagian pelanggan menggunakan ID surih:
<code class="go">func constructNewSpanContext(traceID string) (spanContext trace.SpanContext, err error) { traceID, err := trace.TraceIDFromHex(traceID) if err != nil { return trace.SpanContext{}, err } return trace.NewSpanContext(trace.SpanContextConfig{ TraceID: traceID, }), nil }</code>
<code class="go">spanContext, err := constructNewSpanContext(request.TraceID) if err != nil { log.Fatal(err) }</code>
<code class="go">requestContext := context.Background() requestContext = trace.ContextWithSpanContext(requestContext, spanContext)</code>
<code class="go">requestInLoopSpan, _ := otel.Tracer("requestInLoop").Start(requestContext, "requestInLoopSpan")</code>
Dengan mengikut langkah ini, anda boleh berjaya membina rentang baharu pada bahagian pelanggan menggunakan ID surih yang diekstrak daripada pengepala mesej , memastikan hubungan hierarki antara rentang.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mencipta Span OpenTelemetry daripada String TraceID?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!