使用する前に

開始する前に、次の前提条件を確認します。

  1. 互換性のあるコントローラへのアクセス権を持っていることを確認します。詳細については、エージェントとコントローラの互換性を参照してください。
  2. エージェントがデータをレポートするコントローラへの接続設定を確認します。
    • SaaSコントローラを使用する場合、AppDynamicsによるウェルカムメールでコントローラホストが送信されます。HTTPSにはポート443を使用し、HTTPにはポート80を使用します。
    • オンプレミスコントローラを使用する場合、インストール時にホストとポートを指定しています。
  3. アプリケーションが実行されているマシンに、エージェントソフトウェアのインストール権限を持つユーザーアカウントとしてアクセスできることを確認し、アプリケーションを再起動します。
  4. アプリケーションを実行するマシンがコントローラに接続できることを確認します。エージェントとコントローラ間のネットワークのプロキシまたはファイアウォールに対して、追加の構成が必要になる場合があります。
  5. エージェントの実行前に、アプリケーション環境が2022-04-15_00-55-31_.NET Agent for Linux Supported Environmentsの要件を満たしていることを確認します。

アプリケーションとライセンスの概要

次のアプリケーションとライセンスを持っていることを確認してください。

  • Linux上で実行されている.NET Coreアプリケーション
  • Linux 上で実行されている .NET Core アプリケーションごとの .NET ライセンス詳細については、ライセンス使用状況の確認を参照してください。

バイナリの概要

AppDynamics ダウンロードサイトからエージェントのバイナリをダウンロードし、zip ファイルから目的のフォルダに展開します。

アーカイブには次のファイルが含まれています。

  • AppDynamics.Agent.netstandard.dll
  • libappdprofiler.so
  • libappdprofiler_glibc.so
  • libappdprofiler_musl.so
  • README.md

zip ファイルから 4 つのエージェントバイナリをすべて展開する必要があります。

デプロイ

Dockerを使用してデプロイを開始するためのオプションは、次の2つです。

独自のイメージを作成する

MicrosoftおよびDockerfileから提供されたASP.NETアプリケーションのサンプルを使用して、独自のイメージを作成し、開始します。

  1. binariesをダウンロードします。
  2. Dockerfileの変数を更新して、AppDynamicsでコントローラおよびアプリケーションIDへの接続を構成します。
  3. Dockerイメージを作成します。

次に、Dockerfile の例をコメント付きの手順とともに示します。

FROM mcr.microsoft.com/dotnet/core/samples:aspnetapp

####### Requirements
# Have the following files alongside the Dockerfile:
# * libappdprofiler.so
# * AppDynamics.Agent.netstandard.dll

####### Instructions
# Building image: docker build --rm -t appdynamicstest:latest .
# Running container: docker run --rm -p 8000:80 appdynamicstest:latest
# Open the application using http://localhost:8000/

# Copy agent binaries to the image from current folder
RUN mkdir -p /opt/appdynamics/dotnet
ADD libappdprofiler.so /opt/appdynamics/dotnet/
ADD libappdprofiler_glibc.so /opt/appdynamics/dotnet/
ADD libappdprofiler_musl.so /opt/appdynamics/dotnet/
ADD AppDynamics.Agent.netstandard.dll /opt/appdynamics/dotnet/

# Mandatory settings required to attach the agent to the .NET application
ENV CORECLR_PROFILER={57e1aa68-2229-41aa-9931-a6e93bbc64d8} \
    CORECLR_ENABLE_PROFILING=1 \
    CORECLR_PROFILER_PATH=/opt/appdynamics/dotnet/libappdprofiler.so

# Configure connection to the controller
ENV APPDYNAMICS_CONTROLLER_HOST_NAME=controller.saas.appdynamics.com
ENV APPDYNAMICS_CONTROLLER_PORT=443
ENV APPDYNAMICS_CONTROLLER_SSL_ENABLED=true
ENV APPDYNAMICS_AGENT_ACCOUNT_NAME=account-name
ENV APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=access-key

# Configure application identity in AppDynamics
ENV APPDYNAMICS_AGENT_APPLICATION_NAME="My Application"
ENV APPDYNAMICS_AGENT_TIER_NAME="Sample Tier"
ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME=true
ENV APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX="Instance"

# It is possible to configure .NET agent using AppDynamicsConfig.json configuration file instead of environment variables
# ADD AppDynamicsConfig.json /opt/appdynamics/dotnet/
CODE

Alpine OS:

Alpine でアプリケーションを実行するには、ENV LD_LIBRARY_PATH=/opt/appdynamics/dotnet などの追加の環境変数 LD_LIBRARY_PATH が必須です。

既存のイメージを実行する

エージェントが有効になっている状態で既存のイメージを実行できます。これは、新しいイメージを作成する必要がないため、最も簡単な開始方法です。

  1. 前述のバイナリをダウンロードします。
  2. Dockerコマンドの変数を更新して、AppDynamicsでコントローラおよびアプリケーションIDへの接続を構成します。

  3. Zipファイルからエージェントバイナリを抽出した目的のフォルダでコマンドを実行します。
    コマンドの $(pwd) は、このフォルダで置き換えることができます。

次の例では、アプリケーションのサンプルを実行します。現在のディレクトリにAppDynamicsバイナリがあることが前提となっています。

Example command to run existing image with .NET agent enabled

docker run \
-p 8000:80 \
-e CORECLR_PROFILER={57e1aa68-2229-41aa-9931-a6e93bbc64d8} \
-e CORECLR_ENABLE_PROFILING=1 \
-e CORECLR_PROFILER_PATH=/opt/appdynamics/dotnet/libappdprofiler.so \
-e APPDYNAMICS_CONTROLLER_HOST_NAME=controller.saas.appdynamics.com \
-e APPDYNAMICS_CONTROLLER_PORT=443 \
-e APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \
-e APPDYNAMICS_AGENT_ACCOUNT_NAME=account-name \
-e APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=access-key \
-e APPDYNAMICS_AGENT_APPLICATION_NAME="My Application" \
-e APPDYNAMICS_AGENT_TIER_NAME="Sample Tier" \
-e APPDYNAMICS_AGENT_REUSE_NODE_NAME=true \
-e APPDYNAMICS_AGENT_REUSE_NODE_NAME_PREFIX="Instance" \
-v "$(pwd)":/opt/appdynamics/dotnet/ \
mcr.microsoft.com/dotnet/core/samples:aspnetapp
BASH

Alpine OS上で

Alpine でアプリケーションを実行するには、-e LD_LIBRARY_PATH=/opt/appdynamics/dotnet \ などの追加の環境変数 LD_LIBRARY_PATH が必須です。

このコマンドでは、エージェントファイルがボリュームとしてマウントされ、エージェントでの追加に必要な環境変数が設定されます。

起動フロー

アプリケーションの起動時に、AppDynamicsエージェントによってメッセージがコンソールおよびアプリケーションと.NETフレームワークに書き込まれます。

この .NET エージェント起動コンソール出力は、適切なエージェントの初期化を示しています。

appd.agent.profiler(Info): ...
CODE

詳細については、「.NET Agent for Linuxのトラブルシューティング」を参照してください。