Usare l'agente Java In-Process di Application Insights in Azure Spring Apps

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

Con le applicazioni Spring Boot Native Image, usare il progetto di applicazione Java di Spring Boot OpenTelemetry OpenTelemetry in Spring Boot invece dell'agente Java di Application Insights.

Questo articolo si applica a: ✔️ Utilizzo 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 della richiesta.
  • Monitorare le metriche in tempo reale.
  • Controllare gli errori delle richieste.
  • Controllare 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

Uso della funzionalità di 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 applicazioni per visualizzare lo stato delle chiamate tra le applicazioni.

    Screenshot della portale di Azure che mostra la pagina della 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 della 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 Delle metriche attive 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 cloud_RoleNamea .

    Screenshot della 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. Passare al servizio | Pagina panoramica dell'istanza del servizio e 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 della 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 usando il portale di Azure

  1. Selezionare Application Insights.

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

    Screenshot del portale di Azure 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 Unbind binding (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 di associazione unbind.

Modificare l'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 Binding.

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 binding sotto i puntini di sospensione per aprire e modificare le associazioni buildpack di Application Insights.

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

  2. Modificare le impostazioni di associazione e 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 service-instance-name> 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 un stringa di connessione di Application Insights (preferito) 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

Controllare 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 chiave di strumentazione o un stringa di connessione (preferito), 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 app Azure lication Insights con il tipo ApplicationInsights. Per altre informazioni, vedere Come configurare l'integrazione di APM e i certificati della 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 il 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 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/monitoring Impostazioni.

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 Resource Manager, copiare il contenuto seguente in un file di azuredeploy.json . Per altre informazioni, vedere Microsoft.AppPlatform Spring/monitoring Impostazioni.

{
  "$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 SamplingRate al valore 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/ruolo dell'applicazione
* Metriche attive/ruolo
* Errori/Ruoli/Ruolo cloud
* Performance/Roles/Could Role
App Instance * Mapping delle applicazioni/Istanza del ruolo
* Live Metrics/Service Name
* Errori/Ruoli/Istanza cloud
* Prestazioni,ruoli/istanze

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 e 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 Azure Da Azure Spring Apps con l'agente Java abilitato e quindi è 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. Vedi:
    • 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 Azure Da Azure Spring Apps con l'agente Java abilitato e quindi è 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. Vedi:
    • 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