Sdílet prostřednictvím


Monitorování aplikací Spring Boot pomocí agenta Elastic APM Java

Poznámka:

Azure Spring Apps je nový název služby Azure Spring Cloud. Přestože má služba nový název, na některých místech uvidíte starý název, protože pracujeme na aktualizaci prostředků, jako jsou snímky obrazovky, videa a diagramy.

Tento článek se vztahuje na: ✔️ Basic/Standard ❌ Enterprise

Tento článek vysvětluje, jak pomocí agenta Elastic APM monitorovat aplikace Spring Boot spuštěné v Azure Spring Apps.

S řešením elastické pozorovatelnosti můžete dosáhnout jednotné pozorovatelnosti pro:

Následující video představuje jednotnou pozorovatelnost pro aplikace Spring Boot využívající Elastic.


Požadavky

Nasazení aplikace Spring Petclinic

Tento článek používá ukázku Spring Petclinic k procházení požadovaných kroků. K nasazení ukázkové aplikace použijte následující postup:

  1. Postupujte podle kroků v tématu Nasazení aplikací Spring Boot pomocí Azure Spring Apps a MySQL , dokud se nedostanete do části Nasazení aplikací Spring Boot a nenastavíte proměnné prostředí.

  2. Pomocí rozšíření Azure Spring Apps pro Azure CLI vytvořte aplikaci pro spuštění v Azure Spring Apps pomocí následujícího příkazu:

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

Povolení vlastního trvalého úložiště pro Azure Spring Apps

Pomocí následujících kroků povolte vlastní trvalé úložiště:

  1. Postupujte podle kroků v tématu Povolení vlastního trvalého úložiště v Azure Spring Apps.

  2. Pomocí následujícího příkazu Azure CLI přidejte trvalé úložiště pro aplikace Azure Spring Apps.

    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>
    

Aktivace agenta Elastic APM Java

Než budete pokračovat, budete potřebovat užitečné informace o připojení k serveru Elastic APM, které předpokládají, že jste nasadili Elastic v Azure. Další informace najdete v tématu Nasazení a správa Elastic v Microsoft Azure. Pokud chcete získat tyto informace, postupujte následovně:

  1. Na webu Azure Portal přejděte na stránku Přehled vašeho elastického nasazení a pak vyberte Spravovat nasazení elastického cloudu.

    Snímek obrazovky se stránkou Elasticsearch (ElasticSearch) na webu Azure Portal

  2. V rámci nasazení v konzole Elastic Cloud vyberte část APM &Fleet a získejte koncový bod a tajný token serveru Elastic APM.

    Snímek obrazovky se stránkou Elastic APM &Fleet se zvýrazněným koncovým bodem kopírování a tajným tokenem serveru APM

  3. Stáhněte si agenta Elastic APM Java z Maven Central.

    Snímek obrazovky Maven Central se zvýrazněným stažením souboru JAR

  4. Nahrajte agenta Elastic APM do vlastního trvalého úložiště, které jste povolili dříve. Přejděte do sdílené složky Azure a výběrem možnosti Nahrát přidejte soubor JAR agenta.

    Snímek obrazovky webu Azure Portal s podoknem Nahrát soubory na stránce Sdílená složka

  5. Jakmile budete mít koncový bod Elastic APM a token tajného kódu, pomocí následujícího příkazu aktivujte agenta Elastic APM Java při nasazování aplikací. Zástupný symbol <agent-location> odkazuje na připojené umístění úložiště agenta Elastic APM Java.

    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>'
    

Automatizace zřizování

Kanál automatizace zřizování můžete spustit také pomocí Terraformu, Bicep nebo šablony Azure Resource Manageru (šablona ARM). Tento kanál může poskytovat kompletní praktické prostředí pro instrumentaci a monitorování všech nových aplikací, které vytvoříte a nasadíte.

Automatizace zřizování pomocí Terraformu

Pokud chcete nakonfigurovat proměnné prostředí v šabloně Terraformu, přidejte do šablony následující kód a nahraďte <> zástupné symboly vlastními hodnotami. Další informace najdete v tématu Správa aktivního nasazení služby Azure Spring Apps.

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>"
  }
}

Automatizace zřizování pomocí souboru Bicep

Pokud chcete nakonfigurovat proměnné prostředí v souboru Bicep, přidejte do souboru následující kód a nahraďte <> zástupné symboly vlastními hodnotami. Další informace najdete v tématu 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>',
  ...
}

Automatizace zřizování pomocí šablony ARM

Pokud chcete nakonfigurovat proměnné prostředí v šabloně ARM, přidejte do šablony následující kód a zástupné symboly ...> nahraďte <vlastními hodnotami. Další informace najdete v tématu 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>",
  ...
}

Upgrade agenta Elastic APM Java

Pokud chcete naplánovat upgrade, přečtěte si téma Upgradování verzí elastického cloudu v Azure a zásadních změn pro APM. Po upgradu serveru APM nahrajte soubor JAR agenta Elastic APM Java do vlastního trvalého úložiště. Potom restartujte aplikace s aktualizovanými možnostmi prostředí JVM odkazujícími na upgradovaný soubor JAR agenta Elastic APM Java.

Monitorování aplikací a metrik pomocí Elastic APM

Pomocí následujících kroků můžete monitorovat aplikace a metriky:

  1. Na webu Azure Portal přejděte na stránku Přehled vašeho elastického nasazení a pak vyberte odkaz Kibana.

    Snímek obrazovky webu Azure Portal se stránkou Elasticsearch se zvýrazněným odkazem Url nasazení Kibana

  2. Po otevření Kibany vyhledejte na panelu hledání APM a pak vyberte APM.

    Snímek obrazovky s elastickou / Kibanou, která zobrazuje výsledky hledání APM

Kibana APM je kurátorovaná aplikace pro podporu pracovních postupů monitorování aplikací. Tady můžete zobrazit podrobnosti vysoké úrovně, jako jsou doby požadavků/odezvy, propustnost a transakce ve službě s největším dopadem na dobu trvání.

Snímek obrazovky s elastickou / Kibanou, která zobrazuje stránku Přehled služeb APM

Můžete přejít k podrobnostem v konkrétní transakci, abyste porozuměli podrobnostem specifickým pro transakci, jako je distribuované trasování.

Snímek obrazovky s elastickou / Kibanou, která zobrazuje stránku Transakce služeb APM

Agent Elastic APM v Javě také zaznamenává metriky JVM z aplikací Azure Spring Apps, které jsou k dispozici v aplikaci Kibana pro uživatele pro řešení potíží.

Snímek obrazovky s elastickou / Kibanou, která zobrazuje stránku JVM služeb APM

Pomocí integrovaného modulu AI v elastickém řešení můžete také povolit detekci anomálií ve službě Azure Spring Apps Services a zvolit odpovídající akci, jako je oznámení Teams, vytvoření problému JIRA, volání rozhraní API založené na webhooku a další.

Snímek obrazovky s elastickou / Kibanou, která zobrazuje stránku Služby APM se zvýrazněným podoknem Vytvořit pravidlo a Zvýrazněnými akcemi

Další kroky