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 przedstawiający agenta AppDynamics ze strzałką dwukierunkową do aplikacji Spring Boot w usłudze Azure Spring Apps i strzałką wskazującą agenta AppDynamics.

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.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Aplikacje dla wystąpienia usługi Azure Spring Apps.

  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.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Konfiguracja aplikacji w wystąpieniu usługi Azure Spring Apps z wybraną kartą Ustawienia ogólne.

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

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Konfiguracja z wybraną kartą Zmienne środowiskowe.

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:

Zrzut ekranu przedstawiający oprogramowanie AppDynamics z pulpitem nawigacyjnym Aplikacje.

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

  • api-gateway

    Zrzut ekranu oprogramowania AppDynamics przedstawiający pulpit nawigacyjny aplikacji dla przykładowej aplikacji api-gateway.

  • customers-service

    Zrzut ekranu przedstawiający oprogramowanie AppDynamics z pulpitem nawigacyjnym aplikacji dla przykładowej aplikacji customers-service.

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

Zrzut ekranu programu AppDynamics przedstawiający pulpit nawigacyjny Wywołania bazy danych.

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

Zrzut ekranu programu AppDynamics przedstawiający stronę Najwolniejsze wywołania bazy danych.

Zrzut ekranu programu AppDynamics przedstawiający stronę Skorelowanych migawek dostępną ze strony Najwolniejsze wywołania bazy danych.

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

Zrzut ekranu programu AppDynamics przedstawiający sekcję Sterta na stronie Pamięć.

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

Zrzut ekranu programu AppDynamics przedstawiający sekcję Odzyskiwanie pamięci na stronie Pamięć.

Poniższy zrzut ekranu przedstawia stronę Powolne transakcje :

Zrzut ekranu programu AppDynamics przedstawiający stronę Wolne transakcje.

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

Zrzut ekranu programu AppDynamics przedstawiający przeglądarkę metryki.

Wyświetlanie dzienników agenta AppDynamics

Domyślnie usługa Azure Spring Apps wyświetla dzienniki poziomu informacji agenta AppDynamics na STDOUT. Dzienniki są 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 jest 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 pozostają niezmienione, ale wymagają ponownego uruchomienia lub ponownego wdrożenia, aby zaangażować nową wersję agenta AppDynamics.
  • Aplikacje utworzone po uaktualnieniu używają 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 Cisco AppDynamics SaaS Domains and IP Ranges and Customer responsibilities for running Azure Spring Apps in a virtual network (Domeny i zakresy adresów IP firmy Cisco AppDynamics 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