演習 - Spring Boot アプリケーションを維持する

完了

Azure Container Apps に Spring PetClinic アプリケーションをデプロイしたので、Azure の組み込みの Java サポート機能 (まとめて Java スタックと呼ばれます) を有効にすることで、パフォーマンスを向上させることができます。 これらの機能の 1 つである Java メトリックは、JVM のメモリ使用量、ガベージ コレクション、スレッド数など、データの収集と監視に役立ちます。 このユニットでは、Java スタックを使用して、Azure Container Apps 上の Spring Boot アプリケーションを強化します。

Azure Container Apps で組み込みの Java 機能を有効にする

Azure Container Apps で組み込みの Java 機能を有効にするには、次の手順に従います。

  1. Azure portal を開き、デプロイされたコンテナー アプリを見つけます。

  2. 開発スタックの横にある [管理] を選択します。

  3. [開発スタック] ウィンドウで、[Java] を選択します。 これにより、Java スタックがオンになり、Java アプリケーションが強化されます。

    [開発スタック] ウィンドウを示す Azure portal のスクリーンショット。

  4. [ 適用] を選択して変更を確定します。

    [開発スタック] フィールドが Java に設定されました。

    Java 値が強調表示された [開発スタック] フィールドを示す Azure portal のスクリーンショット。

Azure で強化された Java エクスペリエンスを確認する

アプリケーションのメトリックを表示するには、次の手順に従います。

  1. Azure portal で、 Azure Container Apps に移動し、コンテナー アプリ インスタンスを選択します。

  2. [監視]>[メトリック] に移動します。

  3. アプリケーションで追跡しているメトリックをプロットするグラフが表示されます。

    メトリック メニューが開き、Java メトリックが選択されているメトリック グラフを示す Azure portal のスクリーンショット。

Azure CLI 経由でログ ストリームを表示する

az containerapp logs show コマンドを使用して、Azure CLI でコンテナー アプリのログ ストリームを表示できます。 az containerapp env logs show コマンドを使用して、コンテナー アプリの環境システム ログ ストリームを表示できます。 Azure CLI 内でログを表示するには、次のコマンドを使用します。

az containerapp logs show \
    --resource-group petclinic-containerapps \
    --name petclinic

このコマンドにより、次の出力が生成されます。

{"TimeStamp": "2024-12-13T08:16:41.11806", "Log": "Connecting to the container 'petclinic'..."}
{"TimeStamp": "2024-12-13T08:16:41.20563", "Log": "Successfully Connected to container: 'petclinic' [Revision: 'petclinic--kx4kswa-7988849646-554xk', Replica: 'petclinic--kx4kswa']"}
{"TimeStamp": "2024-12-13T08:16:11.328+00:00", "Log": "INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]"}
{"TimeStamp": "2024-12-13T08:16:11.329+00:00", "Log": "INFO 1 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.30]"}
{"TimeStamp": "2024-12-13T08:16:11.373+00:00", "Log": "INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext"}
{"TimeStamp": "2024-12-13T08:16:11.375+00:00", "Log": "INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2313 ms"}
{"TimeStamp": "2024-12-13T08:16:11.695+00:00", "Log": "INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting..."}
{"TimeStamp": "2024-12-13T08:16:11.976+00:00", "Log": "INFO 1 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:98e8760a-b48e-414c-8117-520195a6d22f user=SA"}
{"TimeStamp": "2024-12-13T08:16:11.978+00:00", "Log": "INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed."}
{"TimeStamp": "2024-12-13T08:16:12.187+00:00", "Log": "INFO 1 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]"}
{"TimeStamp": "2024-12-13T08:16:12.283+00:00", "Log": "INFO 1 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.5.3.Final"}
{"TimeStamp": "2024-12-13T08:16:12.325+00:00", "Log": "INFO 1 --- [           main] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled"}
{"TimeStamp": "2024-12-13T08:16:12.681+00:00", "Log": "INFO 1 --- [           main] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer"}
{"TimeStamp": "2024-12-13T08:16:13.722+00:00", "Log": "INFO 1 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)"}

詳細については、「 Azure Container Apps でのログ ストリームの表示」を参照してください。

Azure Container Apps では、コンテナー化された Java アプリケーションをクラウドで実行しながら、アプリケーションのデプロイ方法に関する柔軟なオプションを提供できます。 Java スタックのサポートにより、自動メモリ調整、さまざまなデプロイ オプション、および組み込みの Java 診断ツールを使用してアプリケーションを強化できます。 詳細については、「Azure Container Apps 上の Java の概要」を参照してください。