Windows での Single Step APM インスツルメンテーション
概要
Single Step Instrumentation (SSI) により、単一の Datadog Agent インストールコマンドを使用して、Windows VM 上の Java および .NET アプリケーションで APM を有効にできます。
エージェントを使用して APM をセットアップする
Install the dd-apm skill in your AI coding agent for guided APM setup.
npx skills add https://github.com/datadog-labs/agent-skills --skill dd-apm --full-depth -y
Windows で APM を有効にする
新しい Agent インストール
Datadog Agent がまだインストールされていない場合は、以下の手順に従って Agent をインストールし、同時に SSI を有効にします。
Windows で APM を有効にするには、以下の方法があります。
- IIS 上の .NET アプリケーションのみをインスツルメントする
- Windows ホスト全体のすべての Java および .NET アプリケーションをインスツルメントする
IIS で実行されている .NET アプリケーションのみをインスツルメントするには、以下の手順を実行します。
Windows ホスト上の管理者 PowerShell セッションから、以下のいずれかのコマンドを実行します。<YOUR_DD_API_KEY> をユーザーの Datadog API キー に置き換えます。
PowerShell インストーラーを使用します。
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; $env:DD_API_KEY = '<YOUR_DD_API_KEY>'; $env:DD_SITE = '<span class="js-region-param region-param" data-region-param="dd_site"></span>'; $env:DD_APM_INSTRUMENTATION_ENABLED = 'iis'; $env:DD_APM_INSTRUMENTATION_LIBRARIES = 'dotnet:3'; (New-Object System.Net.WebClient).DownloadFile('https://install.datadoghq.com/datadog-installer-x86_64.exe', 'C:\Windows\SystemTemp\datadog-installer-x86_64.exe'); C:\Windows\SystemTemp\datadog-installer-x86_64.exe
Alternatively, install with the MSI:
$p = Start-Process -Wait -PassThru msiexec -ArgumentList '/qn /norestart /i "https://windows-agent.datadoghq.com/datadog-agent-7-latest.amd64.msi" /log C:\Windows\SystemTemp\install-datadog.log APIKEY="<YOUR_DD_API_KEY>" SITE="<span class="js-region-param region-param" data-region-param="dd_site"></span>" DD_APM_INSTRUMENTATION_ENABLED="iis" DD_APM_INSTRUMENTATION_LIBRARIES="dotnet:3"'
if ($p.ExitCode -ne 0) { Write-Host "msiexec failed with exit code $($p.ExitCode) please check the logs at C:\Windows\SystemTemp\install-datadog.log" -ForegroundColor Red }
To install a different .NET version, change dotnet:3, or omit DD_APM_INSTRUMENTATION_LIBRARIES to install the latest.
Note: The Chocolatey installation method does not preserve the SSI settings and cannot be used to enable SSI.
Restart the IIS applications you want instrumented. (You do not need to restart the entire IIS server.)
The Agent then automatically loads the Datadog .NET SDK into supported application processes to enable distributed tracing.
Generate the command from Datadog: To get a command pre-filled with your API key and site, go to Install the Datadog Agent on Windows and, in the Customize your observability coverage section, toggle Application Performance Monitoring (APM). To pin the .NET SDK version, select Customize Library Versions under Instrumentation Configuration. Then copy and run the generated command.
プレビューに参加しましょう。Windows の Host-wide インスツルメンテーションはプレビュー版で、プレビュー参加者に限定されています。このタブで説明されているインストールおよび構成オプションは、登録後にのみ Datadog に表示されます。
アクセスをリクエストしてプレビューに参加しましょう。
Windows ホスト全体で Java および .NET アプリケーションをインスツルメントするには、以下の手順を実行します。
Datadog で、Windows に Datadog Agent をインストールする に移動します。
Customize your observability coverage セクションで、Application Performance Monitoring (APM) を切り替えます。
(オプション) SDK バージョンを設定します。
デフォルトでは、シングルステップインスツルメンテーションはサポートされている最新バージョンの Datadog .NET および Java SDK をインストールします。特定のバージョンを固定する必要がある場合:
- Instrumentation Configuration で、Customize Library Versions を選択します。
- .NET で、使用するバージョンを選択します。
提供されたインストールコマンドをコピーし、Windows ホストで実行します。Datadog は、プレビューに登録された後、アプリ内でこのコマンドを生成します。
インスツルメンテーションルールを構成します。
ホスト全体の SSI は、ホスト上のすべての Java アプリケーションと、IIS で実行されているすべての .NET アプリケーションを自動的にインスツルメントします。IIS の外部で実行されている .NET アプリケーションをインスツルメントするには、それらを許可するインスツルメンテーションルールを定義する必要があります。インスツルメンテーションルールを使用して、ホスト上のどの Java アプリケーションまたは IIS 内のどの .NET アプリケーションをインスツルメントするかを詳細に制御することもできます。
インスツルメントするサービスを再起動します。
SSI は、インスツルメントされたアプリケーションに若干の起動時間を追加します。このオーバーヘッドが実際の状況で受け入れられない場合は、
Datadog サポートに連絡してください。
既存の Agent のインストール
Datadog Agent がすでにインストールされている場合は、Fleet Automation を使用して SSI を有効にします。
Datadog で、Fleet Automation > Configuration に移動します。
Configure Agents をクリックします。
フィルターを適用して、構成する Agent を選択し、次へをクリックします。
Application Performance Monitoring (APM) タイルをクリックし、Next をクリックします。
Configure SDKs Installation 画面で Yes をクリックして、SDK を自動的にインストールします。Use latest version を選択するか、チェックを外して個別の SDK バージョンを指定します。
Next をクリックします。
構成を確認し、Deploy Configuration をクリックします。
インスツルメンテーションルールを構成します。
ホスト全体の SSI は、ホスト上のすべての Java アプリケーションと、IIS で実行されているすべての .NET アプリケーションを自動的にインスツルメントします。IIS の外部で実行されている .NET アプリケーションをインスツルメントするには、それらを許可するインスツルメンテーションルールを定義する必要があります。インスツルメンテーションルールを使用して、ホスト上のどの Java アプリケーションまたは IIS 内のどの .NET アプリケーションをインスツルメントするかを詳細に制御することもできます。
インストールを検証する
管理者 PowerShell セッションから、Agent が正常であり、APM Agent が実行されていることを確認します。
& "$env:ProgramFiles\Datadog\Datadog Agent\bin\agent.exe" status
出力の APM Agent セクションをチェックします。
インスツルメントされたアプリケーションがトラフィックを受信した後、APM Services ページ にサービスが表示されることを確認します。数分以内に表示されない場合は、SSI トラブルシューティングガイド に従ってください。
統合サービスタグ (UST) は、トレース、メトリクス、ログを通じて一貫したタグを適用し、監視可能性データのナビゲートと相関を容易にします。Windows サービスの USTs を設定する 方法をご覧ください。
SDK に依存する製品と機能を有効にする
SSI がアプリケーションに Datadog SDK をロードし、分散トレーシングを有効にした後、SDK に依存する追加の製品を構成できます。
Note: All variables accept true or false. DD_PROFILING_ENABLED also accepts auto, which profiles only eligible processes and is recommended for SSI.
製品を有効にするには、アプリケーション構成で 環境変数を設定 してください。
高度なオプション
インスツルメンテーションルールを定義する
インスツルメンテーションルール (Agent v7.73 以降で利用可能) は、ホスト全体のインスツルメンテーションにのみ適用されます。IIS のみのインストールではサポートされていません。
インスツルメンテーションルールを使用すると、Windows ホスト上で SSI によって自動的にインスツルメントされるプロセスを制御できます。IIS 外で実行されている .NET アプリケーションをインスツルメントするには、ルールが必要です。また、ホスト上のどの Java アプリケーションや IIS 内のどの .NET アプリケーションをインスツルメントするかを詳細に制御する上でも役立ちます。
注:Bits AIを使用して、自然言語でインスツルメンテーションルールを作成できます。インスツルメンテーションするプロセスを記述すると、Bits AIが対応するルールを生成します。
インスツルメンテーションルールを構成するには、以下の手順を実行します。
Datadog で、APM > Service Setup > Manage Instrumentation Rules に移動します。
Add or Edit Rules をクリックします。
インスツルメンテーションルールを定義します。
- Add New Rule をクリックし、Allow Rule または Block Rule を選択して、一致するプロセスをインスツルメントするかどうかを指定します。
- ルールに名前を付けます。
- 1 つ以上の条件を追加します。詳細については、ルール条件を定義するを参照してください。
(オプション) ルールをドラッグアンドドロップして並べ替えます。
注: ルールは順番に評価されます。プロセスがルールに一致すると、それ以降のルールは無視されます。
どのルールにも一致しないプロセスのデフォルトの動作 (許可またはブロック) を設定します。
Next をクリックしてルールをプレビューします。
Deploy Rules をクリックします。
Remote Configuration が有効な場合、ルールはすべてのホストに展開され、SSI が有効なホストには 50 秒以内に適用されます。または、Export をクリックして構成ファイルをエクスポートし、ホストに手動で適用します。
ルール条件を定義する
各ルールは 1 つ以上の条件で構成されます。条件には以下の要素が含まれます。
- Attribute: ルールが評価するプロセスプロパティ。
- Operator: 比較ロジック (
equals、not equals、prefix、または contains)。 - Value: プロセス名やコマンドラインフラグなど、一致させるテキストまたはパターン。
サポートされている属性には以下が含まれます。
| 属性 | 説明 | 例 |
|---|
| オペレーティングシステム | ホストの OS。 | windows |
| 実行可能ファイル | プロセスの実行可能ファイル名。 | w3wp.exe |
| 実行可能ファイルの完全なパス | 実行可能ファイルの完全なパス。 | C:\Windows\System32\inetsrv\w3wp.exe |
| 引数 | プロセスの起動に使用されるコマンドライン引数。 | --env=production |
| 作業ディレクトリ | プロセスの作業ディレクトリ。 | C:\inetpub\wwwroot |
| 言語 | プロセスに対して検出されたプログラミング言語。 | dotnet |
| エントリーポイントファイル | アプリケーションの起動に使用される特定のファイル。 | MyService.dll、app.py |
| IIS アプリケーションプール | ワーカープロセスをホストする IIS アプリケーションプール。すべての IIS ワーカーは w3wp.exe 実行可能ファイルを共有するため、これが IIS 上の特定の .NET アプリをターゲットにする最も信頼性の高い方法です。 | DefaultAppPool、MyWebApp |
使用例
インスツルメンテーションルールの適用方法を示す以下の例をご確認ください。
デフォルトですべてのプロセスをインスツルメントします。分析用の cron ジョブや Java バッチプロセッサなど、価値のないノイズを追加するサービスを除外するために、ブロックルールを追加します。
デフォルトですべてのインスツルメンテーションをブロックします。特定の IIS アプリケーションを APM にオプトインさせるために、許可ルールを追加します。すべての IIS ワーカーは
w3wp.exe 実行可能ファイルを共有するため、
IIS Application Pool を使用してターゲットアプリケーションを特定します。このアプローチは、段階的なロールアウトに役立ちます。
シングルステップ APM インスツルメンテーションを Agent から削除する
ご利用のホストで .NET の SSI を無効にするには、以下を実行します。
&"C:\Program Files\Datadog\Datadog Agent\bin\datadog-installer.exe" remove datadog-apm-library-dotnet
トラブルシューティング
SSI で APM を有効にする際に問題が発生した場合は、SSI トラブルシューティングガイド を参照してください。
参考資料