Condividi tramite


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.

    Screenshot del portale di Azure che mostra la pagina Mappa delle applicazioni di Application Insights.

  • 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.

    Screenshot del portale di Azure che mostra la pagina Prestazioni di Application Insights.

  • Nel riquadro di spostamento selezionare Errori per visualizzare eventuali errori imprevisti o eccezioni dalle applicazioni.

    Screenshot del portale di Azure che mostra la pagina Errori di Application Insights.

  • 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.

    Screenshot del portale di Azure che mostra la pagina Metriche di Application Insights.

  • Nel riquadro di spostamento selezionare Metriche attive per visualizzare le metriche in tempo reale per dimensioni diverse.

    Screenshot del portale di Azure che mostra la pagina Metriche live di Application Insights.

  • 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.

    Screenshot del portale di Azure che mostra la pagina Disponibilità di 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.

    Screenshot del portale di Azure che mostra la pagina Log di Application Insights.

Gestire Application Insights usando il portale di Azure

Abilitare l'agente In-Process Java usando la procedura seguente.

  1. Andare alla pagina servizio | Panoramica dell'istanza del servizio quindi selezionare Application Insights nella sezione Monitoraggio.

  2. Selezionare Abilita Application Insights per abilitare Application Insights in Azure Spring Apps.

  3. Selezionare un'istanza esistente di Application Insights o crearne una nuova.

  4. Quando Application Insights è abilitato, è possibile configurare una frequenza di campionamento facoltativa (10,0%).

    Screenshot del portale di Azure che mostra la pagina Application Insights per Azure Spring Apps con la casella di controllo Abilita Application Insights evidenziata.

  5. 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

  1. Selezionare Application Insights.

  2. Abilitare Application Insights selezionando Modifica associazione o il collegamento ipertestuale Non associato.

    Screenshot del portale di Azure che mostra l'istanza di Azure Spring Apps con la pagina Application Insights e l'opzione

  3. Modificare Application Insights o Frequenza di campionamento, quindi selezionare Salva.

Disabilitare Application Insights

  1. Selezionare Application Insights.

  2. Selezionare Annulla associazione per disabilitare Application Insights.

    Screenshot del portale di Azure che mostra l'istanza di Azure Spring Apps con la pagina Application Insights e l'opzione Annulla associazione.

Modificare le impostazioni di Application Insights

Selezionare il nome nella colonna Application Insights per aprire la sezione Application Insights.

Screenshot del portale di Azure che mostra l'istanza di Azure Spring Apps con la pagina 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:

  1. Selezionare Compila servizio.
  2. Scegliere il generatore.
  3. Selezionare Modifica nella colonna Associazioni.

Le impostazioni di Application Insights sono disponibili nell'elemento ApplicationInsights elencato nella colonna Tipo di associazione.

  1. Selezionare il collegamento ipertestuale Associato, oppure selezionare Modifica associazione sotto i puntini di sospensione per aprire e modificare le associazioni buildpack di Application Insights.

    Screenshot del portale di Azure che mostra il riquadro Modifica associazioni per il generatore predefinito.

  2. Modificare le impostazioni di associazione quindi selezionare Salva.

    Screenshot del portale di Azure che mostra il riquadro Modifica associazione.

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.

Passaggi successivi