Это моя текущая реализация: < /p>
String importantTraceParent = "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01";
OtlpGrpcSpanExporter spanExporter = OtlpGrpcSpanExporter.builder()
.setEndpoint("https://tempo-prod.grafana.net:443")
.addHeader("Authorization", "abc")
.build();
SdkTracerProvider tracerProvider = SdkTracerProvider.builder()
.addSpanProcessor(SimpleSpanProcessor.create(spanExporter))
.build();
OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()
.setTracerProvider(tracerProvider)
.build();
Tracer tracer = openTelemetry.getTracer("this.is.the.child");
// TextMapGetter implementation
TextMapGetter getter = new TextMapGetter() {
@Override
public String get(Map carrier, String key) {
return carrier.get(key);
}
@Override
public Iterable keys(Map carrier) {
return carrier.keySet();
}
};
Map model = new HashMap();
model.put("traceparent", importantTraceParent);
Context extractedContext = openTelemetry.getPropagators()
.getTextMapPropagator()
.extract(Context.current(), model, getter);
try (Scope scope = extractedContext.makeCurrent()) {
Span serverSpan = tracer.spanBuilder("inner-child")
.setSpanKind(SpanKind.CONSUMER)
.startSpan();
try {
Thread.sleep(800);
System.out.println("This is an example operation.");
} finally {
serverSpan.end();
}
}
< /code>
Трипулярное значение, которое я использую, является действительным и происходит от существующего трассировки < /p>
Однако создается детский промежуток («внутренний ребенок»), но, по-видимому, не связан с родительским трассиром. При просмотре трасс в темпе Графана я не вижу детского промежутка, связанного с родительским трассировкой < /p>
То, что я пробовал: < /p>
Проверенный формат трацепарента < /li>
. hoping to achieve something like this, where things are linked together:

Unfortunately, the result is:
Как вы можете видеть, две следы здесь вообще не связаны. Они не знают друг друга. Но на самом деле один - ребенок другого.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... rent-trace