Jak monitorować aplikacje Spring Boot za pomocą agenta Java AppDynamics

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy: ✔️ Użycie standardowe i dedykowane (wersja zapoznawcza) ✔️ Podstawowa/Standardowa ❌✔ Enterprise

W tym artykule wyjaśniono, jak używać agenta Java AppDynamics do monitorowania aplikacji Spring Boot w usłudze Azure Spring Apps.

Za pomocą agenta Java AppDynamics można wykonywać następujące czynności:

  • Monitorowanie aplikacji
  • Konfigurowanie agenta Java AppDynamics przy użyciu zmiennych środowiskowych
  • Sprawdzanie wszystkich danych monitorowania z poziomu pulpitu nawigacyjnego AppDynamics

W poniższym filmie wideo przedstawiono agenta przetwarzania Java AppDynamics.


Wymagania wstępne

Aktywowanie agenta w procesie Oprogramowania AppDynamics w języku Java

W przypadku całego przepływu pracy należy wykonać następujące czynności:

  • Aktywuj agenta java oprogramowania AppDynamics w procesie w usłudze Azure Spring Apps, aby wygenerować dane metryk aplikacji.
  • Połączenie agenta AppDynamics do kontrolera AppDynamics w celu zbierania i wizualizowania danych w kontrolerze.

Diagram showing a Spring Boot application in 'Azure Spring Apps' box with a two-directional arrow connecting it to an 'AppDynamics Agent' box, which also has an arrow pointing to an 'AppDynamics Controller' box

Aktywowanie aplikacji za pomocą agenta AppDynamics przy użyciu interfejsu wiersza polecenia platformy Azure

Aby aktywować aplikację za pomocą interfejsu wiersza polecenia platformy Azure, wykonaj następujące kroki.

  1. Utwórz grupę zasobów.

  2. Utwórz wystąpienie usługi Azure Spring Apps.

  3. Utwórz aplikację przy użyciu następującego polecenia. Zastąp symbole zastępcze ...> własnymi <wartościami.

    az spring app create \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --is-public true
    
  4. Utwórz wdrożenie za pomocą agenta AppDynamics przy użyciu zmiennych środowiskowych.

    az spring app deploy \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --artifact-path app.jar \
        --jvm-options="-javaagent:/opt/agents/appdynamics/java/javaagent.jar" \
        --env APPDYNAMICS_AGENT_APPLICATION_NAME=<your-app-name> \
              APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<your-agent-access-key> \
              APPDYNAMICS_AGENT_ACCOUNT_NAME=<your-agent-account-name> \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME=true \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX=<your-agent-node-name> \
              APPDYNAMICS_AGENT_TIER_NAME=<your-agent-tier-name> \
              APPDYNAMICS_CONTROLLER_HOST_NAME=<your-AppDynamics-controller-host-name> \
              APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \
              APPDYNAMICS_CONTROLLER_PORT=443
    

Usługa Azure Spring Apps wstępnie instaluje agenta Java AppDynamics do ścieżki /opt/agents/appdynamics/java/javaagent.jar. Agent można aktywować z poziomu opcji JVM aplikacji, a następnie skonfigurować agenta przy użyciu zmiennych środowiskowych. Wartości tych zmiennych można znaleźć w artykule Monitorowanie usługi Azure Spring Apps za pomocą agenta Języka Java. Aby uzyskać więcej informacji na temat sposobu wyświetlania i organizowania raportów w interfejsie użytkownika oprogramowania AppDynamics, zobacz Warstwy i węzły.

Aktywowanie aplikacji za pomocą agenta AppDynamics przy użyciu witryny Azure Portal

Aby aktywować aplikację za pośrednictwem witryny Azure Portal, wykonaj następujące kroki.

  1. Przejdź do wystąpienia usługi Azure Spring Apps w witrynie Azure Portal.

  2. Wybierz pozycję Aplikacje w sekcji Ustawienia okienka nawigacji.

    Screenshot of the Azure portal showing the Apps page for an Azure Spring Apps instance.

  3. Wybierz aplikację, a następnie wybierz pozycję Konfiguracja w okienku nawigacji.

  4. Użyj karty Ustawienia ogólne, aby zaktualizować wartości, takie jak opcje JVM.

    Screenshot of the Azure portal showing the Configuration page for an app in an Azure Spring Apps instance, with the General settings tab selected.

  5. Wybierz pozycję Zmienne środowiskowe , aby dodać lub zaktualizować zmienne używane przez aplikację.

    Screenshot of the Azure portal showing the Configuration page for an app in an Azure Spring Apps instance, with the Environment variables tab selected.

Automatyzowanie aprowizacji

Możesz również uruchomić potok automatyzacji aprowizacji przy użyciu narzędzia Terraform, Bicep lub szablonu usługi Azure Resource Manager (szablon usługi ARM). Ten potok może zapewnić pełne praktyczne środowisko instrumentacji i monitorowania wszelkich nowych aplikacji, które tworzysz i wdrażasz.

Automatyzowanie aprowizacji przy użyciu narzędzia Terraform

Aby skonfigurować zmienne środowiskowe w szablonie programu Terraform, dodaj następujący kod do szablonu, zastępując <symbole zastępcze ...> 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:/opt/agents/appdynamics/java/javaagent.jar"
  ...
    environment_variables = {
      "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
      "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
      "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
      "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
      "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
      "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
      "APPDYNAMICS_CONTROLLER_PORT" : "443"
  }
}

Automatyzowanie aprowizacji przy użyciu Bicep

Aby skonfigurować zmienne środowiskowe w pliku Bicep, dodaj następujący kod do pliku, zastępując <symbole zastępcze ...> własnymi wartościami. Aby uzyskać więcej informacji, zobacz Microsoft.AppPlatform Spring/apps/deployments.

deploymentSettings: {
  environmentVariables: {
    APPDYNAMICS_AGENT_APPLICATION_NAME : '<your-app-name>'
    APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY : '<your-agent-access-key>'
    APPDYNAMICS_AGENT_ACCOUNT_NAME : '<your-agent-account-name>'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME : 'true'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX : '<your-agent-node-name>'
    APPDYNAMICS_AGENT_TIER_NAME : '<your-agent-tier-name>'
    APPDYNAMICS_CONTROLLER_HOST_NAME : '<your-AppDynamics-controller-host-name>'
    APPDYNAMICS_CONTROLLER_SSL_ENABLED : 'true'
    APPDYNAMICS_CONTROLLER_PORT : '443'
  }
  jvmOptions: '-javaagent:/opt/agents/appdynamics/java/javaagent.jar'
}

Automatyzowanie aprowizacji przy użyciu szablonu usługi ARM

Aby skonfigurować zmienne środowiskowe w szablonie usługi 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": {
    "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
    "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
    "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
    "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
    "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
    "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
    "APPDYNAMICS_CONTROLLER_PORT" : "443"
  },
  "jvmOptions": "-javaagent:/opt/agents/appdynamics/java/javaagent.jar",
  ...
}

Przeglądanie raportów na pulpicie nawigacyjnym Oprogramowania AppDynamics

W tej sekcji przedstawiono różne raporty w narzędziu AppDynamics.

Poniższy zrzut ekranu przedstawia przegląd aplikacji na pulpicie nawigacyjnym AppDynamics:

AppDynamics screenshot showing the Applications page.

Pulpit nawigacyjny aplikacji przedstawia ogólne informacje dla każdej aplikacji, jak pokazano na poniższych zrzutach ekranu przy użyciu przykładowych aplikacji:

  • api-gateway

    AppDynamics screenshot showing the Application Dashboard for the example api-gateway app.

  • customers-service

    AppDynamics screenshot showing the Application Dashboard for the example customers-service app.

Poniższy zrzut ekranu przedstawia sposób uzyskiwania podstawowych informacji z pulpitu nawigacyjnego Wywołania bazy danych.

AppDynamics screenshot showing the Database Calls dashboard.

Możesz również uzyskać informacje o najwolniejszych wywołaniach bazy danych, jak pokazano na poniższych zrzutach ekranu:

AppDynamics screenshot showing the Slowest Database Calls page.

AppDynamics screenshot showing the Correlated Snapshots page accessed from the Slowest Database Calls page.

Poniższy zrzut ekranu przedstawia analizę użycia pamięci w sekcji Sterta na stronie Pamięć:

AppDynamics screenshot showing the Heap section of the Memory page.

Możesz również zobaczyć proces odzyskiwania pamięci, jak pokazano na tym zrzucie ekranu:

AppDynamics screenshot showing the Garbage Collection section of the Memory page.

Poniższy zrzut ekranu przedstawia stronę Powolne transakcje :

AppDynamics screenshot showing the Slow Transactions page.

Możesz zdefiniować więcej metryk dla maszyny JVM, jak pokazano na tym zrzucie ekranu przeglądarki metryk:

AppDynamics screenshot showing the Metric Browser.

Wyświetlanie dzienników agenta AppDynamics

Domyślnie usługa Azure Spring Apps wyświetli dzienniki poziomu informacji agenta AppDynamics na STDOUT. Dzienniki będą mieszane z dziennikami aplikacji. Wersję jawnego agenta można znaleźć w dziennikach aplikacji.

Dzienniki agenta AppDynamics można również pobrać z następujących lokalizacji:

  • Dzienniki usługi Azure Spring Apps
  • Szczegółowe informacje aplikacji Usługi Azure Spring Apps
  • Azure Spring Apps LogStream

Dowiedz się więcej o uaktualnieniu agenta AppDynamics

Agent AppDynamics zostanie regularnie uaktualniany przy użyciu zestawu JDK (kwartalnie). Uaktualnienie agenta może mieć wpływ na następujące scenariusze:

  • Istniejące aplikacje korzystające z agenta AppDynamics przed uaktualnieniem pozostaną niezmienione, ale będą wymagały ponownego uruchomienia lub ponownego wdrożenia w celu zaangażowania nowej wersji agenta AppDynamics.
  • Aplikacje utworzone po uaktualnieniu będą używać nowej wersji agenta AppDynamics.

Konfigurowanie ruchu wychodzącego wystąpienia iniekcji sieci wirtualnej

W przypadku wystąpień iniekcji sieci wirtualnej usługi Azure Spring Apps upewnij się, że ruch wychodzący został poprawnie skonfigurowany dla agenta AppDynamics. Aby uzyskać szczegółowe informacje, zobacz Domeny SaaS i zakresy adresów IP oraz Obowiązki klienta dotyczące uruchamiania usługi Azure Spring Apps w sieci wirtualnej.

Omówienie ograniczeń

Aby zrozumieć ograniczenia agenta AppDynamics, zobacz Monitorowanie usługi Azure Spring Apps za pomocą agenta Java.

Następne kroki

Korzystanie z agenta wewnątrzprocesowego Java usługi Application Insights w usłudze Azure Spring Apps