- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这些来源(microsoft docs,microsoft dev blog)声明为了使用新的W3C Trace Context Headers在 .net 3.0+ 核心应用程序中不需要额外的配置。但是,我们不会从通过 ServiceClient 发出的任何请求中接收到 traceparent 或 tracestate。
什么是正确的设置过程?你们是如何访问分布式跟踪 ID 的?如果可能的话,我们更愿意自动公开这些值,而无需向所有现有服务添加大量代码。
非常感谢您!
PS:这是我的第一个问题;如果您需要更多信息,请告诉我
最佳答案
.net 5 中的 System.Diagnostics.Activity
Id 已经配置为 w3c standard .这意味着所有 Actions
都可以通过 traceparent
id 格式进行识别,并且 traceparent
和 tracestate
都将被发送到http
请求 header 中的下游依赖项。正如您所说,不需要额外的配置,但在 .net 3 中是不同的,默认的 id 格式是 Hierarchical
格式,它作为 HeaderRequestId
向下游传播。要查看 Activity Id 格式,请将 System.Diagnostics
导入到您的类中并键入:Console.WriteLine(Activity.Current.Id)
,您将看到如下格式这个:|fab6082c-46326cca135ffe48.1.
。要将其更改为 .net 3 中的 w3c 格式,需要在您的主要方法中强制使用它:
public static void Main(string[] args)
{
Activity.DefaultIdFormat = ActivityIdFormat.W3C;
Activity.ForceDefaultIdFormat = true;
CreateHostBuilder(args).Build().Run();
}
然后,您会看到 w3c 的格式以及 traceparent
和 tracestate
字段已传播到 header 中的下游依赖项。
如果你想发送消息抛出代理,使用 application-properties
部分以防 AMQP calls .您会发现这两种情况的一些示例 here和 here .
关于c# - 如何在 .net core 3.1 应用程序中访问 W3C TraceContext header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61251914/
我是一名优秀的程序员,十分优秀!