gpt4 book ai didi

open-telemetry - 从隐式上下文中获取当前事件的跨度

转载 作者:行者123 更新时间:2023-12-04 15:15:11 26 4
gpt4 key购买 nike

我在 opentelemetry/specification/trace/api 中找到了这个:

If the language has support for implicitly propagated Context (see here), the API SHOULD also provide the following functionality:

  • Get the currently active span from the implicit context. This is equivalent to getting the implicit context, then extracting the Span from the context.
  • Set the currently active span to the implicit context. This is equivalent to getting the implicit context, then inserting the Span to the context.

但是我在java或者go中都没有找到获取当前事件span的方法。有没有支持此功能的语言?
任何帮助将不胜感激!

最佳答案

是的,.NET 支持它:global::OpenTelemetry.Trace.Tracer.CurrentSpan。这是有效的,因为在任何给定的执行流程中一次只能有一个“事件”跨度。需要明确的是:可以同时激活多个 span,只是不在同一个执行流程中;执行流可以 fork ,但每个 fork 一次只有一个事件跨度。

此外,.NET 在其 Activity API 中已经具有与 OpenTelemetry API 等效的功能。

  • Tracer 是 ActivitySource 的包装器。
  • TelemetrySpan 是 Activity 的包装器。

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

OpenTelemetry API 的 .NET 引用实现建议您直接使用 .NET 框架的内置 Activity API。但是,它还提供了包装 Activity API 的 OpenTelemetry 填充程序。

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

我没有看到从 SpanContext 获取 TelemetrySpan 的方法;然而。所以 global::OpenTelemetry.Trace.Tracer.CurrentSpan 可能是您最好的选择。

关于open-telemetry - 从隐式上下文中获取当前事件的跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64464913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com