- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
プロファイラーは、Datadog トレースライブラリ内で送信されます。アプリケーションですでに APM を使用してトレースを収集している場合は、ライブラリのインストールをスキップして、プロファイラーの有効化に直接進むことができます。
以下のプロファイリング機能は、dd-trace-dotnet
ライブラリの以下の最小バージョンで利用可能です。
機能 | 必要な dd-trace-dotnet のバージョン | 必要な .NET Runtime のバージョン |
---|---|---|
Wall Time プロファイリング | 2.7.0+ | サポートされているすべてのランタイムバージョン。 |
CPU プロファイリング | 2.15.0+ | サポートされているすべてのランタイムバージョン。 |
例外プロファイリング | 2.31.0+ | サポートされているすべてのランタイムバージョン。 |
アロケーションプロファイリング | ベータ版、2.18.0+ | .NET 6+ |
ロックコンテンションプロファイリング | 2.31.0+ | .NET 5+ |
ライブヒーププロファイリング | ベータ版、2.22.0+ | .NET 7+ |
Code Hotspots | 2.7.0+ | サポートされているすべてのランタイムバージョン。 |
Endpoint Profiling | 2.15.0+ | サポートされているすべてのランタイムバージョン。 |
沿革 | 2.30.0+ | サポートされているすべてのランタイムバージョン (ガベージコレクションの詳細のために必要な .NET 5+ を除く) 。 |
すでに Datadog を使用している場合は、Agent をバージョン 7.20.2+ または 6.20.2+ にアップグレードしてください。プロファイラーにはトレーシングライブラリ (v2.8.0 以降) が付属していますので、既にアプリケーションで APM を使用してトレースを収集している場合は、ライブラリをインストールせずに直接プロファイラーを有効にするに進んでください。
そうでない場合は、お使いの OS に応じて、以下の手順でプロファイラーをインストールしてください。
Datadog .NET Profiler は、マシン上のすべてのサービスがインスツルメントできるようにマシン全体にインストールすることも、アプリケーションごとにインストールすることも可能で、開発者はアプリケーションの依存関係を通じてインスツルメンテーションを管理することができます。マシン全体のインストール手順を見るには、Windows または Linux タブをクリックします。アプリケーションごとのインストール手順を見るには、NuGet タブをクリックします。
.NET Profiler をマシン全体にインストールするには
お使いの OS とアーキテクチャに対応した最新の .NET Tracer パッケージをダウンロードします。
以下のコマンドのいずれかを実行して、パッケージをインストールし、適切な権限で .NET のログディレクトリ /var/log/datadog/dotnet
を作成します。
sudo dpkg -i ./datadog-dotnet-apm_<TRACER_VERSION>_amd64.deb && sudo /opt/datadog/createLogPath.sh
sudo rpm -Uvh datadog-dotnet-apm<TRACER_VERSION>-1.x86_64.rpm && sudo /opt/datadog/createLogPath.sh
sudo tar -C /opt/datadog -xzf datadog-dotnet-apm<TRACER_VERSION>-musl.tar.gz && sudo sh /opt/datadog/createLogPath.sh
sudo tar -C /opt/datadog -xzf datadog-dotnet-apm<TRACER_VERSION>-tar.gz && sudo /opt/datadog/createLogPath.sh
.NET Profiler をマシン全体にインストールするには
.NET Monitoring MSI インストーラーを使って、最新版をインストールまたはアップグレードしてください。Continuous Profiler は 64-bit Windows をサポートしていますので、datadog-dotnet-apm-<VERSION>-x64.msi
のようなファイルが必要です。
インストーラーを管理者権限で実行します。
.NET Profiler をアプリケーション単位でインストールするには
Datadog.Trace.Bundle
NuGet パッケージをアプリケーションに追加します。.NET Profiler を Web アプリ単位でインストールするには
自動インスツルメンテーションをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。
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
LD_PRELOAD=/opt/datadog/continuousprofiler/Datadog.Linux.ApiWrapper.x64.so
DD_PROFILING_ENABLED=1
DD_ENV=production
DD_VERSION=1.2.3
スタンドアロンアプリケーションの場合は、通常通り手動でアプリケーションを再起動します。
アプリケーションの起動 1〜2 分後、Datadog APM > Profiler ページにプロファイルが表示されます。
プロファイラーを構成し、有効にするために必要な環境変数を設定します。
IIS アプリケーションのプロファイラーを有効にするには、レジストリの HKLM\System\CurrentControlSet\Services\WAS
と HKLM\System\CurrentControlSet\Services\W3SVC
ノードで環境変数 DD_PROFILING_ENABLED
を設定する必要があります。
CORECLR_PROFILER
または COR_PROFILER
を設定する必要がありません。レジストリエディターを使用:
レジストリエディターで、HKLM\System\CurrentControlSet\Services\WAS
と HKLM\System\CurrentControlSet\Services\W3SVC
ノード内の Environment
という複数文字列値を変更し、以下のように値を設定します。
.NET Core と .NET 5+ の場合:
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
DD_PROFILING_ENABLED=1
DD_ENV=production
DD_VERSION=1.2.3
.NET Framework の場合:
COR_ENABLE_PROFILING=1
COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
DD_PROFILING_ENABLED=1
DD_ENV=production
DD_VERSION=1.2.3
注: 環境変数は、すべての IIS アプリケーションに適用されます。IIS 10 以降、C:indexWindowsSystem32/inetsrv/config/applicationhost.config
ファイルに IIS アプリケーションごとの環境変数が設定できるようになりました。詳細は、Microsoft のドキュメントを参照してください。
管理者権限で以下のコマンドを実行し、IIS を完全に停止・起動します。
net stop /y was
net start w3svc
stop
and start
commands. A reset or restart does not always work.アプリケーションの起動 1〜2 分後、Datadog APM > Profiler ページにプロファイルが表示されます。
プロファイラーを構成し、有効にするために必要な環境変数を設定します。サービスのプロファイラーを有効にするには、サービスに関連付けられたレジストリキーに DD_PROFILING_ENABLED
環境変数を設定することが必要です。プロファイラーが単独で動作している場合 (トレーサーは非アクティブ)、オプションで DD_SERVICE
、DD_ENV
、DD_VERSION
環境変数を追加することができます。
CORECLR_PROFILER
または COR_PROFILER
を設定する必要がありません。レジストリエディターを使用:
レジストリエディターで、HKLM\System\CurrentControlSet\Services\MyService
キーに Environment
複数の文字列値を作成します。
.NET Core と .NET 5+ の場合:
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
DD_PROFILING_ENABLED=1
DD_SERVICE=MyService
DD_ENV=production
DD_VERSION=1.2.3
.NET Framework の場合:
COR_ENABLE_PROFILING=1
COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
DD_PROFILING_ENABLED=1
DD_SERVICE=MyService
DD_ENV=production
DD_VERSION=1.2.3
PowerShell スクリプトを使用:
.NET Core と .NET 5+ の場合:
[string[]] $v = @(
"CORECLR_ENABLE_PROFILING=1",
"CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}",
"DD_PROFILING_ENABLED=1",
"DD_SERVICE=MyService",
"DD_ENV=production",
"DD_VERSION=1.2.3"
)
Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\MyService -Name Environment -Value $v
.NET Framework の場合:
[string[]] $v = @(
"COR_ENABLE_PROFILING=1",
"COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}",
"DD_PROFILING_ENABLED=1",
"DD_SERVICE=MyService",
"DD_ENV=production",
"DD_VERSION=1.2.3"
)
Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\MyService -Name Environment -Value $v
アプリケーションの起動 1〜2 分後、Datadog APM > Profiler ページにプロファイルが表示されます。
CORECLR_PROFILER
または COR_PROFILER
を設定する必要がありません。コンソール、ASP.NET (Core)、Windows Forms、WPF などの非サービスアプリケーションでプロファイラーを構成して有効にするために、必要な環境変数を設定します。スタンドアロンアプリケーションのプロファイラーを有効にするには、DD_PROFILING_ENABLED
環境変数を設定する必要があります。プロファイラーが単独で動作している場合 (トレーサーは無効)、オプションで環境変数 DD_SERVICE
、DD_ENV
、DD_VERSION
を設定することが可能です。推奨される方法は、これらを設定しアプリケーションを起動するバッチファイルを作成し、そのバッチファイルを使用してアプリケーションを実行することです。
.NET Core と .NET 5+ の場合:
SET CORECLR_ENABLE_PROFILING=1
SET CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
SET DD_PROFILING_ENABLED=1
SET DD_SERVICE=MyService
SET DD_ENV=production
SET DD_VERSION=1.2.3
REM start the application here
.NET Framework の場合:
SET COR_ENABLE_PROFILING=1
SET COR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
SET DD_PROFILING_ENABLED=1
SET DD_SERVICE=MyService
SET DD_ENV=production
SET DD_VERSION=1.2.3
REM start the application here
アプリケーションの起動 1〜2 分後、Datadog APM > Profiler ページにプロファイルが表示されます。
プロファイリングをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
CORECLR_PROFILER_PATH=<System-dependent path>
DD_PROFILING_ENABLED=1
LD_PRELOAD=<System-dependent path>
DD_SERVICE=MyService
DD_ENV=production
DD_VERSION=1.2.3
DD_DOTNET_TRACER_HOME=<APP_DIRECTORY>/datadog
<APP_DIRECTORY>
のプレースホルダーの値は、アプリケーションの .dll
ファイルがあるディレクトリへのパスです。環境変数 CORECLR_PROFILER_PATH
の値は、アプリケーションが動作しているシステムに応じて変化します。
オペレーティングシステムとプロセスアーキテクチャ|CORECLR_PROFILER_PATH の値 | LD_PRELOAD の値 | |
---|---|---|
Alpine Linux x64 | <APP_DIRECTORY>/datadog/linux-musl-x64/Datadog.Trace.ClrProfiler.Native.so | <APP_DIRECTORY>/datadog/linux-musl-x64/Datadog.Linux.ApiWrapper.x64.so |
Linux x64 | <APP_DIRECTORY>/datadog/linux-x64/Datadog.Trace.ClrProfiler.Native.so | <APP_DIRECTORY>/datadog/linux-x64/Datadog.Linux.ApiWrapper.x64.so |
Linux ARM64 | <APP_DIRECTORY>/datadog/linux-arm64/Datadog.Trace.ClrProfiler.Native.so | <APP_DIRECTORY>/datadog/linux-arm64/Datadog.Linux.ApiWrapper.x64.so |
Windows x64 | <APP_DIRECTORY>\datadog\win-x64\Datadog.Trace.ClrProfiler.Native.dll | N/A |
Windows x86 | <APP_DIRECTORY>\datadog\win-x86\Datadog.Trace.ClrProfiler.Native.dll | N/A |
Linux 上で動作する Docker イメージの場合、createLogPath.sh
スクリプトを実行するように構成します。
RUN /<APP_DIRECTORY>/datadog/createLogPath.sh
Docker のサンプルは dd-trace-dotnet
リポジトリで公開されています。
スタンドアロンアプリケーションの場合は、手動でアプリケーションを再起動します。
DD_PROFILING_ENABLED:true
を設定し、プロファイラーを有効にしますプロファイラーを構成するには、以下の環境変数を使用します。これらの設定のほとんどは、トレーサーの構成にも適用されることに注意してください。これらの設定を変更した後は、アプリケーションを再起動します。
環境変数 | タイプ | 説明 |
---|---|---|
DD_ENV | 文字列 | 環境名、例えば production です。設定されていない場合は、 unspecified-environment となります。 |
DD_SERVICE | 文字列 | サービス名、例えば web-backend です。これが指定されていない場合、.NET Profiler はアプリケーション名 (プロセスエントリアセンブリまたはプロセス名) から自動的にサービス名を決定しようとします。 |
DD_VERSION | 文字列 | サービスのバージョン。設定されていない場合は、unspecified-version となります。 |
DD_TAGS | 文字列 | アップロードされたプロファイルに適用するタグ。<key>:<value> のように、コンマ区切り形式のリストである必要があります(例、layer:api,team:intake )。 |
DD_AGENT_HOST | 文字列 | プロファイルが送信されるホストを設定します (Agent を実行するホスト)。ホスト名または IP アドレスにできます。DD_TRACE_AGENT_URL が設定されている場合は無視されます。デフォルトは localhost です。 |
DD_TRACE_AGENT_PORT | 文字列 | プロファイルが送信されるポートを設定します (Agent が接続のためにリッスンしているポート)。DD_TRACE_AGENT_URL が設定されている場合は無視されます。デフォルトは 8126 です。 |
DD_TRACE_AGENT_URL | 文字列 | プロファイルが送信される URL エンドポイントを設定します。設定された場合、DD_AGENT_HOST と DD_TRACE_AGENT_PORT をオーバーライドします。デフォルトは http://<DD_AGENT_HOST>:<DD_TRACE_AGENT_PORT> です。 |
DD_TRACE_DEBUG | Boolean | デバッグログを有効または無効にします (トラブルシューティングの調査時に役立ちます)。有効な値は true または false です。デフォルトは false です。 |
DD_PROFILING_LOG_DIR | 文字列 | .NET Profiler のログを保存するディレクトリを設定します。デフォルトは %ProgramData%\Datadog .NET Tracer\logs\ です。(v2.24 以前は、デフォルトのディレクトリは %ProgramData%\Datadog-APM\logs\ でした) |
DD_PROFILING_ENABLED | Boolean | true に設定すると、.NET Profiler が有効になります。デフォルトは false です。 |
DD_PROFILING_WALLTIME_ENABLED | Boolean | false に設定すると、Wall time プロファイリングが無効になります。デフォルトは true です。 |
DD_PROFILING_CPU_ENABLED | Boolean | false に設定すると、CPU プロファイリングが無効になります。デフォルトは true です。 |
DD_PROFILING_EXCEPTION_ENABLED | Boolean | true に設定すると、Exceptions プロファイリングが有効になります (ベータ版)。デフォルトは false です。 |
DD_PROFILING_ALLOCATION_ENABLED | Boolean | true に設定すると、Allocations プロファイリングが有効になります (ベータ版)。デフォルトは false です。 |
DD_PROFILING_LOCK_ENABLED | Boolean | true に設定すると、Lock Contention プロファイリングが有効になります (ベータ版)。デフォルトは false です。 |
DD_PROFILING_HEAP_ENABLED | Boolean | true に設定すると、Live Heap プロファイリングが有効になります (ベータ版)。デフォルトは false です。 |
DD_PROFILING_GC_ENABLED | Boolean | false に設定すると、Timeline のユーザーインターフェイスで使用される Garbage Collection のプロファイリングを無効にします。デフォルトは true です。 |
HKLM\System\CurrentControlSet\Services\WAS
および HKLM\System\CurrentControlSet\Services\W3SVC
ノード) で環境変数の設定を行う必要があります。この環境変数は、すべての IIS アプリケーションに適用されます。
IIS 10 以降では、C:\Windows\System32\inetsrv\config\applicationhost.config
ファイルで、IIS アプリケーションごとの環境変数を設定できます。詳細は、Microsoft のドキュメントを参照してください。プロファイラーの概要ガイドでは、パフォーマンスの問題があるサンプルサービスを例に、Continuous Profiler を使用して問題を理解し修正する方法を確認します。