簡體   English   中英

如何在 .net 核心 3.1 應用程序中訪問 W3C TraceContext 標頭?

[英]How can I access W3C TraceContext Headers in a .net core 3.1 application?

這些來源( 微軟文檔微軟開發博客)state,為了在 .net 3.0+ 核心應用程序中使用新的W3C 跟蹤上下文標頭,不需要額外的配置。 但是,我們沒有從通過 ServiceClient 發出的任何請求中接收到 traceparent 或 tracestate。

正確的設置過程是什么? 你們是如何獲得分布式跟蹤 ID 的? 如果可能的話,我們更願意在不向所有現有服務添加大量代碼的情況下自動公開這些值。

非常感謝您!

PS:這是我的第一個問題; 如果您需要更多信息,請告訴我

.net 5 中的System.Diagnostics.Activity Id 已配置為w3c 標准 這意味着所有Actions都可以通過traceparent id 格式識別,並且traceparenttracestate都將發送到http請求 header 中的下游依賴項。 正如你所說,不需要額外的配置,但在 .net 3 中是不同的,默認的 id 格式是Hierarchical的,它作為HeaderRequestId向下傳播。 要查看 Activity Id 格式,請將System.Diagnostics導入 class 並鍵入: Console.WriteLine(Activity.Current.Id) ,您將看到如下格式: |fab6082c-46326cca135ffe48.1. . 要將其更改為 .net 3 中的 w3c 格式,需要在您的 main 方法中強制它:

public static void Main(string[] args)
{
    Activity.DefaultIdFormat = ActivityIdFormat.W3C;
    Activity.ForceDefaultIdFormat = true;

    CreateHostBuilder(args).Build().Run();
}

然后,您將看到 w3c 的格式以及traceparenttracestate字段已傳播到 header 中的下游依賴項。

如果你想發送消息拋出一個代理,在AMQP 調用的情況下使用application-properties部分。 您可以在此處此處找到這兩種情況的一些示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM