Usare l'agente Java In-Process di Application Insights in Azure Spring Apps
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Con le applicazioni Spring Boot Native Image, usare il progetto di OpenTelemetry Distro / Application Insights di Monitoraggio di Azure nell'applicazione Java con immagine nativa di Spring Boot invece dell'agente Java di Application Insights.
Questo articolo si applica a: ✔️ Consumo standard e dedicato (anteprima) ✔️ Basic/Standard ✔️ Enterprise
Questo articolo illustra come monitorare le applicazioni usando l'agente Java di Application Insights in Azure Spring Apps.
Questa funzionalità ti permette di:
- Eseguire ricerche nei dati di traccia con filtri diversi.
- Visualizzare una mappa delle dipendenze delle applicazioni Spring.
- Controllare le prestazioni delle richieste.
- Monitorare le metriche in tempo reale.
- Controllare gli errori delle richieste.
- Verificare le metriche dell'applicazione.
- Controllare i log dell'applicazione.
Application Insights può offrire molte prospettive osservabili, tra cui:
- Mappa delle applicazioni
- Prestazioni
- Errori
- Metrica
- Metriche attive
- Disponibilità
- Registri
Utilizzo del portale funzionalità Application Insights
Quando la funzionalità di Application Insights è abilitata, è possibile:
Nel riquadro di spostamento selezionare Application Insights per visualizzare la pagina Panoramica di Application Insights. La pagina Panoramica mostra una panoramica di tutte le applicazioni in esecuzione.
Selezionare Mappa delle applicazioni per visualizzare lo stato delle chiamate tra le applicazioni.
Selezionare il collegamento tra il servizio clienti e
petclinic
per visualizzare altri dettagli, ad esempio una query da SQL.Selezionare un endpoint per visualizzare tutte le applicazioni che effettuano richieste all'endpoint.
Nel riquadro di spostamento selezionare Prestazioni per visualizzare i dati sulle prestazioni di tutte le operazioni, le dipendenze e i ruoli di tutte le applicazioni.
Nel riquadro di spostamento selezionare Errori per visualizzare eventuali errori imprevisti o eccezioni dalle applicazioni.
Nel riquadro di spostamento selezionare Metriche e selezionare lo spazio dei nomi per visualizzare sia le metriche Spring Boot che le metriche personalizzate, se presenti.
Nel riquadro di spostamento selezionare Metriche attive per visualizzare le metriche in tempo reale per dimensioni diverse.
Nel riquadro di spostamento selezionare Disponibilità per monitorare la disponibilità e la velocità di risposta delle app Web creando test di disponibilità in Application Insights.
Nel riquadro di spostamento selezionare Log per visualizzare tutti i log delle applicazioni o i log di un'applicazione durante il filtro in base a
cloud_RoleName
.
Gestire Application Insights usando il portale di Azure
Abilitare l'agente In-Process Java usando la procedura seguente.
Andare alla pagina servizio | Panoramica dell'istanza del servizio quindi selezionare Application Insights nella sezione Monitoraggio.
Selezionare Abilita Application Insights per abilitare Application Insights in Azure Spring Apps.
Selezionare un'istanza esistente di Application Insights o crearne una nuova.
Quando Application Insights è abilitato, è possibile configurare una frequenza di campionamento facoltativa (10,0%).
Selezionare Salva per salvare le modifiche.
Nota
Non usare la stessa istanza di Application Insights in istanze di Azure Spring Apps diverse o vengono visualizzati dati misti.
È possibile usare il portale per controllare o aggiornare le impostazioni correnti in Application Insights.
Abilitare Application Insights tramite il portale di Azure
Selezionare Application Insights.
Abilitare Application Insights selezionando Modifica associazione o il collegamento ipertestuale Non associato.
Modificare Application Insights o Frequenza di campionamento, quindi selezionare Salva.
Disabilitare Application Insights
Selezionare Application Insights.
Selezionare Annulla associazione per disabilitare Application Insights.
Modificare le impostazioni di Application Insights
Selezionare il nome nella colonna Application Insights per aprire la sezione Application Insights.
Modificare le associazioni buildpack di Application Insights nel servizio di compilazione
Per controllare e aggiornare le impostazioni correnti per le associazioni buildpack di Application Insights nel servizio di compilazione, seguire questa procedura:
- Selezionare Compila servizio.
- Scegliere il generatore.
- Selezionare Modifica nella colonna Associazioni.
Le impostazioni di Application Insights sono disponibili nell'elemento ApplicationInsights elencato nella colonna Tipo di associazione.
Selezionare il collegamento ipertestuale Associato, oppure selezionare Modifica associazione sotto i puntini di sospensione per aprire e modificare le associazioni buildpack di Application Insights.
Modificare le impostazioni di associazione quindi selezionare Salva.
Gestire Application Insights con l'interfaccia della riga di comando di Azure
È possibile gestire Application Insights usando i comandi dell'interfaccia della riga di comando di Azure. Nei comandi seguenti assicurarsi di sostituire il testo <segnaposto> con i valori descritti. Il segnaposto <servizio-istanza-nome> fa riferimento al nome dell'istanza di Azure Spring Apps.
Abilita Application Insights
Per configurare Application Insights durante la creazione di un'istanza di Azure Spring Apps, usare il comando seguente. Per l'argomento app-insights
è possibile specificare un nome o un ID risorsa di Application Insights.
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate> \
--sku Enterprise
È anche possibile usare una stringa di connessione di Application Insights (preferita) o una chiave di strumentazione, come illustrato nell'esempio seguente.
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Disabilitare Application Insights
Per disabilitare Application Insights durante la creazione di un'istanza di Azure Spring Apps, usare il comando seguente:
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights \
--sku Enterprise
Verificare le impostazioni di Application Insights
Per controllare le impostazioni di Application Insights di un'istanza di Azure Spring Apps esistente, usare il comando seguente:
az spring app-insights show \
--resource-group <resource-group-name> \
--name <service-instance-name>
Aggiornare Application Insights
Per aggiornare Application Insights per usare una stringa di connessione (preferita) o una chiave di strumentazione, usare il comando seguente:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
Per aggiornare Application Insights per usare il nome o l'ID della risorsa, usare il comando seguente:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
Disabilitare Application Insights con il comando di aggiornamento
Per disabilitare Application Insights in un'istanza di Azure Spring Apps esistente, usare il comando seguente:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable
Gestire le associazioni buildpack di Application Insights
Questa sezione si applica solo al piano Enterprise e fornisce istruzioni che integrano la sezione precedente.
Il piano Enterprise di Azure Spring Apps usa associazioni buildpack per integrare Azure Application Insights con il tipo ApplicationInsights
. Per altre informazioni, vedere Come configurare l'integrazione di APM e i certificati CA.
Per creare un'associazione buildpack di Application Insights, usare il comando seguente:
az spring build-service builder buildpack-binding create \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Per elencare tutte le associazioni buildpack e trovare associazioni di Application Insights del tipo ApplicationInsights
, usare il comando seguente:
az spring build-service builder buildpack-binding list \
--resource-group <your-resource-group-name> \
--service <your-service-resource-name> \
--builder-name <your-builder-name>
Per sostituire un'associazione buildpack di Application Insights, usare il comando seguente:
az spring build-service builder buildpack-binding set \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Per ottenere un'associazione buildpack di Application Insights, usare il comando seguente:
az spring build-service builder buildpack-binding show \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Per eliminare un'associazione buildpack di Application Insights, usare il comando seguente:
az spring build-service builder buildpack-binding delete \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Automazione
Le sezioni seguenti descrivono come automatizzare la distribuzione usando Bicep, i modelli di Azure Resource Manager (modelli di ARM) o Terraform.
Bicep
Per eseguire la distribuzione usando un file Bicep, copiare il contenuto seguente in un file main.bicep. Per altre informazioni, vedere Microsoft.AppPlatform Spring/monitoringSettings.
param springName string
param location string = resourceGroup().location
resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
name: springName
location: location
properties: {}
}
resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
parent: spring
name: 'default'
properties: {
appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
appInsightsSamplingRate: 88
}
}
Modelli di Gestione risorse di Azure
Per eseguire la distribuzione usando un modello di ARM, copiare il contenuto seguente in un file azuredeploy.json. Per altre informazioni, vedere Microsoft.AppPlatform Spring/monitoringSettings.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"springName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"apiVersion": "2020-07-01",
"name": "[parameters('springName')]",
"location": "[parameters('location')]",
"properties": {}
},
{
"type": "Microsoft.AppPlatform/Spring/monitoringSettings",
"apiVersion": "2020-11-01-preview",
"name": "[format('{0}/{1}', parameters('springName'), 'default')]",
"properties": {
"appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
"appInsightsSamplingRate": 88
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
]
}
]
}
Terraform
Per una distribuzione Terraform, usare il modello seguente. Per altre informazioni, vedere azurerm_spring_cloud_service.
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_application_insights" "example" {
name = "tf-test-appinsights"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
application_type = "web"
}
resource "azurerm_spring_cloud_service" "example" {
name = "example-springcloud"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku_name = "S0"
config_server_git_setting {
uri = "https://github.com/Azure-Samples/piggymetrics"
label = "config"
search_paths = ["dir1", "dir2"]
}
trace {
connection_string = azurerm_application_insights.example.connection_string
sample_rate = 10.0
}
tags = {
Env = "staging"
}
}
L'automazione nel piano Enterprise è in sospeso. La documentazione viene aggiunta non appena è disponibile.
Aggiornamento/aggiornamento dell'agente Java
L'agente Java viene aggiornato/aggiornato regolarmente con JDK, che può influire sugli scenari seguenti.
Nota
La versione di JDK viene aggiornata/aggiornata ogni anno.
- Le applicazioni esistenti che usano l'agente Java prima dell'aggiornamento o dell'aggiornamento non sono interessate.
- Le applicazioni create dopo l'aggiornamento/aggiornamento usano la nuova versione dell'agente Java.
- Le applicazioni esistenti che in precedenza non usano l'agente Java richiedono il riavvio o la ridistribuzione per usare la nuova versione dell'agente Java.
L'agente Java viene aggiornato/aggiornato quando viene aggiornato il pacchetto di compilazione.
Caricamento rapido della configurazione dell'agente Java
Azure Spring Apps include un meccanismo di caricamento frequente per modificare le impostazioni della configurazione dell'agente senza riavviare le applicazioni.
Nota
Il meccanismo di caricamento ad accesso frequente ha un ritardo in minuti.
Se l'agente Java è già abilitato, le modifiche apportate all'istanza o al valore
SamplingRate
di Application Insights non richiedono il riavvio dell'applicazione.Se si abilita l'agente Java, è necessario riavviare le applicazioni.
Quando si disabilita l'agente Java, le applicazioni arresteranno l'invio di tutti i dati di monitoraggio dopo un ritardo in minuti. È possibile riavviare le applicazioni per rimuovere l'agente dall'ambiente di runtime Java.
Corrispondenza dei concetti tra Azure Spring Apps e Application Insights
Azure Spring Apps | Application Insights |
---|---|
App |
* Mappa delle applicazioni/Ruolo * Metriche attive/Ruolo * Errori/Ruoli/Ruolo cloud * Prestazioni/Ruoli/Ruolo cloud |
App Instance |
* Mapping delle applicazioni/Istanza del ruolo * Metriche attive/Nome servizio * Errori/Ruoli/Istanza cloud * PrestazioniRuoli/Istanza cloud |
Il nome App Instance
di Azure Spring Apps viene modificato o generato negli scenari seguenti:
- Si crea una nuova applicazione.
- Si distribuisce un file JAR o un codice sorgente in un'applicazione esistente.
- Si avvia una distribuzione blu/verde.
- Riavviare l'applicazione.
- Arrestare la distribuzione di un'applicazione quindi riavviarla.
Quando i dati vengono archiviati in Application Insights, contiene la cronologia delle istanze dell'app Azure Spring Apps create o distribuite dopo l'abilitazione dell'agente Java. Ad esempio, nel portale di Application Insights è possibile visualizzare i dati dell'applicazione creati ieri, ma eliminati entro un intervallo di tempo specifico, ad esempio le ultime 24 ore. Gli scenari seguenti illustrano come funziona:
- È stata creata un'applicazione intorno alle 8:00 di oggi da Azure Spring Apps con l'agente Java abilitato e successivamente è stato distribuito un file JAR in questa applicazione intorno alle 8:10 di oggi. Dopo alcuni test, si modifica il codice e si distribuisce un nuovo file JAR in questa applicazione alle 8:30 di oggi. Quindi, si prende una pausa e quando si torna alle 11:00, si controllano alcuni dati da Application Insights. Verranno visualizzati:
- Tre istanze nella mappa delle applicazioni con intervalli di tempo nelle ultime 24 ore e errori, prestazioni e metriche.
- Un'istanza nella mappa delle applicazioni con un intervallo di tempo nell'ultima ora, errori, prestazioni e metriche.
- Un'istanza in Metriche attive.
- È stata creata un'applicazione intorno alle 8:00 di oggi da Azure Spring Apps con l'agente Java abilitato e successivamente è stato distribuito un file JAR in questa applicazione intorno alle 8:10 di oggi. Circa le 8:30 di oggi, si prova una distribuzione blu/verde con un altro file JAR. Attualmente sono disponibili due distribuzioni per questa applicazione. Dopo un'interruzione intorno alle 11:00 di oggi, si vogliono controllare alcuni dati da Application Insights. Verranno visualizzati:
- Tre istanze nella mappa delle applicazioni con intervalli di tempo nelle ultime 24 ore e errori, prestazioni e metriche.
- Due istanze nella mappa delle applicazioni con intervalli di tempo nell'ultima ora e errori, prestazioni e metriche.
- Due istanze nelle metriche attive.