Övervaka Spring Boot-appar med Elastic APM Java Agent

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.

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-program med elasticitet.


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. Under distributionen på Elastic Cloud Console väljer du avsnittet APM & Fleet för att hämta elastic APM Server-slutpunkt och hemlig 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 Portal som visar fönstret Ladda upp filer på sidan Filresurs.

  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 etablering

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 etablering 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 etablering 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 väljer sedan 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