- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
.NET Tracer は、.NET Core 2.1、3.1、.NET 5、.NET 6 でのインスツルメンテーションをサポートします。
サポート対象のライブラリとプロセッサーアーキテクチャの一覧については、互換性要件をご覧ください。
サービス
タグ、環境
タグ、バージョン
タグを動的に設定する。Datadog .NET Tracer は、マシン上のすべてのサービスがインスツルメントされるようにマシン全体にインストールすることも、アプリケーションごとにインストールすることも可能で、開発者はアプリケーションの依存関係を通じてインスツルメンテーションを管理することができます。マシン全体のインストール手順を見るには、Windows または Linux タブをクリックします。アプリケーションごとのインストール手順を見るには、NuGet タブをクリックします。
.NET Tracer をマシン全体にインストールするには
.NET トレーサー MSI インストーラーをダウンロードします。オペレーティングシステム (x64 または x86) に一致するアーキテクチャの MSI インストーラーを選択します。
管理者権限で .NET トレーサー MSI インストーラーを実行します。
.NET Tracer をマシン全体にインストールするには
お使いの OS とアーキテクチャに対応した最新の .NET Tracer パッケージをダウンロードします。
以下のコマンドのいずれかを実行して、パッケージをインストールし、適切な権限で .NET トレーサーのログディレクトリ /var/log/datadog/dotnet
を作成します。
sudo dpkg -i ./datadog-dotnet-apm_<TRACER_VERSION>_amd64.deb && /opt/datadog/createLogPath.sh
sudo rpm -Uvh datadog-dotnet-apm<TRACER_VERSION>-1.x86_64.rpm && /opt/datadog/createLogPath.sh
sudo tar -C /opt/datadog -xzf datadog-dotnet-apm<TRACER_VERSION>-musl.tar.gz && sh /opt/datadog/createLogPath.sh
sudo tar -C /opt/datadog -xzf datadog-dotnet-apm<TRACER_VERSION>-tar.gz && /opt/datadog/createLogPath.sh
.NET Tracer をアプリケーション単位でインストールするには
Datadog.Monitoring.Distribution
NuGet パッケージを追加します。サービスの .NET Tracer を有効にするには、必要な環境変数を設定し、アプリケーションを再起動します。
環境変数の設定方法の違いについては、プロセス環境変数の構成を参照してください。
.NET Tracer の MSI インストーラーは、必要な環境変数をすべて追加します。構成する必要のある環境変数はありません。
IIS でホストされるアプリケーションを自動でインスツルメントするには、管理者として次のコマンドを実行して IIS を完全に停止してから起動します。
net stop /y was
net start w3svc
iisreset.exe
.自動インスツルメンテーションをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
スタンドアロンアプリケーションや Windows サービスの場合は、手動でアプリケーションを再起動します。
自動インスツルメンテーションをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
DD_DOTNET_TRACER_HOME=/opt/datadog
スタンドアロンアプリケーションの場合は、通常通り手動でアプリケーションを再起動します。
自動インスツルメンテーションをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
CORECLR_PROFILER_PATH=<System-dependent path>
DD_DOTNET_TRACER_HOME=<APP_DIRECTORY>/datadog
<APP_DIRECTORY>
のプレースホルダーの値は、アプリケーションの .dll
ファイルがあるディレクトリへのパスです。環境変数 CORECLR_PROFILER_PATH
の値は、アプリケーションが動作しているシステムに応じて変化します。
オペレーティングシステムとプロセスアーキテクチャ|CORECLR_PROFILER_PATH の値 | |
---|---|
Alpine Linux x64 | <APP_DIRECTORY>/datadog/linux-musl-x64/Datadog.Trace.ClrProfiler.Native.so |
Linux x64 | <APP_DIRECTORY>/datadog/linux-x64/Datadog.Trace.ClrProfiler.Native.so |
Linux ARM64 | <APP_DIRECTORY>/datadog/linux-arm64/Datadog.Trace.ClrProfiler.Native.so |
Windows x64 | <APP_DIRECTORY>\datadog\win-x64\Datadog.Trace.ClrProfiler.Native.dll |
Windows x86 | <APP_DIRECTORY>\datadog\win-x86\Datadog.Trace.ClrProfiler.Native.dll |
Linux 上で動作する Docker イメージの場合、createLogPath.sh
スクリプトを実行するように構成します。
RUN /<APP_DIRECTORY>/datadog/createLogPath.sh
Docker のサンプルは dd-trace-dotnet
リポジトリで公開されています。
スタンドアロンアプリケーションの場合は、手動でアプリケーションを再起動します。
インスツルメントされたアプリケーションからトレースを受信するように Datadog Agent をインストールして構成します。デフォルトでは、Datadog Agent は apm_config
下にある datadog.yaml
ファイルの enabled: true
で有効になっており、http://localhost:8126
でトレースデータをリッスンします。
コンテナ化、サーバーレス、クラウド環境の場合:
メイン datadog.yaml
コンフィギュレーションファイルの apm_config
セクションで apm_non_local_traffic: true
を設定します。
コンテナ化された環境でトレースを受信するように Agent を構成する方法については、それぞれの説明を参照してください。
アプリケーションにインスツルメンテーションを行った後、トレースクライアントは以下にトレースの送信を試みます。
/var/run/datadog/apm.socket
の Unix ドメインソケット。localhost:8126
に送信されます。DD_TRACE_AGENT_URL
を使用します: DD_TRACE_AGENT_URL=http://custom-hostname:1234
または DD_TRACE_AGENT_URL=unix:///var/run/datadog/apm.socket
これらの設定方法の詳細については、構成を参照してください。
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);
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
をオーバーライドします。unix://
をプレフィックスとして、ソケットへの Unix パスを含めることができます。http://<DD_AGENT_HOST>:<DD_TRACE_AGENT_PORT>
、ファイルが存在する場合は unix:///var/run/datadog/apm.socket
、または http://localhost:8126
。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
0.0
から 1.0
までです。
詳しくは、取り込みメカニズムを参照してください。DD_TRACE_SAMPLING_RULES
CustomSamplingRules
null
"sample_rate"
を持たなければなりません。"name"
と "service"
フィールドは省略可能です。"sample_rate"
の値は 0.0
と 1.0
の間でなければなりません (この値を含む)。ルールは、トレースのサンプルレートを決定するために設定された順序で適用されます。
詳しくは、取り込みメカニズムを参照してください。'[{"sample_rate": 0.2}]'
'[{"service": "a.*", "name": "b", "sample_rate": 0.1}, {"sample_rate": 0.2}]'
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\
、Linux は /var/log/datadog/dotnet
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.1 で追加されました。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_TRACE_KAFKA_CREATE_CONSUMER_SCOPE_ENABLED
true
true
に設定すると、メッセージが消費されたときにコンシューマースパンが作成され、次のメッセージを消費する前に閉じられます。このスパンの長さは、あるメッセージの消費と次のメッセージの消費との間の計算を代表するものです。この設定は、メッセージの消費がループで実行される場合に使用します。false
に設定すると、メッセージが消費されたときにコンシューマスパンが作成され、すぐに閉じられます。この設定は、メッセージが完全に処理されないまま次のメッセージを消費する場合や、複数のメッセージを一度に消費する場合に使用します。次の表に、自動インスツルメンテーションを使用しており、インテグレーションごとの設定が可能な場合にのみ使用できる構成変数を示します。
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
NuGet パッケージをアプリケーションに追加します。Datadog.Trace.Tracer.Instance
プロパティを介してグローバルトレーサーにアクセスし、新しいスパンを作成します。.NET アプリケーションでカスタムインスツルメンテーションを使用するには
Datadog.Trace.Tracer.Instance
プロパティを介してグローバルトレーサーにアクセスし、新しいスパンを作成します。カスタムインスツルメンテーションのスパンやタグの追加について詳しくは、.NET カスタムインスツルメンテーションのドキュメントを参照してください。
サービスに自動インスツルメンテーションをアタッチするには、アプリケーションを起動する前に、必要な環境変数を設定する必要があります。.NET Tracer のインストール方法に応じて設定する環境変数を特定するために、 サービスのトレーサーを有効にするのセクションを参照し、以下の例に従って、インスツルメントされたサービスの環境に基づいて環境変数を正しく設定します。
レジストリエディターで、HKLM\System\CurrentControlSet\Services\<SERVICE NAME>
キーに Environment
複数の文字列値を作成します。
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
[string[]] $v = @("CORECLR_ENABLE_PROFILING=1", "CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}")
Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\<SERVICE NAME> -Name Environment -Value $v
コンソールアプリケーションを自動的にインスツルメントするには、アプリケーションを起動する前に、バッチファイルから環境変数を設定します。
rem Set environment variables
SET CORECLR_ENABLE_PROFILING=1
SET CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
rem Start application
dotnet.exe example.dll
アプリケーションを起動する前に、bash ファイルから必要な環境変数を設定するには
# 環境変数を設定
export CORECLR_ENABLE_PROFILING=1
export CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
export CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
export DD_DOTNET_TRACER_HOME=/opt/datadog
# アプリケーションを起動
dotnet example.dll
Linux Docker コンテナに必要な環境変数を設定するには
# 環境変数を設定
ENV CORECLR_ENABLE_PROFILING=1
ENV CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
ENV CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
ENV DD_DOTNET_TRACER_HOME=/opt/datadog
# アプリケーションを起動
CMD ["dotnet", "example.dll"]
systemctl
(per service)systemctl
を使用して、サービスとして .NET アプリケーションを実行する場合、特定のサービスに必要な環境変数がロードされるよう追加することができます。
以下を含む、environment.env
というファイルを作成します。
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
DD_DOTNET_TRACER_HOME=/opt/datadog
# any other environment variable used by the application
サービスのコンフィギュレーションファイルで、サービスブロックの EnvironmentFile
としてこれを参照します。
[Service]
EnvironmentFile=/path/to/environment.env
ExecStart=<command used to start the application>
.NET サービスを再起動して、環境変数の設定を有効にします。
systemctl
(all services)systemctl
を使用して .NET アプリケーションをサービスとして実行する場合、systemctl
によって実行されるすべてのサービスに対してロードされる環境変数を設定することもできます。
systemctl set-environment
を実行して、必要な環境変数を設定します。
systemctl set-environment CORECLR_ENABLE_PROFILING=1
systemctl set-environment CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
systemctl set-environment CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
systemctl set-environment DD_DOTNET_TRACER_HOME=/opt/datadog
systemctl show-environment
を実行して、環境変数が設定されていることを確認します。
.NET サービスを再起動して、環境変数を有効にします。