Dela via


Övervaka Spring Boot-appar med Elastic APM Java Agent

Anteckning

Planerna Basic, Standardoch Enterprise gick in i en pensionsperiod den 17 mars 2025. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Planen Standard consumption och den dedikerade gick in i en pensionsperiod den 30 september 2024, med en fullständig avstängning i slutet av mars 2025. För mer information, se Migrera Azure Spring Apps standardförbrukning och dedikerad plan till Azure Container Apps.

Den här artikeln gäller för:✅ Basic/Standard ❎ Enterprise

Den här artikeln beskriver hur du använder Elastic APM-agenten för att övervaka Spring Boot-program som körs i Azure Spring Apps.

Med den elastiska observerbarhetslösningen kan du uppnå enhetlig observerbarhet för att:

I följande video introduceras enhetlig observerbarhet för Spring Boot-applikationer med Elastic.


Förutsättningar

Distribuera Spring Petclinic-programmet

Den här artikeln använder Spring Petclinic-exemplet för att gå igenom de steg som krävs. Använd följande steg för att distribuera exempelprogrammet:

  1. Följ stegen i Distribuera Spring Boot-appar med Azure Spring Apps och MySQL tills du når avsnittet Distribuera Spring Boot-program och ange miljövariabler .

  2. Använd Azure Spring Apps-tillägget för Azure CLI med följande kommando för att skapa ett program som ska köras i Azure Spring Apps:

    az spring app create \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --is-public true
    

Aktivera anpassad beständig lagring för Azure Spring Apps

Använd följande steg för att aktivera anpassad beständig lagring:

  1. Följ stegen i Så här aktiverar du din egen beständiga lagring i Azure Spring Apps.

  2. Använd följande Azure CLI-kommando för att lägga till beständig lagring för dina Azure Spring Apps-appar.

    az spring app append-persistent-storage \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --persistent-storage-type AzureFileVolume \
       --share-name <your-Azure-file-share-name> \
       --mount-path <unique-mount-path> \
       --storage-name <your-mounted-storage-name>
    

Aktivera Elastic APM Java Agent

Innan du fortsätter behöver du din elastic APM-serveranslutningsinformation till hands, vilket förutsätter att du har distribuerat Elastic på Azure. Mer information finns i Distribuera och hantera Elastic på Microsoft Azure. Använd följande steg för att hämta den här informationen:

  1. I Azure Portal går du till sidan Översikt för din elastiska distribution och väljer sedan Hantera elastisk molndistribution.

    Skärmbild av sidan Azure Portal Elasticsearch (Elastic Cloud).

  2. I din distribution på Elastic Cloud Console väljer du avsnittet APM & Fleet för att hämta Elastic APM Server-slutpunkt och hemligt token.

    Skärmbild av sidan Elastic APM & Fleet med kopieringsslutpunkten och APM Server-hemlighetstoken markerade.

  3. Ladda ned Elastic APM Java Agent från Maven Central.

    Skärmbild av Maven Central med jar-nedladdning markerad.

  4. Ladda upp Elastic APM-agenten till den anpassade beständiga lagring som du aktiverade tidigare. Gå till Azure Fileshare och välj Ladda upp för att lägga till AGENT JAR-filen.

    Skärmbild av Azure-portalen som visar fönstret Ladda upp filer på sidan för fildelning.

  5. När du har den elastiska APM-slutpunkten och den hemliga token använder du följande kommando för att aktivera Elastic APM Java-agenten när du distribuerar program. Platshållaren <agent-location> refererar till den monterade lagringsplatsen för Elastic APM Java-agenten.

    az spring app deploy \
        --name <your-app-name> \
        --artifact-path <unique-path-to-your-app-jar-on-custom-storage> \
        --jvm-options='-javaagent:<elastic-agent-location>' \
        --env ELASTIC_APM_SERVICE_NAME=<your-app-name> \
              ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package-name>' \
              ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>' \
              ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
    

Automatisera tilldelning

Du kan också köra en pipeline för etableringsautomatisering med Terraform, Bicep eller en Azure Resource Manager-mall (ARM-mall). Den här pipelinen kan ge en fullständig praktisk upplevelse för att instrumentera och övervaka alla nya program som du skapar och distribuerar.

Automatisera tilldelning med Terraform

Om du vill konfigurera miljövariablerna i en Terraform-mall lägger du till följande kod i mallen och ersätter <...> platshållarna med dina egna värden. Mer information finns i Hantera en aktiv Azure Spring Apps-distribution.

resource "azurerm_spring_cloud_java_deployment" "example" {
  ...
  jvm_options = "-javaagent:<elastic-agent-location>"
  ...
    environment_variables = {
      "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
      "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
      "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
      "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  }
}

Automatisera etablering med hjälp av en Bicep-fil

Om du vill konfigurera miljövariablerna i en Bicep-fil lägger du till följande kod i filen och ersätter <...> platshållarna med dina egna värden. Mer information finns i Microsoft.AppPlatform Spring/apps/deployments.

deploymentSettings: {
  environmentVariables: {
    ELASTIC_APM_SERVICE_NAME='<your-app-name>',
    ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package>',
    ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>',
    ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
  },
  jvmOptions: '-javaagent:<elastic-agent-location>',
  ...
}

Automatisera resurstilldelning med hjälp av en ARM-mall

Om du vill konfigurera miljövariablerna i en ARM-mall lägger du till följande kod i mallen och ersätter <...> platshållarna med dina egna värden. Mer information finns i Microsoft.AppPlatform Spring/apps/deployments.

"deploymentSettings": {
  "environmentVariables": {
    "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
    "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
    "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
    "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  },
  "jvmOptions": "-javaagent:<elastic-agent-location>",
  ...
}

Uppgradera Elastic APM Java Agent

Information om hur du planerar uppgraderingen finns i Uppgradera versioner för Elastic Cloud i Azure och Icke-bakåtkompatibla ändringar för APM. När du har uppgraderat APM Server laddar du upp JAR-filen för Elastic APM Java-agenten i den anpassade beständiga lagringen. Starta sedan om dina appar med de uppdaterade JVM-alternativen som pekar på den uppgraderade Elastic APM Java-agenten JAR.

Övervaka program och mått med Elastic APM

Följ stegen nedan för att övervaka program och mått:

  1. I Azure Portal går du till sidan Översikt för din elastiska distribution och väljer sedan länken Kibana.

    Skärmbild av Azure Portal som visar sidan Elasticsearch med länken Distributions-URL Kibana markerad.

  2. När Kibana är öppen söker du efter APM i sökfältet och sedan väljer du APM.

    Skärmbild av Elastic/Kibana som visar APM-sökresultatet.

Kibana APM är det kuraterade programmet som stöder arbetsflöden för programövervakning. Här kan du visa information på hög nivå, till exempel tider för begäran/svar, dataflöde och transaktioner i en tjänst med störst inverkan på varaktigheten.

Skärmbild av Elastic/Kibana som visar sidan Översikt över APM-tjänster.

Du kan öka detaljnivån i en specifik transaktion för att förstå transaktionsspecifik information, till exempel distribuerad spårning.

Skärmbild av Elastic/Kibana som visar sidan APM Services-transaktioner.

Elastic APM Java-agenten samlar också in JVM-mått från Azure Spring Apps-appar som är tillgängliga med Kibana App för användare för felsökning.

Skärmbild av Elastic/Kibana som visar sidan APM Services JVM.

Med den inbyggda AI-motorn i den elastiska lösningen kan du även aktivera avvikelseidentifiering i Azure Spring Apps-tjänsterna och välja en lämplig åtgärd, till exempel Teams-meddelande, skapande av ett JIRA-problem, ett webhookbaserat API-anrop och andra.

Skärmbild av Elastic/Kibana som visar sidan APM-tjänster med fönstret Skapa regel som visar och Åtgärder markerade.

Nästa steg