Udostępnij za pośrednictwem


Jak monitorować aplikacje Spring Boot za pomocą elastycznego agenta java APM

Uwaga

Plany Basic, Standardi Enterprise weszły w okres wycofywania 17 marca 2025 r. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.

Plan dotyczący zużycia standardowego oraz dedykowany plan zostały wycofane 30 września 2024 r., z całkowitym zamknięciem do końca marca 2025 r. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.

Ten artykuł dotyczy:✅ Podstawowa/Standardowa ❎ Enterprise

W tym artykule wyjaśniono, jak używać agenta Elastic APM do monitorowania aplikacji Spring Boot działających w usłudze Azure Spring Apps.

Dzięki elastycznemu rozwiązaniu do obserwacji można osiągnąć ujednoliconą możliwość obserwowania:

Poniższy film wideo przedstawia ujednoliconą obserwację aplikacji Spring Boot korzystających z funkcji Elastic.


Wymagania wstępne

Wdrażanie aplikacji Spring Petclinic

W tym artykule użyto przykładu Spring Petclinic, aby przejść przez wymagane kroki. Aby wdrożyć przykładową aplikację, wykonaj następujące kroki:

  1. Postępuj zgodnie z instrukcjami w sekcji Wdrażanie aplikacji Spring Boot przy użyciu usług Azure Spring Apps i MySQL , dopóki nie osiągniesz sekcji Wdrażanie aplikacji Spring Boot i ustaw zmienne środowiskowe .

  2. Użyj rozszerzenia Azure Spring Apps dla interfejsu wiersza polecenia platformy Azure za pomocą następującego polecenia, aby utworzyć aplikację do uruchomienia w usłudze 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
    

Włącz niestandardowy magazyn trwały dla usługi Azure Spring Apps

Aby włączyć niestandardowy magazyn trwały, wykonaj następujące kroki:

  1. Wykonaj kroki opisane w temacie Jak włączyć własny magazyn trwały w usłudze Azure Spring Apps.

  2. Użyj następującego polecenia Azure CLI, aby dodać trwałe magazynowanie dla aplikacji 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>
    

Aktywowanie elastycznego agenta języka Java APM

Przed kontynuowaniem potrzebne są informacje o łączności z serwerem Elastic APM, które zakłada, że wdrożono usługę Elastic na platformie Azure. Aby uzyskać więcej informacji, zobacz How to deploy and manage Elastic on Microsoft Azure (Jak wdrażać usługę Elastic na platformie Microsoft Azure i zarządzać nią). Aby uzyskać te informacje, wykonaj następujące czynności:

  1. W witrynie Azure Portal przejdź do strony Przegląd wdrożenia elastycznego, a następnie wybierz pozycję Zarządzaj wdrożeniem elastycznej chmury.

    Zrzut ekranu przedstawiający stronę elasticsearch (Elastic Cloud) w witrynie Azure Portal.

  2. W obszarze wdrożenia w usłudze Elastic Cloud Console wybierz sekcję APM & Fleet , aby uzyskać punkt końcowy serwera Elastic APM i token tajny.

    Zrzut ekranu strony Elastic APM & Fleet ze wyróżnionymi

  3. Pobierz program Elastic APM Java Agent z usługi Maven Central.

    Zrzut ekranu z centralnego repozytorium Maven z zaznaczonym pobieraniem pliku jar.

  4. Prześlij agenta Elastic APM do niestandardowego trwałego magazynu, który wcześniej włączyłeś. Przejdź do Azure Fileshare i wybierz Przekaż, aby dodać plik JAR agenta.

    Zrzut ekranu witryny Azure Portal przedstawiający okienko Przekazywanie plików na stronie Udział plików.

  5. Po uzyskaniu punktu końcowego Elastic APM i tokenu tajnego użyj następującego polecenia, aby aktywować agenta Java Elastic APM podczas wdrażania aplikacji. Symbol zastępczy <agent-location> odwołuje się do zamontowanej lokalizacji przechowywania agenta Java Elastic APM.

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

Automatyzowanie udostępniania zasobów

Możesz również uruchomić przepływ pracy automatyzacji aprowizacji przy użyciu narzędzia Terraform, Bicep lub szablonu Azure Resource Manager (szablon ARM). Ten potok może zapewnić pełne bezobsługowe doświadczenie związane z instrumentacją i monitorowaniem wszystkich nowych aplikacji, które tworzysz i wdrażasz.

Automatyzowanie aprowizacji przy użyciu narzędzia Terraform

Aby skonfigurować zmienne środowiskowe w szablonie Terraform, dodaj do szablonu następujący kod, zastępując pola <...> własnymi wartościami. Aby uzyskać więcej informacji, zobacz Manages an Active Azure Spring Apps Deployment (Zarządzanie wdrożeniem usługi 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>"
  }
}

Automatyzowanie konfigurowania przy użyciu pliku Bicep

Aby skonfigurować zmienne środowiskowe w pliku Bicep, dodaj do niego następujący kod, zastępując symbole zastępcze <...> swoimi wartościami. Aby uzyskać więcej informacji, zobacz 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>',
  ...
}

Automatyzacja przydzielania zasobów za pomocą szablonu ARM

Aby skonfigurować zmienne środowiskowe w szablonie ARM, dodaj następujący kod do szablonu, zastępując symbole zastępcze <...> własnymi wartościami. Aby uzyskać więcej informacji, zobacz 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>",
  ...
}

Uaktualnianie elastycznego agenta APM Java

Aby zaplanować uaktualnienie, zobacz Uaktualnianie wersji elastycznej chmury na platformie Azure i Istotne zmiany dotyczące programu APM. Po uaktualnieniu serwera APM przekaż plik JAR agenta Elastic APM Java do niestandardowej pamięci trwałej. Następnie uruchom ponownie aplikacje przy użyciu zaktualizowanych opcji JVM wskazujących uaktualniony plik JAR agenta Elastic APM Java.

Monitorowanie aplikacji i metryk za pomocą elastycznego APM

Aby monitorować aplikacje i metryki, wykonaj następujące czynności:

  1. W portalu Azure przejdź do strony głównej swojego wdrożenia Elastic, a następnie wybierz link Kibana.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę elasticsearch z wyróżnionym linkiem Kibana adresu URL wdrożenia.

  2. Po otwarciu narzędzia Kibana wyszukaj ciąg APM na pasku wyszukiwania, a następnie wybierz pozycję APM.

    Zrzut ekranu programu Elastic/Kibana przedstawiający wyniki wyszukiwania APM.

Kibana APM to dedykowana aplikacja wspierająca przepływy pracy monitorowania aplikacji. W tym miejscu możesz wyświetlić szczegółowe informacje o wysokim poziomie, takie jak czasy żądań/odpowiedzi, przepływność i transakcje w usłudze z największym wpływem na czas trwania.

Zrzut ekranu programu Elastic/Kibana przedstawiający stronę Przegląd usług APM.

Możesz przejść do szczegółów określonej transakcji, aby zrozumieć szczegóły specyficzne dla transakcji, takie jak śledzenie rozproszone.

Zrzut ekranu Elastic / Kibana, który przedstawia stronę Transakcje usług APM.

Agent Elastic APM w języku Java przechwytuje również metryki JVM z aplikacji Azure Spring Apps, które są dostępne w aplikacji Kibana dla użytkowników na potrzeby rozwiązywania problemów.

Zrzut ekranu Elastic/Kibana przedstawiający stronę JVM usług APM.

Korzystając z wbudowanego silnika AI w rozwiązaniu Elastic, możesz również włączyć wykrywanie anomalii w usługach Azure Spring Apps i wybrać odpowiednią akcję, taką jak powiadomienie w Teams, utworzenie zgłoszenia na JIRA, wywołanie interfejsu API opartego na webhookach i inne.

Zrzut ekranu pokazujący stronę Usług APM w Elastic/Kibana z okienkiem Tworzenie reguły i podświetlonymi akcjami.

Następne kroki