Dela via


Använda Application Insights Java In-Process Agent i Azure Spring Apps

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

Med Spring Boot Native Image-program använder du Azure Monitor OpenTelemetry Distro/Application Insights i Det inbyggda Java-avbildningsprojektet för Spring Boot i stället för Application Insights Java-agenten.

Den här artikeln gäller för: ✔️ Standardförbrukning och dedikerad (förhandsversion) ✔️ Basic/Standard ✔️ Enterprise

Den här artikeln beskriver hur du övervakar program med hjälp av Application Insights Java-agenten i Azure Spring Apps.

Med den här funktionen kan du:

  • Sök efter spårningsdata med olika filter.
  • Visa en beroendekarta över Spring-program.
  • Kontrollera prestanda för begäranden.
  • Övervaka realtidsstatistik i realtid.
  • Kontrollera fel i begäran.
  • Kontrollera programmått.
  • Kontrollera programloggarna.

Application Insights kan ge många observerbara perspektiv, inklusive:

  • Programkarta
  • Prestanda
  • Fel
  • Mått
  • Live Metrics
  • Tillgänglighet
  • Loggar

Använda Application Insights-funktionen

När Application Insights-funktionen är aktiverad kan du:

  • I navigeringsfönstret väljer du Application Insights för att visa översiktssidan för Application Insights. På sidan Översikt visas en översikt över alla program som körs.

  • Välj Programkarta för att se status för anrop mellan program.

    Skärmbild av Azure Portal som visar programkartan för Application Insights.

  • Välj länken mellan customers-service och petclinic för att se mer information, till exempel en fråga från SQL.

  • Välj en slutpunkt för att se alla program som gör begäranden till slutpunkten.

  • I navigeringsfönstret väljer du Prestanda för att se prestandadata för alla programåtgärder, beroenden och roller.

    Skärmbild av Azure Portal som visar sidan Application Insights-prestanda.

  • I navigeringsfönstret väljer du Fel för att se oväntade fel eller undantag från dina program.

    Skärmbild av Azure Portal som visar sidan Application Insights-fel.

  • I navigeringsfönstret väljer du Mått och väljer namnområdet för att se både Spring Boot-mått och anpassade mått, om det finns några.

    Skärmbild av Azure Portal som visar sidan Application Insights-mått.

  • I navigeringsfönstret väljer du Live Metrics för att se realtidsmått för olika dimensioner.

    Skärmbild av Azure Portal som visar sidan Application Insights Live Metrics.

  • I navigeringsfönstret väljer du Tillgänglighet för att övervaka tillgängligheten och svarstiden för webbappar genom att skapa tillgänglighetstester i Application Insights.

    Skärmbild av Azure Portal som visar sidan Application Insights-tillgänglighet.

  • I navigeringsfönstret väljer du Loggar för att visa alla programloggar eller ett programs loggar när du filtrerar efter cloud_RoleName.

    Skärmbild av Azure Portal som visar sidan Application Insights-loggar.

Hantera Application Insights med hjälp av Azure Portal

Aktivera Java In-Process Agent med hjälp av följande procedur.

  1. Gå till tjänsten | Översiktssida för tjänstinstansen och välj sedan Application Insights i avsnittet Övervakning .

  2. Välj Aktivera Application Insights för att aktivera Application Insights i Azure Spring Apps.

  3. Välj en befintlig instans av Application Insights eller skapa en ny.

  4. När Application Insights är aktiverat kan du konfigurera en valfri samplingsfrekvens (standardvärdet 10,0 %).

    Skärmbild av Azure Portal som visar application insights-sidan för Azure Spring Apps med kryssrutan Aktivera Application Insights markerad.

  5. Spara ändringarna genom att klicka på Spara.

Kommentar

Använd inte samma Application Insights-instans i olika Azure Spring Apps-instanser, eller så visas blandade data.

Du kan använda portalen för att kontrollera eller uppdatera de aktuella inställningarna i Application Insights.

Aktivera Application Insights med hjälp av Azure Portal

  1. Välj Application Insights.

  2. Aktivera Application Insights genom att välja Redigera bindning eller hyperlänken Obundet.

    Skärmbild av Azure Portal som visar Azure Spring Apps-instansen med sidan Application Insights och alternativet Redigera bindning.

  3. Redigera Application Insights eller Samplingsfrekvens och välj sedan Spara.

Inaktivera Application Insights

  1. Välj Application Insights.

  2. Välj Ta bort bindning för att inaktivera Application Insights.

    Skärmbild av Azure Portal som visar Azure Spring Apps-instansen med sidan Application Insights och alternativet Bindning utan bindning.

Ändra Application Insights-inställningar

Välj namnet under kolumnen Application Insights för att öppna avsnittet Application Insights.

Skärmbild av Azure Portal som visar Azure Spring Apps-instansen med sidan Application Insights.

Redigera Application Insights buildpack-bindningar i Build Service

Följ dessa steg för att kontrollera och uppdatera de aktuella inställningarna för Application Insights buildpack-bindningar i Build Service:

  1. Välj Byggtjänst.
  2. Välj din byggare.
  3. Välj Redigera under kolumnen Bindningar.

Application Insights-inställningar finns i applicationinsights-objektet som visas under kolumnen Bindningstyp.

  1. Välj den bundna hyperlänken eller välj Redigera bindning under ellipsen för att öppna och redigera Application Insights buildpack-bindningar.

    Skärmbild av Azure Portal som visar fönstret Redigera bindningar för standardverktyget.

  2. Redigera bindningsinställningarna och välj sedan Spara.

    Skärmbild av Azure Portal som visar fönstret Redigera bindning.

Hantera Application Insights med Hjälp av Azure CLI

Du kan hantera Application Insights med hjälp av Azure CLI-kommandon. I följande kommandon måste du ersätta platshållartexten ><med de värden som beskrivs. Platshållaren <för tjänstinstansnamn> refererar till namnet på din Azure Spring Apps-instans.

Aktivera Application Insights

Använd följande kommando för att konfigurera Application Insights när du skapar en Azure Spring Apps-instans. app-insights För argumentet kan du ange ett Application Insights-namn eller resurs-ID.

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

Du kan också använda en Application Insights-anslutningssträng (önskad) eller instrumentationsnyckel, som du ser i följande exempel.

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

Inaktivera Application Insights

Om du vill inaktivera Application Insights när du skapar en Azure Spring Apps-instans använder du följande kommando:

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

Kontrollera Application Insights-inställningarna

Om du vill kontrollera Application Insights-inställningarna för en befintlig Azure Spring Apps-instans använder du följande kommando:

az spring app-insights show \
    --resource-group <resource-group-name> \
    --name <service-instance-name>

Uppdatera Application Insights

Om du vill uppdatera Application Insights till att använda en anslutningssträng (önskad) eller instrumentationsnyckel använder du följande kommando:

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>

Om du vill uppdatera Application Insights för att använda resursnamnet eller ID:t använder du följande kommando:

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights <name-or-resource-ID> \
    --sampling-rate <sampling-rate>

Inaktivera Application Insights med uppdateringskommandot

Om du vill inaktivera Application Insights på en befintlig Azure Spring Apps-instans använder du följande kommando:

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --disable

Hantera Application Insights buildpack-bindningar

Det här avsnittet gäller endast enterprise-planen och innehåller instruktioner som kompletterar föregående avsnitt.

Azure Spring Apps Enterprise-planen använder buildpack-bindningar för att integrera Azure Application Insights med typen ApplicationInsights. Mer information finns i Konfigurera APM-integrering och CA-certifikat.

Om du vill skapa en Application Insights buildpack-bindning använder du följande kommando:

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>

Om du vill visa en lista över alla buildpack-bindningar och hitta Application Insights-bindningar av typen ApplicationInsightsanvänder du följande kommando:

az spring build-service builder buildpack-binding list \
    --resource-group <your-resource-group-name> \
    --service <your-service-resource-name> \
    --builder-name <your-builder-name>

Om du vill ersätta en Application Insights buildpack-bindning använder du följande kommando:

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>

Använd följande kommando för att hämta en Application Insights buildpack-bindning:

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>

Om du vill ta bort en Application Insights buildpack-bindning använder du följande kommando:

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>

Automation

I följande avsnitt beskrivs hur du automatiserar distributionen med hjälp av Bicep, Azure Resource Manager-mallar (ARM-mallar) eller Terraform.

Bicep

Om du vill distribuera med en Bicep-fil kopierar du följande innehåll till en main.bicep-fil . Mer information finns i 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
  }
}

ARM-mallar

Om du vill distribuera med hjälp av en ARM-mall kopierar du följande innehåll till en azuredeploy.json fil. Mer information finns i 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

Använd följande mall för en Terraform-distribution. Mer information finns i 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"
  }
}

Automation i Enterprise-planen väntar på support. Dokumentationen läggs till så snart den är tillgänglig.

Uppdatering/uppgradering av Java-agent

Java-agenten uppdateras/uppgraderas regelbundet med JDK:t, vilket kan påverka följande scenarier.

Kommentar

JDK-versionen uppdateras/uppgraderas kvartalsvis per år.

  • Befintliga program som använder Java-agenten innan de uppdaterar/uppgraderar påverkas inte.
  • Program som skapats efter uppdatering/uppgradering använder den nya versionen av Java-agenten.
  • Befintliga program som inte tidigare använde Java-agenten kräver omstart eller omdistribution för att använda den nya versionen av Java-agenten.

Java-agenten uppdateras/uppgraderas när buildpack uppdateras.

Frekvent inläsning av Java-agentkonfiguration

Azure Spring Apps har en mekanism för snabb inläsning för att justera inställningarna för agentkonfigurationen utan omstart av program.

Kommentar

Mekanismen för frekvent inläsning har en fördröjning i minuter.

  • Om Java-agenten redan är aktiverad kräver ändringar i Application Insights-instansen eller SamplingRate värdet inte att programmet startas om.

  • Om du aktiverar Java-agenten måste du starta om program.

  • När du inaktiverar Java-agenten slutar program att skicka alla övervakningsdata efter en fördröjning på några minuter. Du kan starta om program för att ta bort agenten från Java-körningsmiljön.

Konceptmatchning mellan Azure Spring Apps och Application Insights

Azure Spring Apps Programinsikter
App * Programkarta/roll
* Live-mått/roll
* Fel/roller/molnroll
* Prestanda/roller/kan roll
App Instance * Programkarta/rollinstans
* Live-mått/tjänstnamn
* Fel/roller/molninstans
* Prestanda/roller/kan instans

Namnet App Instance från Azure Spring Apps ändras eller genereras i följande scenarier:

  • Du skapar ett nytt program.
  • Du distribuerar en JAR-fil eller källkod till ett befintligt program.
  • Du initierar en blå/grön distribution.
  • Du startar om programmet.
  • Du stoppar distributionen av ett program och startar sedan om det.

När data lagras i Application Insights innehåller den historiken för Azure Spring Apps-appinstanser som skapats eller distribuerats sedan Java-agenten aktiverades. I Application Insights-portalen kan du till exempel se programdata som skapades i går, men sedan tas bort inom ett visst tidsintervall, till exempel de senaste 24 timmarna. Följande scenarier visar hur detta fungerar:

  • Du skapade ett program runt 08:00 idag från Azure Spring Apps med Java-agenten aktiverad, och sedan distribuerade du en JAR-fil till det här programmet runt 08:10 idag. Efter några tester ändrar du koden och distribuerar en ny JAR-fil till det här programmet kl. 08:30 idag. Sedan tar du en paus och när du kommer tillbaka runt 11:00 kontrollerar du vissa data från Application Insights. Du ser:
    • Tre instanser i programkartan med tidsintervall under de senaste 24 timmarna och fel, prestanda och mått.
    • En instans i Programkarta med ett tidsintervall under den senaste timmen och Fel, Prestanda och Mått.
    • En instans i Live Metrics.
  • Du skapade ett program runt 08:00 idag från Azure Spring Apps med Java-agenten aktiverad, och sedan distribuerade du en JAR-fil till det här programmet runt 08:10 idag. Runt 08:30 i dag provar du en blå/grön distribution med en annan JAR-fil. För närvarande har du två distributioner för det här programmet. Efter en paus runt 11:00 idag vill du kontrollera vissa data från Application Insights. Du ser:
    • Tre instanser i programkartan med tidsintervall under de senaste 24 timmarna och fel, prestanda och mått.
    • Två instanser i programkartan med tidsintervall under den senaste timmen och fel, prestanda och mått.
    • Två instanser i Live Metrics.

Nästa steg