我有必要手动将一个SpanContext插入到Spring RestTemplate中。
由于与问题无关的原因,我不能仅仅使用“开放-春天-网络启动”,因为这将与其他启动我已经设置,并使项目崩溃。
我已经找到了与将上下文注入HTTP请求相关的代码片段,但是我找不到与RestTemplate相关的任何内容
Tags.SPAN_KIND.set(tracer.activeSpan(), Tags.SPAN_KIND_CLIENT);
Tags.HTTP_METHOD.set(tracer.activeSpan(), "GET");
Tags.HTTP_URL.set(tracer.activeSpan(), url.toString());
tracer.inject(tracer.activeSpan().context(), Format.Builtin.HTTP_HEADERS, new RequestBuilderCarrier(requestBuilder));任何帮助都将不胜感激,谢谢!
发布于 2019-12-10 04:37:53
您可以在java-spring-web库中找到代码:
@Override
public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] body,
ClientHttpRequestExecution execution) throws IOException {
ClientHttpResponse httpResponse;
Span span = tracer.buildSpan(httpRequest.getMethod().toString())
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT)
.start();
tracer.inject(span.context(), Format.Builtin.HTTP_HEADERS,
new HttpHeadersCarrier(httpRequest.getHeaders()));
...
}参考文献:
https://stackoverflow.com/questions/58384437
复制相似问题