互換性要件

サポートされている .NET フレームワークのランタイム

.NET トレーサーは、.NET Framework 4.6.1 以上のインスツルメンテーションをサポートします。

Datadog の .NET Framework ライブラリとプロセッサアーキテクチャーのサポート一覧 (レガシーバージョンとメンテナンスバージョンを含む) については、互換性要件を参照してください。

インストールと利用開始

AWS Lambda や Azure Functions などのサーバーレス環境で Datadog APM を設定するには、サーバーレスを参照してください。
注: Datadog の自動インスツルメンテーションは .NET CLR Profiling API に依存します。この API で許可されるサブスクライバーは 1 つのみです (例: Datadog APM)。可視性を最大化するため、アプリケーション環境では 1 つの APM ソリューションだけを実行してください。

インストール

作業を始める前に、Agent のインストールと構成が済んでいることを確認してください。

  1. トレーサーをインストールします。
  2. Enable the tracer for your service.
  3. ライブデータを表示します。

トレーサーをインストールする

Datadog Agent をインストールして構成したら、次はアプリケーションに直接トレーシングライブラリを追加してインスツルメントします。互換性情報の詳細をお読みください。

Datadog .NET Tracer は、マシン上のすべてのサービスがインスツルメントされるようにマシン全体にインストールするか、アプリケーションごとにインストールし、開発者はアプリケーションの依存関係を通じてインスツルメンテーションを管理することができます。マシン全体のインストール手順を見るには、Windows タブをクリックします。アプリケーションごとのインストール手順を見るには、NuGet タブをクリックします。

.NET Tracer をマシン全体にインストールするには

  1. .NET Tracer MSI インストーラーをダウンロードします。64 ビット版の Windows を実行している場合は x64 MSI インストーラーを使用してください。これは 64 ビットと 32 ビットのアプリケーションの両方をインスツルメントできます。32 ビット版の Windows を実行している場合のみ x86 インストーラーを選択します。v3.0.0 以降は、32 ビットのオペレーティング システムをサポートしていないため、x64 インストーラーのみが提供されます。

  2. 管理者権限で .NET トレーサー MSI インストーラーを実行します。

PowerShell で次を実行することで、MSI セットアップをスクリプト化することもできます: Start-Process -Wait msiexec -ArgumentList '/qn /i datadog-apm.msi'

注: このインストールは、IIS で動作するアプリケーションをインスツルメントするものではありません。IIS で実行されるアプリケーションについては、Windows マシン全体のインストールプロセスに従ってください。

.NET Tracer をアプリケーション単位でインストールするには

  1. Datadog.Trace.Bundle NuGet パッケージをアプリケーションに追加します。

サービスのトレーサーを有効にする

サービスの .NET Tracer を有効にするには、必要な環境変数を設定し、アプリケーションを再起動します。

環境変数の設定方法の違いについては、プロセス環境変数の構成を参照してください。

Internet Information Services (IIS)

  1. .NET Tracer の MSI インストーラーは、必要な環境変数をすべて追加します。構成する必要のある環境変数はありません。

  2. IIS でホストされるアプリケーションを自動でインスツルメントするには、管理者として次のコマンドを実行して IIS を完全に停止してから起動します。

    net stop /y was
    net start w3svc
    # Also, start any other services that were stopped when WAS was shut down.
    
    Note: Always use the commands above to completely stop and restart IIS to enable the tracer. Avoid using the IIS Manager GUI application or iisreset.exe.

IIS 以外のサービス

注: .NET ランタイムは、これらの環境変数が設定された状態で開始された あらゆる .NET プロセスに .NET ライブラリを読み込もうとします。インスツルメンテーションは、必要なアプリケーションのみに限定してください。これらの環境変数をグローバルに設定しないでください。こうすると、ホスト上の すべての .NET プロセスがインスツルメントされます。
  1. 自動インスツルメンテーションをアプリケーションにアタッチするために、以下の必要な環境変数を設定します。

    COR_ENABLE_PROFILING=1
    
  2. スタンドアロンアプリケーションや Windows サービスの場合は、手動でアプリケーションを再起動します。

パッケージの Readme に書かれている手順に従ってください。dd-trace-dotnet リポジトリでも公開されています。 Docker のサンプルもリポジトリで公開されています。

ライブデータの表示

サービスの .NET Tracer を有効にした後:

  1. サービスを再起動します。

  2. アプリケーションロードを作成します。

  3. Datadog で APM > APM Traces の順に移動します。

設定

統合サービスタグ付けの設定など、アプリケーションパフォーマンスのテレメトリーデータを送信するためのトレースライブラリを構成します。詳しくは、ライブラリの構成を参照してください。

カスタムインスツルメンテーション

カスタム インスツルメンテーションは自動インスツルメンテーションを前提としており、方法に応じて追加の手順が必要です。

注: v3.0.0 以降、カスタム インスツルメンテーションを使用するには自動インスツルメンテーションも併用する必要があります。自動およびカスタム インスツルメンテーションのパッケージ バージョン (例: MSI と NuGet) は同期させ、メジャー バージョンを混在させないようにしてください。

.NET アプリケーションでカスタムインスツルメンテーションを使用するには

  1. 自動インスツルメンテーションを使用してアプリケーションをインスツルメントします。
  2. Datadog.Trace NuGet パッケージをアプリケーションに追加します。
  3. アプリケーションコードで、Datadog.Trace.Tracer.Instance プロパティを介してグローバルトレーサーにアクセスし、新しいスパンを作成します。

.NET アプリケーションでカスタムインスツルメンテーションを使用するには

  1. アプリケーションコードで、Datadog.Trace.Tracer.Instance プロパティを介してグローバルトレーサーにアクセスし、新しいスパンを作成します。

カスタムインスツルメンテーションのスパンやタグの追加について詳しくは、.NET カスタムインスツルメンテーションのドキュメントを参照してください。

プロセス環境変数の構成

サービスに自動インスツルメンテーションをアタッチするには、アプリケーションを起動する前に、必要な環境変数を設定します。.NET Tracer のインストール方法に応じて設定する環境変数を特定するために、 サービスのトレーサーを有効にするのセクションを参照し、以下の例に従って、インスツルメントされたサービスの環境に基づいて環境変数を正しく設定します。

注: .NET ランタイムは、これらの環境変数が設定された状態で開始されたあらゆる .NET プロセスに .NET ライブラリをロードしようとします。インスツルメンテーションは、インスツルメントする必要のあるアプリケーションのみに制限する必要があります。これらの環境変数をグローバルに設定しないでください。こうすると、ホスト上のすべての .NET プロセスがインスツルメントされます。

Windows サービス

レジストリエディターで、HKLM\System\CurrentControlSet\Services\<SERVICE NAME> キーに Environment 複数の文字列値を作成します。

COR_ENABLE_PROFILING=1
Registry Editor を使用して、Windows サービスの環境変数を作成する
Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\<SERVICE NAME> -Name Environment -Value 'COR_ENABLE_PROFILING=1'

IIS

MSI をインストールした後、IIS サイトを自動的にインスツルメンテーションするための追加構成は必要ありません。すべての IIS サイトに継承される追加の環境変数を設定するには、次の手順を実行します。

  1. Registry Editor を開き、HKLM\System\CurrentControlSet\Services\WAS キーにある Environment という複数文字列の値を探し、1 行に 1 つずつ環境変数を追加します。例えば、ログの挿入とランタイムメトリクスを追加するには、値データに以下の行を追加します。
    DD_LOGS_INJECTION=true
    DD_RUNTIME_METRICS_ENABLED=true
    
  2. 以下のコマンドを実行し、IIS を再起動します。
    net stop /y was
    net start w3svc
    # Also, start any other services that were stopped when WAS was shut down.
    
Registry Editor を使用して、すべての IIS サイトの環境変数を作成する

コンソールアプリケーション

コンソールアプリケーションを自動的にインスツルメントするには、アプリケーションを起動する前に、バッチファイルから環境変数を設定します。

rem 必要な環境変数を設定
SET COR_ENABLE_PROFILING=1

rem (オプション) 追加の Datadog 環境変数を設定。例:
SET DD_LOGS_INJECTION=true
SET DD_RUNTIME_METRICS_ENABLED=true

rem アプリケーションを起動
dotnet.exe example.dll

関連情報