首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从隐式上下文中获取当前活动范围。

从隐式上下文中获取当前活动范围。
EN

Stack Overflow用户
提问于 2020-10-21 13:44:39
回答 1查看 1K关注 0票数 3

我在操作系统/规范/跟踪/api里找到了这个

如果该语言支持隐式传播的Context (请参见这里),则该API还应提供以下功能:

  • 从隐式上下文中获取当前活动范围。这相当于获取隐式上下文,然后从上下文中提取Span
  • 将当前活动的span设置为隐式上下文。这相当于获取隐式上下文,然后将Span插入上下文。

但我没有找到在java或go中获得当前活动span的方法。是否有任何语言支持此功能?

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2021-03-29 22:31:16

是的,.NET支持它:global::OpenTelemetry.Trace.Tracer.CurrentSpan。这是可行的,因为在任何给定的执行流中一次只能有一个“活动”范围。要明确的是:可以有多个跨并发活动,只是不在同一个执行流程中;执行流可以分叉,但每个分叉一次只有一个活动跨度。

而且,.NET的活动API中已经包含了与OpenTelemetry API相当的内容。

  • Tracer是ActivitySource的包装器。
  • TelemetrySpan是一个围绕活动的包装器。

您还可以通过访问System.Diagnostics.ActivityContext获得当前的Activity.Current.Context

OpenTelemetry API的.NET参考实现建议您直接使用.NET框架的内置活动API。但是,它还提供了包装Activity的OpenTelemetry shims。

例如,您可以隐式地将OpenTelemetry.Trace.SpanContext转换为System.Diagnostics.ActivityContext。你可以用new OpenTelemetry.Trace.SpanContext(activityContext)把它转换回来。

但是,我没有看到从TelemetrySpan中获取SpanContext的方法。所以global::OpenTelemetry.Trace.Tracer.CurrentSpan可能是你最好的选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64464913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档