次の方法で共有


既定の 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.DefaultIdFormatActivityIdFormat.W3C に設定されます。

導入されたバージョン

5.0

分散トレースに使用されている ID にアプリケーションが依存しない場合、何の措置も必要ありません。 ASP.NET Core や HttpClient などのライブラリでは、両方のバージョンの ActivityIdFormat を使用したり、伝搬したりできます。

既存のシステムとの相互運用性が必要であるか、現行のシステムが ID の形式に依存している場合、DefaultIdFormatActivityIdFormat.Hierarchical に設定することで以前の動作を保持できます。 あるいは、次の 3 つの方法のいずれかで AppContext スイッチを設定できます。

  • プロジェクト ファイルで。

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Diagnostics.DefaultActivityIdFormatIsHierarchial" Value="true" />
    </ItemGroup>
    
  • runtimeconfig.json ファイルで。

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Diagnostics.DefaultActivityIdFormatIsHierarchial": true
            }
        }
    }
    
  • 環境変数を利用して。

    DOTNET_SYSTEM_DIAGNOSTICS_DEFAULTACTIVITYIDFORMATISHIERARCHIALtrue または 1 に設定します。

影響を受ける API