如何从OpenTracing API获取跟踪ID?

时间:2017-03-09 15:45:29

标签: tracing opentracing

#105 davidB问:

  

我想对Span id(SpanContext id)具有读取权限,以便能够在日志中使用它并报告错误(对最终用户,...)。 [skip]我需要在错误消息中公开“trace id”,然后dev可以使用跟踪来调试支持,QA,最终用户报告的错误。

4 个答案:

答案 0 :(得分:2)

目前OpenTracing API未公开跟踪ID。本期正在讨论这个问题:https://github.com/opentracing/specification/issues/24

答案 1 :(得分:2)

您现在可以做的一件事就是致电tracer.inject(null, Builtin.HTTP_HEADERS, map。它会将所有带行李的ID(SpanContext)放入地图中。然后你可以通过它的名字获得ID。然而,这种解决方案不是中立的。

其他解决方案是将SpanContext转换为特定的实现,并通过getter获取ID(如果有的话)

答案 2 :(得分:0)

Ben提供了一种提供此ID的新方法。参考:https://github.com/opentracing/specification/issues/24#issuecomment-286261320

答案 3 :(得分:0)

在春季,我使用这个:

Span span = tracer.activeSpan();
response.addHeader("trace-id", span.context().toTraceId());

我在io.opentracing.Tracer tracer被Spring注入的地方