Linux または Alpine Linux での .NET トレースの設定

Linux で .NET のトレースを設定するには、 Instana AutoTrace を使用するか、環境変数を手動で設定してください。 .NET Core センサー( 1.0.56 以降)および.NET では、Tracerはコンテナを除く Linux システムでのホスト自動トレースをサポートしています。

.NET の監視機能の詳細については、 「.NET の監視機能の仕組み」を参照してください。

準備

Linux で .NET Core のトレースを設定するには、以下の前提条件を満たしてください:

Linux での.NET アプリケーションの実行

Linux への.NET アプリケーションのデプロイに慣れていない場合は、以下の手順に従ってアプリケーションを設定し、実行してください。

手順 1: 「.NET 」SDK をインストールする

要件に応じて、.NET SDK を以下のいずれかの環境にインストールできます:

  • WSL( Windows Subsystem for Linux ):開発およびデバッグ用
  • Linux machine: 本番環境向け

Ubuntu 22.04 に .NET SDK 8.0 をインストールするには、次のコマンドを実行してください:

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0

ステップ 2: 「.NET 」アプリケーションを実行する

.NET アプリケーションは、以下のいずれかの方法で実行できます:

  • ダイレクトラン:

    dotnet run --project /home/username/Applications/WebAPI.Linux/WebAPI.Linux.csproj
  • Kestrel: Go を使用してフォルダ Publish に移動し、DLLを実行してください:

    cd /home/username/Publish/WebAPI.Linux
    dotnet WebAPI.Linux.dll

.NET のトレース機能を有効にする

以下のいずれかの方法を使用して、 Linux で.NET のトレースを有効にしてください:

方法 1: 自動トレースを有効にする

Instana を使用すると、 AutoTrace, および Instana が、.NET アプリケーションを自動的に検出してインストルメント化します。 コードを変更する必要はありません。

Instana AutoTrace, を有効にするには、以下の手順を実行してください:

  1. ホストエージェントをインストールしたら、エージェントを起動してください。
  2. .NET を起動してください。

検出の起動中に、センサーは自動的にトレース機能を有効にします。 NuGet パッケージを手動で追加したり、アプリケーションをコンパイルしたりする必要はありません。

証拠開示手続きの過程で、その instana_dotnet_global_env.sh ファイルが作成されます。 このファイルには、.NET Core のトレースに必要な環境変数が含まれています。

トレースが正常に機能しているか確認するには、 Instana のダッシュボードにログインしてください。 痕跡が現れてくるのがわかります。

方法 2: トレースを手動で有効にする

自動トレースを使用したくない場合や、設定をより細かく制御したい場合は、この方法を使用してください。 この方法では、アプリケーションに NuGet パッケージを追加する必要があります。

Linux 上で実行されているアプリケーションのトレース( Alpine Linux を除く)

Linux 上で実行されている .NET Core アプリケーションで手動トレースを有効にするには、以下の手順を実行してください:

  1. ホストエージェントのインストール後、アプリケーションに以下のパッケージをインストールしてください:

    パッケージが NuGet.org を通じて配布されている場合、アプリケーションを再コンパイルすることなくインストールできます。 以下の方法の 1 つを使用します。

    • nuget.exe 利用可能:計測対象のプロジェクトをコンパイルせずに、を使用して nuget.exe パッケージを復元します。
    • nuget.exe 利用不可:パッケージを直接ダウンロードし、解凍した後、次の手順に従って、解凍したファイルが格納されている場所を指定するように環境変数を設定してください。
    注: お使いのシステムアーキテクチャに合わせて、適切なリライターパッケージを選択してください。 このパッケージを Instana.Tracing.Core.Rewriter.Linux プロジェクトに追加するか、公開前に追加することができます。
  2. プロセスを開始する前に、アプリケーションのファイル Web.config に以下の環境変数を設定してください:

    DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll
    CORECLR_ENABLE_PROFILING=1
    CORECLR_PROFILER={cf0d821e-299b-5307-a3d8-b283c03916dd}
    CORECLR_PROFILER_PATH=[Path_to_your_app]/instana_tracing/CoreProfiler.so

    を、アプリケーションディレクトリの実際のパスに置き換えて [path-to-your-app] ください。

  3. アプリケーションがコンテナ内で実行されている場合は、.NET Tracerが実行時にエージェントの場所を特定し、スパンを送信できるよう、エージェントの環境変数を定義してください:

    INSTANA_AGENT_HOST=[address_where_the_agents_listens_and_is_reachable_from_inside_the_container]
    INSTANA_AGENT_PORT=42699

    設定が異なる場合は、別のポートを使用してください。

Alpine Linux 上で実行中のアプリケーションの追跡

Alpine Linux 上で実行されているアプリケーションのトレースを有効にするには、以下の手順を実行してください:

  1. ホストエージェントのインストール後、アプリケーションに以下のパッケージをインストールしてください:

    注:
    • NuGet.org でパッケージが入手可能な場合は、プロジェクトをコンパイルすることなく、利用可能な場合はその nuget.exe ファイルを使用してダウンロードできます。 あるいは、これらのパッケージを手動でダウンロードして解凍し、次の手順に従って、解凍されたファイルが指定されるように環境変数を設定することもできます。
    • お使いのシステムアーキテクチャに合わせて、適切なリライターパッケージを選択してください。 このパッケージを Instana.Tracing.Core.Rewriter.Windows プロジェクトに追加するか、公開前に追加することができます。
  2. プロセスを開始する前に、以下の環境変数を設定してください:

    DOTNET_STARTUP_HOOKS=[path-to-your-app]/Instana.Tracing.Core.dll
    CORECLR_ENABLE_PROFILING=1
    CORECLR_PROFILER={cf0d821e-299b-5307-a3d8-b283c03916dd}
    CORECLR_PROFILER_PATH=[Path_to_your_app]/instana_tracing/CoreProfiler.so
  3. アプリケーションがコンテナ内で実行されている場合は、エージェントの環境変数を次のように定義してください:

    INSTANA_AGENT_HOST=[address_where_the_agents_listens_and_is_reachable_from_inside_the_container]
    INSTANA_AGENT_PORT=42699