【问题标题】:How can I get a trace ID from OpenTracing API?如何从 OpenTracing API 获取跟踪 ID?
【发布时间】:2017-03-09 15:45:28
【问题描述】:

#105davidB 提问:

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

【问题讨论】:

    标签: trace opentracing


    【解决方案1】:

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

    【讨论】:

    • 你可以通过下一个命令 tracer.activeSpan().context().toTraceId() 获取该跟踪 ID
    【解决方案2】:

    您现在可以做的一件事是致电tracer.inject(null, Builtin.HTTP_HEADERS, map。它将所有带有行李(SpanContext)的ID放入地图中。然后您可以通过其名称获取 ID。但是,此解决方案不是 vedor 中立的。

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

    【讨论】:

      【解决方案3】:

      在春天我用这个:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2016-09-18
          • 1970-01-01
          • 1970-01-01
          • 2019-07-08
          • 1970-01-01
          • 1970-01-01
          • 2010-11-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多