Sdílet prostřednictvím


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

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

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