コードを使用してトレーシングライブラリをセットアップし、APM データを収集するように Agent を構成した後、オプションで統合サービスタグ付けのセットアップなど、必要に応じてトレーシングライブラリを構成してください。
.NET Tracer のコンフィギュレーション設定は、以下のいずれかの方法で行うことができます。
アプリケーションコードでトレーサーを構成するには、デフォルトの構成ソースから TracerSettings インスタンスを作成します。Tracer.Configure() を呼び出す前に、この TracerSettings インスタンスにプロパティを設定します。例:
アプリケーションコードでトレーサーを構成するには、デフォルトの構成ソースから TracerSettings インスタンスを作成します。Tracer.Configure() を呼び出す前に、この TracerSettings インスタンスにプロパティを設定します。例:
注: 設定は、トレーサーを作成する前に TracerSettings で設定する必要があります。トレーサーの作成後に TracerSettings プロパティに加えられた変更は無視されます。
using Datadog.Trace;
using Datadog.Trace.Configuration;
// デフォルトの構成ソースを読み取る (env vars または datadog.json)
var settings = TracerSettings.FromDefaultSources();
// 一部の設定を変更
settings.Environment = "prod";
settings.ServiceName = "MyService";
settings.ServiceVersion = "abc123";
settings.Exporter.AgentUri = new Uri("http://localhost:8126/");
// Tracer のグローバル設定を構成
Tracer.Configure(settings);
JSON ファイルを使ってトレーサーを構成するには、インスツルメンテーションされたアプリケーションのディレクトリに datadog.json を作成します。ルート JSON オブジェクトは各設定のキー値を持つオブジェクトである必要があります。例:
{
  "DD_TRACE_AGENT_URL": "http://localhost:8126",
  "DD_ENV": "prod",
  "DD_SERVICE": "MyService",
  "DD_VERSION": "abc123",
}
構成設定
注: Linux では、環境変数の名前では大文字と小文字が区別されます。
上記の方法を使用して、次の変数を使用してトレースコンフィギュレーションをカスタマイズします。環境変数またはコンフィギュレーションファイルを設定するときは、環境変数の名前 (たとえば、DD_TRACE_AGENT_URL) を使用します。コードの設定を変更するときには、TracerSettings プロパティの名前 (たとえば、Exporter.AgentUri) を使用します。
統合サービスタグ付け
統合サービスタグ付けを使用するには、サービスに対して次の設定を構成します。
- DD_ENV
- TracerSettings プロパティ: Environment
 指定した場合、生成されたすべてのスパンに、指定された値のenvタグを追加します。バージョン 1.17.0 で追加されました。
- DD_SERVICE
- TracerSettings プロパティ: ServiceName
 指定した場合、サービス名を設定します。それ以外の場合、.NET トレーサーは、アプリケーション名 (IIS アプリケーション名、プロセスエントリアセンブリ、またはプロセス名) からサービス名を自動的に判別しようとします。バージョン 1.17.0 で追加されました。
- DD_VERSION
- TracerSettings プロパティ: ServiceVersion
 指定した場合、サービスのバージョンを設定します。バージョン 1.17.0 で追加されました。
任意のコンフィギュレーション
自動インスツルメンテーションとカスタムインスツルメンテーションの両方で、次の構成変数を利用できます。
トレース
- DD_TRACE_AGENT_URL
- TracerSettings property: Exporter.AgentUri
 Sets the URL endpoint where traces are sent. OverridesDD_AGENT_HOSTandDD_TRACE_AGENT_PORTif set. If the Agent configuration setsreceiver_portorDD_APM_RECEIVER_PORTto something other than the default8126, thenDD_TRACE_AGENT_PORTorDD_TRACE_AGENT_URLmust match it.
 It can contain a Unix Domain Socket (UDS) path by prefixing the path withunix://.
 Note that UDS is only supported on .NET Core 3.1 and above.
 Default:http://<DD_AGENT_HOST>:<DD_TRACE_AGENT_PORT>if they are set,unix:///var/run/datadog/apm.socketif the file exists, orhttp://localhost:8126.
- DD_AGENT_HOST
- Agent が接続をリッスンするホストを設定します。ホスト名または IP アドレスを指定します。このパラメーターより優先される DD_TRACE_AGENT_URLを使用します。
 デフォルト:localhost
- DD_TRACE_AGENT_PORT
- Agent が接続を待機している TCP ポートを設定します。このパラメーターより優先される DD_TRACE_AGENT_URLを使用します。Agent 構成でreceiver_portまたはDD_APM_RECEIVER_PORTをデフォルトの8126以外に設定した場合、DD_TRACE_AGENT_PORTまたはDD_TRACE_AGENT_URLはそれにマッチしなければなりません。
 デフォルト:8126
- DD_TRACE_SAMPLE_RATE
- TracerSettings property: GlobalSamplingRate
 Default: Defaults to the rates returned by the Datadog Agent
 Enables ingestion rate control. This parameter is a float representing the percentage of spans to sample. Valid values are from0.0to1.0.
For more information, see Ingestion Mechanisms.
 
 Beta: Starting in version 2.35.0, if Agent Remote Configuration is enabled where this service runs, you can setDD_TRACE_SAMPLE_RATEin the Service Catalog UI.
- DD_TRACE_SAMPLING_RULES
- TracerSettings property: CustomSamplingRules
 Default:null
 A JSON array of objects. Each object must have asample_rate. Thenameandservicefields are optional. Thesample_ratevalue must be between0.0and1.0(inclusive). Rules are applied in configured order to determine the trace’s sample rate.
For more information, see Ingestion Mechanisms.
 Examples:
 - Set the sample rate to 20%: [{"sample_rate": 0.2}]
- Set the sample rate to 10% for services starting with ‘a’ and span name ‘b’ and set the sample rate to 20% for all other services: [{"service": "a.*", "name": "b", "sample_rate": 0.1}, {"sample_rate": 0.2}]
 
- DD_TRACE_RATE_LIMIT
- TracerSettings プロパティ: MaxTracesSubmittedPerSecond
 1 秒間に送信できるトレースの数 (DD_MAX_TRACES_PER_SECONDは非推奨)。
 デフォルト:DD_TRACE_SAMPLE_RATEが設定されている場合、100。それ以外の場合は、Datadog Agent にレート制限を委ねます。
- DD_SPAN_SAMPLING_RULES
- Default: null
 A JSON array of objects. Rules are applied in configured order to determine the span’s sample rate. Thesample_ratevalue must be between 0.0 and 1.0 (inclusive). For more information, see Ingestion Mechanisms.
 Example: Set the span sample rate to 50% for the servicemy-serviceand operation namehttp.request, up to 50 traces per second:[{"service": "my-service", "name": "http.request", "sample_rate":0.5, "max_per_second": 50}]
自動インスツルメンテーションオプションコンフィギュレーション
- DD_TRACE_HEADER_TAGS
- TracerSettings property:HeaderTags
 Accepts a map of case-insensitive header keys to tag names and automatically applies matching header values as tags on traces. Also accepts entries without a specified tag name that are automatically mapped to tags of the formhttp.request.headers.<header-name>andhttp.response.headers.<header-name>respectively.
 
 Example (with specified tag names):User-ID:userId
 If the Request has a headerUser-ID, its value is applied as taguserIdto the spans produced by the service.
 
 Example (without specified tag names):User-ID
 If the Request has a headerUser-ID, its value is applied as taghttp.request.headers.User-ID.
 If the Response has a headerUser-ID, its value is applied as taghttp.response.headers.User-ID.
 
 Added in version 1.18.3.
 Response header support and entries without tag names added in version 1.26.0.
 Beta: Starting in version 2.35.0, if Agent Remote Configuration is enabled where this service runs, you can setDD_TRACE_HEADER_TAGSin the Service Catalog UI.
- DD_TRACE_CLIENT_IP_ENABLED
- 関連する IP ヘッダーからクライアント IP を収集できるようにします。
 バージョン2.19.0で追加されました。
 デフォルト:false
 
- DD_TRACE_CLIENT_IP_HEADER
- The IP header to be used for client IP collection, for example: x-forwarded-for.
 Added in version2.19.0.
 Default: Datadog parses the following:x-forwarded-for,x-real-ip,true-client-ip,x-client-ip,x-forwarded,forwarded-for,x-cluster-client-ip,fastly-client-ip,cf-connecting-ip,cf-connecting-ipv6. If several are present, the first from the list to parse correctly will be used.
 
- DD_TAGS
- TracerSettings プロパティ: GlobalTags
 指定した場合、指定したすべてのタグを、生成されたすべてのスパンに追加します。
 例:layer:api, team:intake, key:value
 注: デリミタはコンマとスペース:, です。
 バージョン 1.17.0 で追加されました。
 
Agent
- DD_TRACE_SERVICE_MAPPING
- コンフィギュレーションを使用してサービスの名前を変更します。名前を変更するサービス名(キー)と、代わりに使う名前(値)のペアを [from-key]:[to-name]の形式で指定したカンマ区切りのリストを受け入れます。
 例:mysql:main-mysql-db, mongodb:offsite-mongodb-service
 from-keyはインテグレーションタイプに固有で、アプリケーション名のプレフィックスは取り除く必要があります。たとえば、my-application-sql-serverの名前をmain-dbに変更するには、sql-server:main-dbを使用します。バージョン 1.23.0 で追加されました。
- DD_HTTP_SERVER_TAG_QUERY_STRING
- trueに設定すると、- http.urlにクエリ文字列パラメーターが含まれます。詳しくは、url 内のクエリを再編集するに記載されています。
デフォルト:- true
- DD_HTTP_SERVER_TAG_QUERY_STRING_SIZE
- DD_HTTP_SERVER_TAG_QUERY_STRINGが true のとき、難読化する前に報告するクエリ文字列の最大サイズが設定されます。サイズに制限を設けない場合は 0 を設定します。
 デフォルト:- 5000
- DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP
- DD_HTTP_SERVER_TAG_QUERY_STRINGが true の場合、この正規表現は- http.urlタグで報告されるリクエストのクエリ文字列から機密データを削除します (マッチすると- <redacted>に置き換えられます)。この正規表現は、受信するリクエストごとに実行されます。
- DD_INSTRUMENTATION_TELEMETRY_ENABLED
- Datadog は、製品の改良のため、システムの環境・診断情報を収集することがあります。false の場合、このテレメトリーデータは収集されません。
 デフォルト:true
Diagnostic logs
- DD_TRACE_LOG_DIRECTORY
- .NET Tracer ログのディレクトリを設定します。
 デフォルト: Windows は%ProgramData%\Datadog .NET Tracer\logs\、Linux は/var/log/datadog/dotnet
- DD_TRACE_LOGFILE_RETENTION_DAYS
- トレーサーの起動中に、この構成は、トレーサーの現在のログディレクトリを使用して、指定された日数と同じかそれよりも古いログファイルを削除します。バージョン 2.19.0 で追加されました。
 デフォルト:32
- DD_TRACE_LOGGING_RATE
- ログメッセージへのレート制限を設定します。設定した場合、x秒ごとに一意のログ行が記述されます。たとえば、任意のメッセージを 60 秒ごとに一回ログに残したい場合は60を設定します。ログのレート制限を無効化したい場合は0を設定します。バージョン 1.24.0 で追加されました。デフォルトでは無効です。
OpenTelemetry
- DD_TRACE_OTEL_ENABLED
- Enables or disables OpenTelemetry based tracing, both for custom or automatic instrumentation.
Valid values are: trueorfalse.
 Default:false
自動インスツルメンテーションオプション構成
以下の構成変数は、自動インスツルメンテーションの使用時にのみ利用できます。
トレース
- DD_TRACE_ENABLED
- TracerSettings property: TraceEnabled
 Enables or disables all instrumentation. Valid values are:trueorfalse.
 Default:trueNote: Setting the environment variable tofalsecompletely disables the client library, and it cannot be enabled through other configuration methods. If it is set tofalsethrough another configuration method (not an environment variable), the client library is still loaded, but traces will not be generated.
- DD_TRACE_EXPAND_ROUTE_TEMPLATES_ENABLED
- ASP.NET/ASP.NET Core 用アプリケーションのすべてのルートパラメーター (ID パラメーターを除く) を拡張します
 これは、フォームの値を区別するためにパラメーター名を使用している場合や、GraphQL のようなスラッグを使用している場合に便利です。
デフォルト:falseバージョン 2.5.1 で追加されました。
- DD_TRACE_METHODS
- トレースするメソッドのリスト。セミコロン (;) で区切られたリストで、各エントリーがNamespace.TypeName[MethodNames]という形式であることを指定します (MethodNamesはカンマ (,) 区切りのメソッド名のリストまたは*ワイルドカードのいずれかです)。汎用型の場合は、角括弧と型パラメーターの名前をバックスティック( ) に置き換え、その後に汎用型パラメーターの数を記述します。例えば、Dictionary<TKey, TValue>はDictionary`2と記述しなければなりません。汎用メソッドの場合は、指定する必要があるのはメソッド名のみです。
 例:Namespace1.Class1[Method1,GenericMethod];Namespace1.GenericTypeWithOneTypeVariable`1[ExecuteAsync];Namespace2.Class2[*]
 注: ワイルドカードメソッドサポート ([*]) は、コンストラクタ、プロパティゲッターとセッター、Equals、Finalize、GetHashCodeそしてToString以外の型のすべてのメソッドを選択します。
 バージョン 2.6.0 で追加されました。ワイルドカードのサポート[*]はバージョン 2.7.0 で追加されました。
- DD_TRACE_KAFKA_CREATE_CONSUMER_SCOPE_ENABLED
- Kafka コンシューマースパンの動作を変更します
 デフォルト:true
 trueに設定すると、メッセージが消費されたときにコンシューマースパンが作成され、次のメッセージを消費する前に閉じられます。このスパンの長さは、あるメッセージの消費と次のメッセージの消費との間の計算を代表するものです。この設定は、メッセージの消費がループで実行される場合に使用します。
 falseに設定すると、メッセージが消費されたときにコンシューマスパンが作成され、すぐに閉じられます。この設定は、メッセージが完全に処理されないまま次のメッセージを消費する場合や、複数のメッセージを一度に消費する場合に使用します。このパラメーターをfalseに設定すると、コンシューマースパンはすぐに閉じられます。トレースする子スパンがある場合は、コンテキストを手動で抽出する必要があります。詳しくは、ヘッダーの抽出と挿入をお読みください。
データベースモニタリング
- DD_DBM_PROPAGATION_MODE
- Enables linking between data sent from APM and the Database Monitoring product when set to serviceorfull. Theserviceoption enables the connection between DBM and APM services. Thefulloption enables connection between database spans with database query events. Available for Postgres and MySQL.
 Default:disabled
ランタイムメトリクス
- DD_RUNTIME_METRICS_ENABLED
- .NET ランタイムメトリクスを有効にします。有効な値は trueまたはfalseです。
 デフォルト:false
 バージョン 1.23.0 で追加されました。
エラー
- DD_HTTP_CLIENT_ERROR_STATUSES
- HTTP クライアントスパンがエラーとしてマークされる原因となるステータスコード範囲を設定します。
 デフォルト:400-499
- DD_HTTP_SERVER_ERROR_STATUSES
- HTTP サーバースパンがエラーとしてマークされる原因となるステータスコード範囲を設定します。
 デフォルト:500-599
Logs
- DD_LOGS_INJECTION
- TracerSettings property: LogsInjectionEnabled
 Enables or disables automatic injection of correlation identifiers into application logs.
 Your logger needs to have asourcethat sets thetrace_idmapping correctly. The default source for .NET Applications,csharp, does this automatically. For more information, see correlated logs in the Trace ID panel.
 
 Beta: Starting in version 2.35.0, if Agent Remote Configuration is enabled where this service runs, you can setDD_LOGS_INJECTIONin the Service Catalog UI.
自動インスツルメンテーションインテグレーション構成
次の表に、自動インスツルメンテーションを使用しており、インテグレーションごとの設定が可能な場合にのみ使用できる構成変数を示します。
- DD_DISABLED_INTEGRATIONS
- TracerSettings プロパティ: DisabledIntegrationNames
 無効にするインテグレーションのリストを設定します。他のインテグレーションはすべて有効のままになります。設定しなかった場合、すべてのインテグレーションが有効になります。セミコロンで区切ることで複数の値がサポートされます。有効な値は、インテグレーションセクションでリストされているインテグレーション名です。
- DD_TRACE_<INTEGRATION_NAME>_ENABLED
- TracerSettings プロパティ: Integrations[<INTEGRATION_NAME>].Enabled
 
 特定のインテグレーションを有効または無効にします。有効な値は、true(デフォルト) またはfalseです。インテグレーション名は、インテグレーションセクションにリストされています。
デフォルト:true
試験機能
以下の構成変数は現在利用可能な機能ですが、今後のリリースで変更される場合があります。
- DD_TRACE_PARTIAL_FLUSH_ENABLED
- Datadog Agent への大規模トレースのフラッシュをインクリメント形式で有効化し、Agent に拒否される可能性を低減します。保持期間が長いトレースまたは多数のスパンを持つトレースがある場合にのみ使用してください。有効な値は trueまたはfalseです。バージョン 1.26.0 で追加され、Datadog Agent 7.26.0 以降とのみ互換性を有しています。
 デフォルト:false
非推奨の設定
- DD_TRACE_LOG_PATH
- 自動インスツルメンテーションログファイルにパスを設定し、他の .NET Tracer ログファイルすべてのディレクトリを決定します。DD_TRACE_LOG_DIRECTORYが設定されている場合、無視されます。
- DD_TRACE_ROUTE_TEMPLATE_RESOURCE_NAMES_ENABLED
- trueに設定すると、Web スパンに対する改善されたリソース名を有効化します。利用可能なルートテンプレート情報を使用して ASP.NET のコアインテグレーションにスパンを追加し、追加のタグを有効化します。バージョン 1.26.0 で追加されました。2.0.0 ではデフォルトで有効になっています。
 デフォルト:- true
参考資料