Dynatrace Java OneAgent で Spring Boot アプリを監視する方法

Note

BasicStandard、および 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

この記事では Dynatrace OneAgent を使って Azure Spring Apps の Spring Boot アプリケーションを監視する方法について説明します。

Dynatrace OneAgent を使用すると、次のことができます。

  • Dynatrace OneAgent を使用してアプリを監視する。
  • 環境変数を使用して Dynatrace OneAgent を構成する。
  • Dynatrace ダッシュボードからすべての監視データを確認する。

次のビデオでは、Dynatrace OneAgent を紹介しています。


前提条件

Dynatrace OneAgent のアクティブ化

次のセクションでは、Dynatrace OneAgent をアクティブ化する方法について説明します。

Azure Spring Apps の環境を準備する

  1. Azure Spring Apps のインスタンスを作成します。
  2. 次のコマンドを実行して、Dynatrace に報告するアプリケーションを作成します。 プレースホルダー <...> を実際の値に置き換えてください。
    az spring app create \
        --resource-group <your-resource-group-name> \
        --service <your-Azure-Spring-Apps-name> \
        --name <your-application-name> \
        --is-public true
    

必要な環境変数の値を決定する

Azure Spring Apps インスタンスで Dynatrace OneAgent をアクティブ化するには、DT_TENANTDT_TENANTTOKENDT_CONNECTION_POINTDT_CLUSTER_ID の 4 つの環境変数を構成する必要があります。 詳細については、OneAgent と Azure Spring Apps の統合に関する記事を参照してください。

複数のインスタンスを持つアプリケーションの場合、Dynatrace ではいくつかの方法でそれらをグループ化できます。 DT_CLUSTER_ID はその方法の 1 つです。 詳細については、プロセス グループの検出に関する記事を参照してください。

アプリケーションに環境変数を追加する

Azure portal または Azure CLI のいずれかを使用して、環境変数のキーと値のペアをアプリケーションに追加できます。

オプション 1: Azure CLI

Azure CLI を使用してキーと値のペアを追加するには、次のコマンドを実行します。プレースホルダー <...> は、前の手順で特定した値に置き換えてください。

az spring app deploy \
    --resource-group <your-resource-group-name> \
    --service <your-Azure-Spring-Apps-name> \
    --name <your-application-name> \
    --artifact-path app.jar \
    --env \
        DT_TENANT=<your-environment-ID> \
        DT_TENANTTOKEN=<your-tenant-token> \
        DT_CONNECTION_POINT=<your-communication-endpoint>

オプション 2: Azure portal

Azure portal を使用してキーと値のペアを追加するには、次の手順に従います。

  1. Azure Spring Apps インスタンスで、ナビゲーション ペインの [アプリ] を選択します。

    Azure Spring Apps インスタンスの [アプリ] ページを示す Azure portal のスクリーンショット。

  2. 一覧からアプリケーションを選択し、ナビゲーション ウィンドウで [構成] を選択します。

  3. [環境変数] タブを使用して、アプリケーションで使用される変数を追加または更新します。

    Azure portal のスクリーンショット。アプリの [構成] ページが表示されており、[環境変数] タブが選択されています。

プロビジョニングを自動化する

Terraform、Bicep、または Azure Resource Manager テンプレート (ARM テンプレート) を使用して、プロビジョニング自動化パイプラインを実行することもできます。 このパイプラインでは、作成およびデプロイする新しいアプリケーションをインストルメント化して監視するための完全なハンズオン エクスペリエンスが提供されます。

Terraform を使用してプロビジョニングを自動化する

Terraform テンプレートで環境変数を構成するには、次のコードをテンプレートに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、Azure Spring Apps のアクティブなデプロイの管理に関するページを参照してください。

environment_variables = {
  "DT_TENANT": "<your-environment-ID>",
  "DT_TENANTTOKEN": "<your-tenant-token>",
  "DT_CONNECTION_POINT": "<your-communication-endpoint>",
  "DT_CLUSTER_ID": "<your-cluster-ID>"
}

Bicep ファイルを使用してプロビジョニングを自動化する

Bicep ファイルで環境変数を構成するには、次のコードをファイルに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、Microsoft.AppPlatform Spring/apps/deployments を参照してください。

environmentVariables: {
  DT_TENANT: '<your-environment-ID>'
  DT_TENANTTOKEN: '<your-tenant-token>'
  DT_CONNECTION_POINT: '<your-communication-endpoint>'
  DT_CLUSTER_ID: '<your-cluster-ID>'
}

ARM テンプレートを使用してプロビジョニングを自動化する

ARM テンプレートで環境変数を構成するには、次のコードをテンプレートに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、Microsoft.AppPlatform Spring/apps/deployments を参照してください。

"environmentVariables": {
  "DT_TENANT": "<your-environment-ID>",
  "DT_TENANTTOKEN": "<your-tenant-token>",
  "DT_CONNECTION_POINT": "<your-communication-endpoint>",
  "DT_CLUSTER_ID": "<your-cluster-ID>"
}

Dynatrace でレポートを表示する

このセクションでは、Dynatrace でさまざまなレポートを見つける方法について説明します。

Note

Dynatrace のメニューとユーザー インターフェイスは徐々に発展しています。 このため、ダッシュボードが Dynatrace Web サイト内の他のセクションに移動され、次のスクリーンショットに現在のバージョンのユーザー インターフェイスが反映されていない場合があります。

環境変数をアプリケーションに追加すると、Dynatrace でデータの収集が開始されます。 レポートを表示するには、Dynatrace メニューを使用して [サービス] に移動し、アプリケーションを選択します。

[サービス フロー]<アプリ名>/[詳細]/[サービス フロー] から見つけることができます。

Dynatrace の [サービス フロー] レポートのスクリーンショット。

[メソッドのホットスポット]<アプリ名>/[詳細]/[メソッドのホットスポット] から見つけることができます。

Dynatrace の [メソッドのホットスポット] レポートのスクリーンショット。

[データベース ステートメント]<アプリ名>/[詳細]/[応答時間分析] から見つけることができます。

Dynatrace の [応答時間分析] レポートと [データベース ステートメント] セクションのスクリーンショット。

次に、[多次元分析] セクションに移動します。

[上位のデータベース ステートメント] は、[多次元分析]/[上位のデータベース ステートメント] から見つけることができます。

Dynatrace の [上位のデータベース ステートメント] レポートのスクリーンショット。

[例外の概要] は、[多次元分析]/[例外の概要] から見つけることができます。

Dynatrace の [例外の概要] レポートのスクリーンショット。

次に、[プロファイルと最適化] セクションに移動します。

[CPU の分析] は、[プロファイルと最適化]/[CPU の分析] から見つけることができます。

Dynatrace の [CPU 分析] レポートのスクリーンショット。

次に、[データベース] セクションに移動します。

[バックトレース] は、[データベース]/[詳細]/[バックトレース] から見つけることができます。

Dynatrace の [バックトレース] レポートのスクリーンショット。

Dynatrace OneAgent のログを見る

Azure Spring Apps では、既定で Dynatrace OneAgent の "情報" レベルのログが STDOUT に出力されます。 このログは、アプリケーション ログと混在しています。 アプリケーション ログから明示的なエージェント バージョンを見つけることができます。

Dynatrace エージェントのログは、次の場所から取得することもできます。

  • Azure Spring Apps ログ
  • Azure Spring Apps Application Insights
  • Azure Spring Apps LogStream

Dynatrace によって提供されるいくつかの環境変数を適用すると、Dynatrace OneAgent のログ記録を構成することができます。 たとえば、DT_LOGLEVELCON によってログのレベルが制御されます。 DT_LOGLEVELCON の既定値は info です。 DT_LOGLEVELCONoff に設定すると、エージェントのログを無効にできます。 ログが無効になっている場合、Dynatrace サポートでは、エージェントの問題を効果的に診断するために最初にログを有効にするように要求します。 その後、変更を有効にするために必要なアプリを再起動する必要があります。 その他のログ レベルについては、Dynatrace サポート チームにお問い合わせください。

注意事項

Dynatrace 用に Azure Spring Apps によって提供されている既定のログの動作をオーバーライドしないことを強くお勧めします。 オーバーライドした場合、上記のログ記録のシナリオがブロックされ、ログ ファイルが失われる可能性があります。 たとえば、DT_LOGLEVELFILE 環境変数をアプリケーションに出力しないでください。

Dynatrace OneAgent のアップグレード

Dynatrace OneAgent の自動アップグレードは無効になり、四半期ごとに JDK を使用してアップグレードされます。 エージェントのアップグレードは、次のシナリオに影響する場合があります。

  • アップグレード前に Dynatrace OneAgent が使用されていた既存のアプリケーションは変更されませんが、新しいバージョンの Dynatrace OneAgent を利用するには再起動または再デプロイが必要です。
  • アップグレード後に作成されたアプリケーションでは、新しいバージョンの Dynatrace OneAgent が使用されます。

仮想ネットワーク インジェクション インスタンスの送信トラフィックの構成

Azure Spring Apps の仮想ネットワーク インジェクション インスタンスの場合、Dynatrace OneAgent に対して Dynatrace 通信エンドポイントの送信トラフィックが正しく構成されていることを確認する必要があります。 communicationEndpoints を取得する方法の詳細については、「Deployment API - OneAgent の接続情報の取得」を参照してください。 詳細については、「仮想ネットワークでの Azure Spring Apps の実行に関するお客様の責任」を参照してください。

Dynatrace サポート モデル

アプリケーション専用モードで Dynatrace OneAgent をデプロイするときの制限事項については、OneAgent のプラットフォームと機能のサポートのマトリックスクラウド アプリケーションのプラットフォームに関するセクションを参照してください。

次のステップ

Azure Spring Apps で Application Insights Java インプロセス エージェントを使用する