既定の ActivityIdFormat は W3C
アクティビティ (Activity.DefaultIdFormat) の既定の ID 形式が ActivityIdFormat.W3C になりました。
変更の説明
W3C アクティビティ ID 形式は、階層 ID 形式の代替として .NET Core 3.0 で導入されました。 ただし、互換性を維持するため、W3C 形式は .NET 5 まで既定になりませんでした。 W3C 形式が承認され、複数の言語実装で牽引力を得たため、.NET 5 で既定が変更されました。
アプリのターゲットが .NET 5 以降のプラットフォームであれば、Hierarchical が既定の形式となる以前の動作が見られます。 この既定は net45+、netstandard1.1+、netcoreapp (1.x、2.x、3.x) に適用されます。 .NET 5 以降では、Activity.DefaultIdFormat は ActivityIdFormat.W3C に設定されます。
導入されたバージョン
5.0
推奨アクション
分散トレースに使用されている ID にアプリケーションが依存しない場合、何の措置も必要ありません。 ASP.NET Core や HttpClient などのライブラリでは、両方のバージョンの ActivityIdFormat を使用したり、伝搬したりできます。
既存のシステムとの相互運用性が必要であるか、現行のシステムが ID の形式に依存している場合、DefaultIdFormat を ActivityIdFormat.Hierarchical に設定することで以前の動作を保持できます。 あるいは、次の 3 つの方法のいずれかで AppContext スイッチを設定できます。
プロジェクト ファイルで。
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" /> </ItemGroup>
runtimeconfig.json ファイルで。
{ "runtimeOptions": { "configProperties": { "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true } } }
環境変数を利用して。
DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIAL
をtrue
または 1 に設定します。
影響を受ける API
.NET