- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
.NET トレーサーは、.NET Framework 4.6.1 以上のインスツルメンテーションをサポートします。
サポート対象のライブラリとプロセッサーアーキテクチャの一覧 (旧バージョンの .NET Framework を含む) については、互換性要件をご覧ください。
Datadog .NET Tracer は、マシン上のすべてのサービスがインスツルメントされるようにマシン全体にインストールすることも、アプリケーションごとにインストールすることも可能で、開発者はアプリケーションの依存関係を通じてインスツルメンテーションを管理することができます。マシン全体のインストール手順を見るには、Windows タブをクリックします。アプリケーションごとのインストール手順を見るには、NuGet タブをクリックします。
.NET Tracer をマシン全体にインストールするには
.NET トレーサー MSI インストーラーをダウンロードします。オペレーティングシステム (x64 または x86) に一致するアーキテクチャの MSI インストーラーを選択します。
管理者権限で .NET トレーサー MSI インストーラーを実行します。
.NET Tracer をアプリケーション単位でインストールするには
Datadog.Monitoring.Distribution
NuGet パッケージを追加します。サービスの .NET Tracer を有効にするには、必要な環境変数を設定し、アプリケーションを再起動します。
環境変数の設定方法の違いについては、プロセス環境変数の構成を参照してください。
.NET Tracer の MSI インストーラーは、必要な環境変数をすべて追加します。構成する必要のある環境変数はありません。
IIS でホストされるアプリケーションを自動でインスツルメントするには、管理者として次のコマンドを実行して IIS を完全に停止してから起動します。
net stop /y was
net start w3svc
iisreset.exe
.自動インスツルメンテーションをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。
COR_ENABLE_PROFILING=1
COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
スタンドアロンアプリケーションや Windows サービスの場合は、手動でアプリケーションを再起動します。
自動インスツルメンテーションをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。
COR_ENABLE_PROFILING=1
COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
COR_PROFILER_PATH=<System-dependent path>
DD_DOTNET_TRACER_HOME=<APP_DIRECTORY>/datadog
<APP_DIRECTORY>
のプレースホルダーの値は、アプリケーションの .dll
ファイルがあるディレクトリへのパスです。環境変数 COR_PROFILER_PATH
の値は、アプリケーションが動作しているシステムに応じて変化します。
オペレーティングシステムとプロセスアーキテクチャ|COR_PROFILER_PATH の値 | |
---|---|
Windows x64 | <APP_DIRECTORY>\datadog\win-x64\Datadog.Trace.ClrProfiler.Native.dll |
Windows x86 | <APP_DIRECTORY>\datadog\win-x86\Datadog.Trace.ClrProfiler.Native.dll |
スタンドアロンアプリケーションの場合は、手動でアプリケーションを再起動します。
インスツルメントされたアプリケーションからトレースを受信するように Datadog Agent をインストールして構成します。デフォルトでは、Datadog Agent は apm_config
下にある datadog.yaml
ファイルの enabled: true
で有効になっており、localhost:8126
でトレーストラフィックをリッスンします。
コンテナ化、サーバーレス、クラウド環境の場合:
メイン datadog.yaml
コンフィギュレーションファイルの apm_config
セクションで apm_non_local_traffic: true
を設定します。
コンテナ化された環境でトレースを受信するように Agent を構成する方法については、それぞれの説明を参照してください。
localhost:8126
にトレースを送信します。もし、これが正しいホストとポートでない場合には、環境変数 DD_AGENT_HOST
と DD_TRACE_AGENT_PORT
を設定して変更してください。これらの変数の設定方法については、構成を参照してください。DD_SITE
を
に設定します。AWS Lambda で Datadog APM を設定するには、サーバーレス関数のトレースを参照してください。
Azure App Service で Datadog APM を設定するには、Azure App Service 拡張のトレースを参照してください。
トレースは、Heroku、Cloud Foundry、AWS Elastic Beanstalk など、さまざまな環境で利用できます。
その他のすべての環境については、その環境のインテグレーションのドキュメントを参照し、セットアップの問題が発生した場合はDatadog サポートにお問い合わせください。
サービスの .NET Tracer を有効にした後:
サービスを再起動します。
アプリケーションロードを作成します。
Datadog で APM > APM Traces の順に移動します。
.NET Tracer のコンフィギュレーション設定は、以下のいずれかの方法で行うことができます。
環境変数を使用してトレーサーを構成するには、インスツルメントされたアプリケーションを起動する前に変数を設定します。さまざまな環境で環境変数を設定する方法については、プロセス環境変数の構成を参照してください。
アプリケーションコードでトレーサーを構成するには、デフォルトの構成ソースから TracerSettings
インスタンスを作成します。Tracer.Configure()
を呼び出す前に、この TracerSettings
インスタンスにプロパティを設定します。例:
トレーサー
を作成する前に TracerSettings
で設定する必要があります。トレーサー
の作成後に TracerSettings
プロパティに加えられた変更は無視されます。using Datadog.Trace;
using Datadog.Trace.Configuration;
// デフォルトの構成ソースを読み取る (env vars、web.config、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);
app.config
または web.config
ファイルを使ってトレーサーを構成するには、<appSettings>
セクションを使います。例:
<configuration>
<appSettings>
<add key="DD_TRACE_AGENT_URL" value="http://localhost:8126"/>
<add key="DD_ENV" value="prod"/>
<add key="DD_SERVICE" value="MyService"/>
<add key="DD_VERSION" value="abc123"/>
</appSettings>
</configuration>
JSON ファイルを使ってトレーサーを構成するには、インスツルメンテーションされたアプリケーションのディレクトリに datadog.json
を作成します。ルート JSON オブジェクトは各設定のキー値を持つオブジェクトである必要があります。例:
{
"DD_TRACE_AGENT_URL": "http://localhost:8126",
"DD_ENV": "prod",
"DD_SERVICE": "MyService",
"DD_VERSION": "abc123",
}
上記の方法を使用して、次の変数を使用してトレースコンフィギュレーションをカスタマイズします。環境変数またはコンフィギュレーションファイルを設定するときは、環境変数の名前 (たとえば、DD_TRACE_AGENT_URL
) を使用します。コードの設定を変更するときには、TracerSettings プロパティの名前 (たとえば、Exporter.AgentUri
) を使用します。
統合サービスタグ付けを使用するには、サービスに対して次の設定を構成します。
DD_ENV
Environment
env
タグを追加します。バージョン 1.17.0 で追加されました。DD_SERVICE
ServiceName
DD_VERSION
ServiceVersion
自動インスツルメンテーションとカスタムインスツルメンテーションの両方で、次の構成変数を利用できます。
DD_TRACE_AGENT_URL
Exporter.AgentUri
DD_AGENT_HOST
と DD_TRACE_AGENT_PORT
をオーバーライドします。
デフォルト: http://<DD_AGENT_HOST>:<DD_TRACE_AGENT_PORT>
DD_AGENT_HOST
DD_TRACE_AGENT_URL
が設定されている場合は無視されます。localhost
DD_TRACE_AGENT_PORT
DD_TRACE_AGENT_URL
が設定されている場合は無視されます。8126
DD_LOGS_INJECTION
LogsInjectionEnabled
trace_id
のマッピングを正しく設定する source
を持つ必要があります。.NET アプリケーションのデフォルトのソースである csharp
は、自動的にこれを行います。詳しくは、トレース ID パネルの相関するログを参照してください。DD_TRACE_SAMPLE_RATE
GlobalSamplingRate
DD_TRACE_RATE_LIMIT
MaxTracesSubmittedPerSecond
DD_MAX_TRACES_PER_SECOND
は非推奨)。DD_TRACE_SAMPLE_RATE
が設定されている場合、100
。それ以外の場合は、Datadog Agent にレート制限を委ねます。DD_TRACE_GLOBAL_TAGS
GlobalTags
DD_TRACE_DEBUG
デバッグログの有効・無効を設定します。有効な値は true
または false
です。
デフォルト: false
DD_TRACE_HEADER_TAGS
HeaderTags
CASE-insensitive-Header:my-tag-name,User-ID:userId,My-Header-And-Tag-Name
DD_TAGS
GlobalTags
layer:api, team:intake
,
であることに注意してください。DD_TRACE_LOG_DIRECTORY
%ProgramData%\Datadog .NET Tracer\logs\
DD_TRACE_LOGGING_RATE
x
秒ごとに一意のログ行が記述されます。たとえば、任意のメッセージを 60 秒ごとに一回ログに残したい場合は 60
を設定します。ログのレート制限を無効化したい場合は 0
を設定します。バージョン 1.24.0 で追加されました。デフォルトでは無効です。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_TRACE_ENABLED
TraceEnabled
false
に設定すると、CLR プロファイラーが完全に無効になります。他の構成メソッドの場合は、CLR プロファイラーはロードされ続けますが、トレースは生成されません。有効な値は true
または false
。
デフォルト: true
DD_HTTP_CLIENT_ERROR_STATUSES
400-499
DD_HTTP_SERVER_ERROR_STATUSES
500-599
DD_RUNTIME_METRICS_ENABLED
true
または false
。false
DD_TRACE_EXPAND_ROUTE_TEMPLATES_ENABLED
false
バージョン 2.5.2 で追加されましたDD_TRACE_METHODS
;
) で区切られたリストで、各エントリーが TypeName[MethodNames]
という形式であることを指定します (MethodNames
はカンマ (,
) 区切りのメソッド名のリストまたは *
ワイルドカードのいずれかです)。汎用型の場合は、角括弧と型パラメーターの名前をバックスティック(
)に置き換え、その後に汎用型パラメーターの数を記述します。例えば、Dictionary<TKey, TValue>
は Dictionary`2
と記述しなければなりません。汎用メソッドの場合は、指定する必要があるのはメソッド名のみです。Namespace1.Class1[Method1,GenericMethod];Namespace1.GenericTypeWithOneTypeVariable`1[ExecuteAsync];Namespace2.Class2[*]
[*]
) は、コンストラクタ、プロパティゲッターとセッター、 Equals
、Finalize
、GetHashCode
そして ToString
以外の型のすべてのメソッドを選択します。[*]
はバージョン 2.7.0 で追加されました。次の表に、自動インスツルメンテーションを使用しており、インテグレーションごとの設定が可能な場合にのみ使用できる構成変数を示します。
DD_DISABLED_INTEGRATIONS
DisabledIntegrationNames
DD_TRACE_<INTEGRATION_NAME>_ENABLED
Integrations[<INTEGRATION_NAME>].Enabled
true
(デフォルト) または false
です。インテグレーション名は、インテグレーションセクションにリストされています。
デフォルト: true
以下の構成変数は現在利用可能な機能ですが、今後のリリースで変更される場合があります。
DD_TRACE_PARTIAL_FLUSH_ENABLED
true
または false
。バージョン 1.26.0 で追加され、Datadog Agent 7.26.0 以降とのみ互換性を有しています。false
DD_TRACE_LOG_PATH
DD_TRACE_LOG_DIRECTORY
が設定されている場合、無視されます。DD_TRACE_ROUTE_TEMPLATE_RESOURCE_NAMES_ENABLED
true
に設定すると、Web スパンに対する改善されたリソース名を有効化します。利用可能なルートテンプレート情報を使用して ASP.NET のコアインテグレーションにスパンを追加し、追加のタグを有効化します。バージョン 1.26.0 で追加されました。2.0.0 ではデフォルトで有効になっています。true
Datadog APM トレーサーは、分散型トレーシングのための B3 と W3C (TraceParent) のヘッダー抽出と挿入をサポートしています。
分散ヘッダーの挿入と抽出のスタイルを構成することができます。
.NET トレーサーは、以下のスタイルをサポートしています。
Datadog
B3
W3C
B3SingleHeader
または B3 single header
以下の環境変数を使用して、挿入および抽出のスタイルを構成することができます。
DD_PROPAGATION_STYLE_INJECT=Datadog, B3, W3C
DD_PROPAGATION_STYLE_EXTRACT=Datadog, B3, W3C
環境変数の値は、挿入または抽出に有効なヘッダースタイルのカンマ区切りのリストです。デフォルトでは、Datadog
挿入スタイルのみが有効になっています。
複数の抽出スタイルが有効な場合、抽出の試みは構成されたスタイルの順に完了し、最初に成功した抽出値を使用します。
カスタムインスツルメンテーションのセットアップは、自動インスツルメンテーションによって異なり、メソッドによっては追加の手順が含まれます。
.NET アプリケーションでカスタムインスツルメンテーションを使用するには
Datadog.Trace
NuGet パッケージをアプリケーションに追加します。Datadog.Trace.Tracer.Instance
プロパティを介してグローバルトレーサーにアクセスし、新しいスパンを作成します。.NET アプリケーションでカスタムインスツルメンテーションを使用するには
Datadog.Trace.Tracer.Instance
プロパティを介してグローバルトレーサーにアクセスし、新しいスパンを作成します。カスタムインスツルメンテーションのスパンやタグの追加について詳しくは、.NET カスタムインスツルメンテーションのドキュメントを参照してください。
サービスに自動インスツルメンテーションをアタッチするには、アプリケーションを起動する前に、必要な環境変数を設定します。.NET Tracer のインストール方法に応じて設定する環境変数を特定するために、 サービスのトレーサーを有効にするのセクションを参照し、以下の例に従って、インスツルメントされたサービスの環境に基づいて環境変数を正しく設定します。
レジストリエディターで、HKLM\System\CurrentControlSet\Services\<SERVICE NAME>
キーに Environment
複数の文字列値を作成します。
COR_ENABLE_PROFILING=1
COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
[string[]] $v = @("COR_ENABLE_PROFILING=1", "COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}")
Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\<SERVICE NAME> -Name Environment -Value $v
コンソールアプリケーションを自動的にインスツルメントするには、アプリケーションを起動する前に、バッチファイルから環境変数を設定します。
rem Set environment variables
SET COR_ENABLE_PROFILING=1
SET COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
rem Start application
dotnet.exe example.dll
お役に立つドキュメント、リンクや記事: