Esercizio - Gestire l'applicazione Spring Boot
Ora che è stata distribuita l'applicazione Spring PetClinic in App Azure Container, è possibile migliorarne le prestazioni abilitando le funzionalità di supporto Java predefinite di Azure, note collettivamente come stack Java. Una di queste funzionalità, le metriche Java, può essere utile per raccogliere e monitorare i dati, tra cui l'utilizzo della memoria, la Garbage Collection e il numero di thread della JVM. Questa unità ti guida attraverso lo stack Java per migliorare la tua applicazione Spring Boot in Azure Container Apps.
Abilitare le funzionalità Java predefinite nelle app Azure Container
Per abilitare le funzionalità Java predefinite nelle app Azure Container, seguire questa procedura:
Aprire il portale di Azure e trovare l'app contenitore distribuita.
Accanto a Stack di sviluppo selezionare Gestisci.
Nel riquadro Stack di sviluppo selezionare Java. In questo modo viene attivato lo stack Java per migliorare le applicazioni Java.
Selezionare Applica per confermare la modifica.
Il campo Stack di sviluppo è ora impostato su Java.
Esplorare le esperienze Java avanzate in Azure
Per visualizzare le metriche per l'applicazione, seguire questa procedura:
Nel portale di Azure, vai a Azure Container Apps e seleziona la tua istanza di container apps.
Passare a Monitoraggio>Metriche.
Viene mostrato un grafico che traccia le metriche monitorate nell'applicazione.
Visualizzare i flussi di log tramite l'interfaccia della riga di comando di Azure
È possibile visualizzare i flussi di log per l'app contenitore nell'interfaccia della riga di comando di Azure usando il az containerapp logs show comando . È possibile visualizzare il flusso di log del sistema di sistema dell'app contenitore usando il az containerapp env logs show comando . Per visualizzare i log all'interno dell'interfaccia della riga di comando di Azure, usare il comando seguente:
az containerapp logs show \
--resource-group petclinic-containerapps \
--name petclinic
Il comando produce l'output seguente:
{"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)"}
Per altre informazioni, vedere Visualizzare i flussi di log in App Azure Container.
Le app contenitore di Azure possono eseguire qualsiasi applicazione Java in contenitori nel cloud offrendo opzioni flessibili per la distribuzione delle applicazioni. Grazie al supporto dello stack Java, è possibile migliorare l'applicazione con adattamento automatico della memoria, opzioni di distribuzione diverse e strumenti di diagnostica Java predefiniti. Per altre informazioni, vedere Panoramica di Java in App Azure Container.