AppDynamics Java エージェントを使用して Spring Boot アプリを監視する方法
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象:✅ Standard 従量課金および専用 (プレビュー) ✅ Basic/Standard ❎ Enterprise
この記事では、AppDynamics Java エージェントを使用し、Azure Spring Apps の Spring Boot アプリケーションを監視する方法について説明します。
AppDynamics Java エージェントを使用すると、以下を行うことができます。
- アプリケーションの監視
- 環境変数を使用して AppDynamics Java エージェントを構成する
- AppDynamics ダッシュボードからすべての監視データを確認する
次の動画では、AppDynamics Java インプロセス エージェントについて解説しています。
前提条件
AppDynamics Java インプロセス エージェントをアクティブ化する
ワークフロー全体で、次のことを行う必要があります。
- Azure Spring Apps で AppDynamics Java インプロセス エージェントをアクティブ化して、アプリケーション メトリック データを生成します。
- AppDynamics エージェントを AppDynamics コントローラーに接続し、コントローラー内のデータを収集して視覚化します。
Azure CLI を使用して、AppDynamics エージェントを使用してアプリケーションをアクティブ化する
Azure CLI を使用してアプリケーションをアクティブ化するには、以下の手順を使用します。
リソース グループを作成する。
Azure Spring Apps のインスタンスを作成します。
次のコマンドを使用してアプリケーションを作成します。 プレースホルダー <...> を実際の値に置き換えてください。
az spring app create \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --is-public true
環境変数を使用して、AppDynamics エージェントでデプロイを作成します。
az spring app deploy \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --artifact-path app.jar \ --jvm-options="-javaagent:/opt/agents/appdynamics/java/javaagent.jar" \ --env APPDYNAMICS_AGENT_APPLICATION_NAME=<your-app-name> \ APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<your-agent-access-key> \ APPDYNAMICS_AGENT_ACCOUNT_NAME=<your-agent-account-name> \ APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME=true \ APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX=<your-agent-node-name> \ APPDYNAMICS_AGENT_TIER_NAME=<your-agent-tier-name> \ APPDYNAMICS_CONTROLLER_HOST_NAME=<your-AppDynamics-controller-host-name> \ APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \ APPDYNAMICS_CONTROLLER_PORT=443
Azure Spring Apps により、AppDynamics Java エージェントがパス /opt/agents/appdynamics/java/javaagent.jar に事前インストールされます。 アプリケーションの JVM オプションからエージェントを有効にしてから、環境変数を使用してエージェントを構成できます。 これらの変数の値については、Java エージェントを使用して Azure Spring Apps を監視する方法に関するページを参照してください。 これらの変数が、AppDynamics UI でレポートを表示したり整理したりする上でどのように役立つかについては、階層とノードに関するページを参照してください。
Azure portal を使用して、AppDynamics エージェントを使用してアプリケーションをアクティブ化する
Azure portal を使用してアプリケーションをアクティブ化するには、以下の手順を使用します。
Azure portal で Azure Spring Apps インスタンスに移動します。
ナビゲーション ウィンドウの [設定] セクションで、[アプリ] を選択します。
アプリを選択し、ナビゲーション ウィンドウで [構成] を選択します。
[全般設定] タブを使用して、JVM オプションなどの値を更新します。
[環境変数] を選択して、アプリケーションで使用される変数を追加または更新します。
プロビジョニングを自動化する
Terraform、Bicep、または Azure Resource Manager テンプレート (ARM テンプレート) を使用して、プロビジョニング自動化パイプラインを実行することもできます。 このパイプラインでは、作成およびデプロイする新しいアプリケーションをインストルメント化して監視するための完全なハンズオン エクスペリエンスが提供されます。
Terraform を使用してプロビジョニングを自動化する
Terraform テンプレートで環境変数を構成するには、次のコードをテンプレートに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、Azure Spring Apps のアクティブなデプロイの管理に関するページを参照してください。
resource "azurerm_spring_cloud_java_deployment" "example" {
...
jvm_options = "-javaagent:/opt/agents/appdynamics/java/javaagent.jar"
...
environment_variables = {
"APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
"APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
"APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
"APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
"APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
"APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
"APPDYNAMICS_CONTROLLER_PORT" : "443"
}
}
Bicep を使用してプロビジョニングを自動化する
Bicep ファイルで環境変数を構成するには、次のコードをファイルに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、Microsoft.AppPlatform Spring/apps/deployments を参照してください。
deploymentSettings: {
environmentVariables: {
APPDYNAMICS_AGENT_APPLICATION_NAME : '<your-app-name>'
APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY : '<your-agent-access-key>'
APPDYNAMICS_AGENT_ACCOUNT_NAME : '<your-agent-account-name>'
APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME : 'true'
APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX : '<your-agent-node-name>'
APPDYNAMICS_AGENT_TIER_NAME : '<your-agent-tier-name>'
APPDYNAMICS_CONTROLLER_HOST_NAME : '<your-AppDynamics-controller-host-name>'
APPDYNAMICS_CONTROLLER_SSL_ENABLED : 'true'
APPDYNAMICS_CONTROLLER_PORT : '443'
}
jvmOptions: '-javaagent:/opt/agents/appdynamics/java/javaagent.jar'
}
ARM テンプレートを使用してプロビジョニングを自動化する
ARM テンプレートで環境変数を構成するには、次のコードをテンプレートに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、Microsoft.AppPlatform Spring/apps/deployments を参照してください。
"deploymentSettings": {
"environmentVariables": {
"APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
"APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
"APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
"APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
"APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
"APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
"APPDYNAMICS_CONTROLLER_PORT" : "443"
},
"jvmOptions": "-javaagent:/opt/agents/appdynamics/java/javaagent.jar",
...
}
AppDynamics ダッシュボードでレポートを確認する
このセクションでは、AppDynamics のさまざまなレポートを紹介します。
次のスクリーンショットは、AppDynamics ダッシュボードに表示されるアプリの概要を示しています。
[アプリケーション] タブには、アプリケーションの例を用いた以下のスクリーンショットのように、各アプリケーションの全体的な情報が表示されます。
次のスクリーンショットは、データベース呼び出し ダッシュボードから基本情報を取得する方法を示しています。
次のスクリーンショットに示すように、最も低速なデータベース呼び出しに関する情報を取得することもできます。
次のスクリーンショットは、[メモリ] ページの [ヒープ] セクションに表示されるメモリ使用量分析を示しています。
次のスクリーンショットに示すように、ガベージ コレクションのプロセスを確認することもできます。
次のスクリーンショットは [低速のトランザクション] ページを示しています。
この [メトリック ブラウザー] のスクリーンショットに示されているように、JVM に対してさらに多くのメトリクスを定義することができます。
AppDynamics エージェントのログを表示する
Azure Spring Apps では、既定で AppDynamics エージェントの "情報" レベルのログが STDOUT
に出力されます。 このログは、アプリケーション ログと混在しています。 アプリケーション ログから明示的なエージェント バージョンを見つけることができます。
AppDynamics エージェントのログは、次の場所から取得することもできます。
- Azure Spring Apps ログ
- Azure Spring Apps Application Insights
- Azure Spring Apps LogStream
AppDynamics エージェントのアップグレードについて
AppDynamics エージェントは、JDK を用いて定期的にアップグレードされます (四半期ごと)。 エージェントのアップグレードは、次のシナリオに影響する場合があります。
- アップグレード前に AppDynamics エージェントが使用されていた既存のアプリケーションは変更されませんが、新しいバージョンの AppDynamics エージェントを利用するには再起動または再デプロイが必要になります。
- アップグレード後に作成されたアプリケーションでは、新しいバージョンの AppDynamics エージェントが使用されます。
仮想ネットワーク インジェクション インスタンスの送信トラフィックの構成
Azure Spring Apps の仮想ネットワーク インジェクション インスタンスで、AppDynamics エージェントに対して送信トラフィックが正しく構成されていることを確認します。 詳細については、Cisco AppDynamics SaaS ドメインと IP 範囲に関するページと、「仮想ネットワークでの Azure Spring Apps の実行に関するお客様の責任」をご覧ください。
制限事項を理解する
AppDynamics エージェントの制限事項については、Java エージェントを使用して Azure Spring Apps を監視する方法に関するページを参照してください。
次のステップ
Azure Spring Apps で Application Insights Java インプロセス エージェントを使用する