コンテンツにスキップ

.NET

インストール設定

対応バージョン

バージョン Microsoft のサポート終了状態 サポート状態 パッケージバージョン
.NET 7 - GA latest (>= 2.20.0)
.NET 6 - GA latest (>= 2.0.0)
.NET 5 - GA latest (>= 2.0.0)
.NET Core 3.1 12/03/2022 GA latest
.NET Core 2.1 08/21/2021 GA latest
.NET Core 3.0 03/03/2020 EOL Not recommended
.NET Core 2.2 12/23/2019 EOL Not recommended
.NET Core 2.0 10/01/2018 EOL Not recommended

Agent のインストール

Info

Datadog .NET Tracer はマシン全体にインストールして、そのマシン上のすべてのサービスを計測することも、アプリケーションごとにインストールして、開発者がアプリケーションの依存関係を通じて計測を管理することもできます。マシン全体のインストール手順を確認するには、Windows または Linux タブをクリックしてください。アプリケーションごとのインストール手順を確認するには、NuGet タブをクリックしてください。

.NET Tracer をマシン全体にインストールするには、次の手順を実行します。

  1. .NET Tracer MSI インストーラーをダウンロードします。OS(x64 または x86)に一致するアーキテクチャの MSI インストーラーを選択してください。
  2. 管理者権限で .NET Tracer MSI インストーラーを実行します。 また、PowerShell で次のコマンドを実行して MSI インストーラーを自動化することもできます。Start-Process -Wait msiexec -ArgumentList '/qn /i datadog-apm.msi'

.NET Tracer をマシン全体にインストールするには、次の手順を実行します。

  1. .NET Tracer MSI インストーラーをダウンロードします。OS(x64 または x86)に一致するアーキテクチャの MSI インストーラーを選択してください。
  2. OS に応じて以下の該当するインストールパッケージを実行し、適切な権限で .NET トレーサーのログディレクトリ /var/log/datadog/dotnet を作成します。

    Debian or Ubuntu
    sudo dpkg -i ./datadog-dotnet-apm_<TRACER_VERSION>_amd64.deb && /opt/datadog/createLogPath.sh
    CentOS or Fedora
    sudo rpm -Uvh datadog-dotnet-apm<TRACER_VERSION>-1.x86_64.rpm && /opt/datadog/createLogPath.sh
    Alpine or other musl-based distributions
    sudo tar -C /opt/datadog -xzf datadog-dotnet-apm-<TRACER_VERSION>-musl.tar.gz && sh /opt/datadog/createLogPath.sh
    Other distributions
    sudo tar -C /opt/datadog -xzf datadog-dotnet-apm<TRACER_VERSION>-tar.gz && /opt/datadog/createLogPath.sh

シェルのない slim または distroless Docker イメージに .NET Tracer をインストールするには、Dockerfile で次のコマンドを使用します。

  • ADD を使って tracer ファイルをコンテナに配置します。
  • COPY --chown=$APP_UID を使い、空のフォルダをソースとしてログディレクトリを作成します。

例えば、Dockerfile には次のように記述できます。

ADD datadog-dotnet-apm-<TRACER_VERSION>.tar.gz /opt/datadog/
COPY --chown=$APP_UID --from=<OTHER_STAGE> /empty/ /var/log/datadog/dotnet/
Info

注意: このインストール方法では IIS で実行されるアプリケーションは検出されません。IIS で実行されるアプリケーションについては、Windows のマシン全体インストール手順に従ってください。

アプリに .NET Tracer を追加する

  1. NuGet package を使用して、アプリに Datadog.Trace.Bundle を追加します。

アプリケーションで Tracer を有効にする

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

環境変数の設定方法については、設定手順の 環境変数 を参照してください。

Internet Information Services (IIS):

  1. .NET Tracer MSI インストーラーは必要な環境変数をすべて追加します。ここでは追加の環境変数を設定する必要があります。
  2. IIS でホストされているアプリケーションを自動検出するには、管理者として次のコマンドを実行し、IIS を完全に停止してから起動します。
    net stop /y was
    net start w3svc
    
Info

注意: Tracer を有効にするには、必ず上記のコマンドで IIS を完全に停止してから再起動してください。IIS マネージャーの GUI アプリケーションや iisreset.exe は使用しないでください。

IIS 以外のアプリ

  1. アプリケーションに自動計測を追加するため、次の必要な環境変数を設定します。
    CORECLR_ENABLE_PROFILING=1
    CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
    
  2. アプリケーションを再起動します。
  1. アプリケーションに自動計測を追加するために必要な環境変数を設定します。
    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  
    
  2. アプリケーションを再起動します

.NET アプリにカスタムインストルメンテーションを追加します。

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

環境変数の設定

自動計測をサービスに適用するには、アプリケーションの起動前に必要な環境変数を設定する必要があります。アプリケーションで tracer を有効にする の節を参照し、.NET tracer のインストール方法に応じて設定する環境変数を確認してください。以下の例を参考に、計測を挿入するサービスの環境に合わせて環境変数を正しく設定してください。

以下はいずれの方法でも追加が必要な変数です

DD_TRACE_AGENT_PORT=9529

DD_AGENT_HOST=localhost

Windows

Info

v2.14.0 以降は、MSI で tracer をインストールした場合、CORECLR_PROFILER を設定する必要はありません。

レジストリエディタで、HKLM\System\CurrentControlSet\Services\<SERVICE NAME> キーに Environment という名前のマルチ文字列値を作成し、値のデータを次のように設定します。

CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
Img

[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

MSI のインストール後は、追加設定なしで IIS サイトを自動検出できます。すべての IIS サイトに継承される追加の環境変数を設定するには、次の手順を実行します。

  1. レジストリエディタを開き、HKLM\System\CurrentControlSet\Services\WAS レジストリキーの Environment という名前のマルチ文字列値を見つけて、環境変数を 1 行ずつ追加します。たとえば、ログ注入と runtime metrics を追加するには、値データに次の行を追加します。

    DD_LOGS_INJECTION=true
    DD_RUNTIME_METRICS_ENABLED=true
    

  2. 次のコマンドを実行して IIS を再起動します。

    net stop /y was
    net start w3svc
    # さらに、WAS の停止時に停止される他のサービスも起動します。
    
    Img

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

rem 環境変数を設定
SET CORECLR_ENABLE_PROFILING=1
rem v2.14.0+ 以降でtracer  MSI でインストールした場合を除く
SET CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}

rem 追加の Datadog 環境変数を設定
SET DD_LOGS_INJECTION=true
SET DD_RUNTIME_METRICS_ENABLED=true

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

Linux

アプリケーションの起動前に、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

# 追加の Datadog 環境変数を設定
export DD_LOGS_INJECTION=true
export DD_RUNTIME_METRICS_ENABLED=true

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

Docker container で環境変数を設定します。

# 環境変数を設定
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

# 追加の Datadog 環境変数を設定
ENV DD_LOGS_INJECTION=true
ENV DD_RUNTIME_METRICS_ENABLED=true

# アプリケーションを起動
CMD ["dotnet", "example.dll"]

systemctl で .NET アプリケーションをサービスとして実行する場合、特定のサービスに読み込む必要のある環境変数を追加できます。

  1. 次の内容を含む 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
    
    # 追加の Datadog 環境変数を設定
    DD_LOGS_INJECTION=true
    DD_RUNTIME_METRICS_ENABLED=true
    

  2. サービスの設定ファイルで、サービスブロック内から EnvironmentFile として参照します。

    EnvironmentFile=/path/to/environment.env
    ExecStart=<command used to start the application>
    

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

Info

注意: .NET ランタイムは、これらの環境変数が設定された後に起動した任意の .NET プロセスにプロファイラを読み込もうとします。計測は、トレースが必要なアプリケーションにのみ限定してください。これらの環境変数はグローバルに設定しないでください。ホスト上のすべての .NET プロセスにプロファイラが読み込まれてしまいます。

systemctl で .NET アプリケーションをサービスとして実行する場合、systemctl で実行されるすべてのサービスに対して読み込む環境変数を設定することもできます。

  1. 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
    
    # 追加の Datadog 環境変数を設定
    systemctl set-environment DD_LOGS_INJECTION=true
    systemctl set-environment DD_RUNTIME_METRICS_ENABLED=true
    

  2. systemctl show environment を実行して、環境変数が正しく設定されたことを確認します。

  3. アプリケーションサービスを再起動します。

トレース

収集器

DDTrace を通じて .NET アプリ関連の Tracing 情報を収集します。

メトリクス

ランタイムメトリクス

DD_RUNTIME_METRICS_ENABLED=true 環境変数を使用して、.NET Tracer 1.23.0+ でランタイムメトリクスを有効にします。

ランタイムメトリクスの互換性

  • .NET Framework 4.6.1+
  • .NET Core 3.1
  • .NET 5
  • .NET 6
  • .NET 7

収集器

  1. DataKit で statsd 収集器を有効にします。
  2. デフォルトのポートは 8125 です。
  3. Agent をコンテナとして実行する場合は、DD_DOGSTATSD_NON_LOCAL_TRAFFICtrue に設定し、Agent 側のポート 8125 が開いていることを確認してください。

メトリクス情報

詳細なメトリクス情報

ログ

ファイルディレクトリ

デフォルトでは、ログファイルは次のディレクトリに保存されます。DD_TRACE_LOG_DIRECTORY 設定を使用して、これらのパスを変更できます。

プラットフォーム ディレクトリ
Windows %ProgramData%\Datadog .NET Tracer\logs\
Linux /var/log/datadog/dotnet/
Linux (when using Kubernetes library injection) /datadog-lib/logs
Azure App Service %AzureAppServiceHomeDirectory%\LogFiles\datadog

注意: Linux では、デバッグモードを有効にする前にログディレクトリを作成しておく必要があります。

  • dotnet-tracer-managed-{processName}-{timestamp}.log には構成ログが含まれます。

  • dotnet-tracer-native.log には診断ログが含まれます(生成された場合)。

Profiler

参照ドキュメント .NET profiling

公式ドキュメント

.NET パラメータドキュメント

.NET Tracer

.NET ログ

.NET Runtime Metrics

フィードバック

このページは役に立ちましたか?