AppDynamics .NET Core for Linux SDK を使用すると、Linux 上で実行されている .NET Core アプリケーションのパフォーマンスをモニタできます。

SDK では次の機能がサポートされています。

  • ビジネストランザクションの登録とエラーのレポート
  • 相関を使用した終了コールとエラーのレポート
  • メトリック
  • ユーザプロパティを使用するが、コールグラフは使用しないスナップショット

これらのツールを併用することで、アプリケーションのロード時と応答時および定義したカスタムメトリックを可視化できます。

.NET Core for Linux SDKをアプリケーションディレクトリおよびプロジェクトにデプロイして、.NET Coreアプリケーションをモニタリングします。

実行すると、エージェントによってAppDyamicsコントローラを使用して ビジネストランザクションが登録されます。これにより、アプリケーション フローマップを表示し、コントローラでパフォーマンスをモニタできます。 

はじめに

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

インストールの準備

次の条件が満たされていることを確認します。

  • .NET Core SDK
  • Linux上で実行されている.NET Coreアプリケーション
  • AppDynamics.AgentSDK NuGetパッケージ
  • Visual Studioまたは他のIDE
  • .NET Core コマンドライン インターフェイス(CLI)

SDKのインストール

Visual Studio または別の統合開発環境(IDE)を使用して、次のステップを手動で完了します。

  1. プロジェクトに AppDynamics.AgentSDK NuGet パッケージを追加するには、コマンドラインで次のように入力します

    dotnet add package AppDynamics.AgentSDK_x64
    CODE

    コマンドを入力すると、パッケージがプロジェクト内のフレームワークと互換性があることを確認するための互換性チェックがあります。チェックに合格すると、<PackageReference> 要素がプロジェクトファイルに追加され、dotnet restore が暗黙的に実行されます。

  2. AppDynamics SDK を使用するようプロジェクトを変更します。「.NET Core for Linux SDK参照資料」を参照してください。
    アプリケーションに SDK 名前空間と SDK コードを追加します。例:

    using AppDynamics;
    ...
    namespace coremvc.Controllers
    {
       public class HomeController : Controller
       {
          public IActionResult SomePage()
          {
              var currCtxId = AgentSDK.StartBusinessTransaction("DemoBT", "ASP_DOTNET", "");
              // Code here calls to other ASP_DOTNET component
    			...
              AgentSDK.StopBusinessTransaction(currCtxId);
              return View();
           }
           ...
    CODE
  3. dotnet build または dotnet publish を実行します。
    AppDynamics 構成が更新されなかったことを示す警告メッセージが表示されます。これは正常な動作です。
    • dotnet build を実行すると、次の AppDynamics 構成ファイルがアプリケーションに追加されます。
      <application_directory>: AppDynamicsConfig.json
    • dotnet publish を実行すると、AppDynamicsConfig.json ファイルの名前が変更され、参照および使用するために .NET Core for Linux SDK の公開ディレクトリにコピーされます。
      <publish_directory): <project_name>.AppDynamicsConfig.json
  4. AppDynamics.Config.json ファイルを更新し、エージェントをコントローラに接続する手順については、「.NET Core for Linux SDKの使用」を参照してください。

既知の問題

.NET Core 2.0 でコンパイルされた内蔵型アプリケーションのネイティブイメージ(NGEN)のロードを無効にするための要件

.NET コアランタイムのバグが原因で(https://github.com/dotnet/coreclr/issues/13021 を参照)、Linux SDK プロファイラの .NET コアがランタイムに送信し、ネイティブイメージのロードを無効にするコマンドは無視されます。これにより、AppDynamics は .NET 標準ライブラリのほとんどを含むこれらのアセンブリのメソッドをインストゥルメントすることができなくなります。

この問題を回避するには、次の環境変数を設定してネイティブイメージの使用を無効にします。

COMPLUS_ReadyToRun=0