Überwachung von Spring Boot-Anwendungen mit dem AppDynamics Java Agent

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

Dieser Artikel gilt für: ✔️ Standardverbrauch und dediziert (Vorschau) ✔️ Basic/Standard ❌ Enterprise

In diesem Artikel wird erklärt, wie der AppDynamics Java-Agent zum Überwachen von Spring Boot-Anwendungen in Azure Spring Apps verwendet wird.

Mit dem AppDynamics Java Agent können Sie:

  • Überwachen von Anwendungen
  • Konfigurieren Sie den AppDynamics Java Agent mithilfe von Umgebungsvariablen
  • Überprüfen Sie alle Überwachungsdaten aus dem AppDynamics Dashboard

Im folgenden Video wird der AppDynamics Java In-Process-Agent vorgestellt.


Voraussetzungen

Aktivieren Sie den AppDynamics Java In-Process-Agent

Für den gesamten Arbeitsablauf müssen Sie das tun:

  • Aktivieren Sie den AppDynamics Java In-Process Agent in Azure Spring Apps, um Anwendungsmetrikdaten zu generieren.
  • Verbinden Sie den AppDynamics Agent mit dem AppDynamics Controller, um die Daten im Controller zu sammeln und zu visualisieren.

Abbildung des AppDynamics-Agent mit einem Pfeil in beide Richtungen zu Spring Boot-Apps in Azure Spring Apps und einem Pfeil auf den AppDynamics-Agent

Aktivieren einer Anwendung mit dem AppDynamics Agent unter Verwendung der Azure CLI

Gehen Sie wie folgt vor, um eine Anwendung über die Azure CLI zu aktivieren.

  1. Erstellen Sie eine Ressourcengruppe.

  2. Erstellen Sie eine Instanz von Azure Spring Apps.

  3. Erstellen Sie eine Anwendung mit dem folgenden Befehl. Ersetzen Sie die Platzhalter <...> durch Ihre eigenen Werte.

    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. Erstellen Sie eine Bereitstellung mit dem AppDynamics Agent unter Verwendung von Umgebungsvariablen.

    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
    

Azure Spring Apps installiert den AppDynamics-Java-Agenten unter dem Pfad /opt/agents/appdynamics/java/javaagent.jar vor. Sie können den Agenten über die JVM-Optionen Ihrer Anwendungen aktivieren und dann den Agenten mithilfe von Umgebungsvariablen konfigurieren. Die Werte für diese Variablen finden Sie unter Überwachung von Azure Spring Apps mit Java-Agents. Weitere Informationen darüber, wie diese Variablen bei der Anzeige und Organisation von Berichten in der AppDynamics-Benutzeroberfläche helfen, finden Sie unter Ebenen und Knoten.

Aktivieren Sie eine Anwendung mit dem AppDynamics Agent über das Azure-Portal

Um eine Anwendung über das Azure-Portal zu aktivieren, führen Sie die folgenden Schritte aus.

  1. Navigieren Sie zu Ihrer Azure Spring Apps-Instanz im Azure-Portal.

  2. Wählen Sie im Navigationsbereich im Abschnitt Einstellungen die Option Apps aus.

    Screenshot des Azure-Portals mit der Seite „Apps“ für eine Azure Spring Apps-Instanz.

  3. Wählen Sie die App aus, und wählen Sie dann im Navigationsbereich die Option Konfiguration aus.

  4. Verwenden Sie die Registerkarte Allgemeine Einstellungen, um Werte wie die JVM-Optionen zu aktualisieren.

    Screenshot der Seite „Konfiguration“ im Azure-Portal für eine App in einer Azure Spring Apps-Instanz mit ausgewählter Registerkarte „Allgemeine Einstellungen“.

  5. Wählen Sie Umgebungsvariablen aus, um die von Ihrer Anwendung verwendeten Variablen hinzuzufügen oder zu aktualisieren.

    Screenshot des Azure-Portals, auf dem die Seite „Konfiguration“ mit ausgewählter Registerkarte „Umgebungsvariablen“ angezeigt wird.

Automatisieren der Bereitstellung

Mit Terraform, Bicep oder einer Azure Resource Manager-Vorlage (ARM-Vorlage) können Sie auch eine Bereitstellungsautomatisierungspipeline ausführen. Mit dieser Pipeline können Sie alle neuen Anwendungen, die Sie erstellen und bereitstellen, ganz ohne Aufwand instrumentieren und überwachen.

Automatisieren der Bereitstellung mit Terraform

Um die Umgebungsvariablen in einer Terraform-Vorlage zu konfigurieren, fügen Sie der Vorlage den folgenden Code hinzu, und ersetzen Sie dabei die Platzhalter <...> durch Ihre eigenen Werte. Weitere Informationen finden Sie unter Verwalten einer aktiven Azure Spring Apps-Bereitstellung.

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

Automatisieren Sie die Bereitstellung mit Bicep

Um die Umgebungsvariablen in einer Bicep-Datei zu konfigurieren, fügen Sie der Datei den folgenden Code hinzu, und ersetzen Sie dabei die Platzhalter <...> durch Ihre eigenen Werte. Weitere Informationen finden Sie unter Microsoft.AppPlatform/Spring/apps/deployments/skus.

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

Automatisieren der Bereitstellung mithilfe einer ARM-Vorlage

Um die Umgebungsvariablen in einer ARM-Vorlage zu konfigurieren, fügen Sie der Vorlage den folgenden Code hinzu, und ersetzen Sie dabei die Platzhalter <...> durch Ihre eigenen Werte. Weitere Informationen finden Sie unter Microsoft.AppPlatform/Spring/apps/deployments/skus.

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

Berichte im AppDynamics Dashboard überprüfen

Dieser Abschnitt zeigt verschiedene Berichte in AppDynamics.

Der folgende Screenshot zeigt einen Überblick über Ihre Anwendungen im AppDynamics-Dashboard:

Screenshot von AppDynamics, der das Dashboard „Anwendungen“ anzeigt.

Die Registerkarte Anwendungen zeigt die Gesamtinformationen für jede Ihrer Anwendungen, wie in den folgenden Screenshots anhand von Anwendungsbeispielen gezeigt wird:

  • api-gateway

    Screenshot von AppDynamics, der das Anwendungs-Dashboard für die Beispiel-Api-Gateway-App zeigt.

  • customers-service

    Screenshot von AppDynamics, der das Anwendungs-Dashboard für die Beispiel-App für den Kundendienst zeigt.

Die folgende Abbildung zeigt, wie Sie grundlegende Informationen aus dem Dashboard Datenbankaufrufe abrufen können.

Screenshot von AppDynamics, der das Dashboard „Datenbankaufrufe“ anzeigt.

Sie können auch Informationen über die langsamsten Datenbankaufrufe erhalten, wie in diesen Screenshots gezeigt:

Screenshot von AppDynamics mit der Seite „Langsamste Datenbankaufrufe“.

Screenshot von AppDynamics, der die Seite „Korrelierte Snapshot“s zeigt, auf die von der Seite „Langsamste Datenbankaufrufe“ aus zugegriffen wird.

Der folgende Screenshot zeigt die Analyse der Speichernutzung im Abschnitt Heap der Seite Memory:

Screenshot von AppDynamics, der den Heap-Abschnitt der Seite „Speicher“ zeigt.

Sie können auch den Garbage-Collection-Prozess sehen, wie in diesem Screenshot dargestellt:

Screenshot von AppDynamics, der den Abschnitt „Automatische Speicherbereinigung“ auf der Seite „Speicher“ zeigt.

Die folgende Bildschirmabbildung zeigt die Seite Slow Transactions:

Screenshot von AppDynamics mit der Seite „Langsame Transaktionen“.

Sie können weitere Metriken für die JVM definieren, wie in diesem Bildschirmfoto des Metrik-Browsers gezeigt:

Screenshot von AppDynamics, der den Metrikbrowser zeigt.

AppDynamics Agent-Protokolle anzeigen

Standardmäßig gibt Azure Spring Apps die Protokolle der Ebene Info des AppDynamics-Agenten in STDOUT aus. Die Protokolle werden mit den Anwendungsprotokollen gemischt. Sie können die explizite Agent-Version aus den Anwendungsprotokollen abrufen.

Sie können die Protokolle des AppDynamics Agent auch von den folgenden Orten abrufen:

  • Azure Spring Apps-Protokolle
  • Application Insights für Azure Spring Apps
  • Azure Spring Apps LogStream

Erfahren Sie mehr über das AppDynamics Agent Upgrade

Der AppDynamics Agent wird regelmäßig mit dem JDK aktualisiert (vierteljährlich). Das Agent-Upgrade kann sich auf die folgenden Szenarien auswirken:

  • Bestehende Anwendungen, die AppDynamics Agent vor dem Upgrade verwenden, bleiben unverändert, müssen jedoch neu gestartet oder neu bereitgestellt werden, um die neue Version von AppDynamics Agent zu nutzen.
  • Anwendungen, die nach dem Upgrade erstellt werden, verwenden die neue Version von AppDynamics Agent.

Konfigurieren des ausgehenden Datenverkehrs der VNet-Injektionsinstanz

Stellen Sie bei Injektionsinstanzen für virtuelle Netzwerke von Azure Spring Apps sicher, dass der ausgehende Datenverkehr für den AppDynamics-Agent richtig konfiguriert ist. Einzelheiten finden Sie unter Cisco AppDynamics SaaS-Domänen und IP-Bereiche und Kundenverantwortlichkeiten für den Betrieb von Azure Spring Apps in virtuellen Netzwerken.

Verstehen Sie die Grenzen

Um die Einschränkungen des AppDynamics-Agenten zu verstehen, siehe Überwachung von Azure Spring Apps mit Java-Agents.

Nächste Schritte

Verwendung von Application Insights Java In-Process Agent in Azure Spring Apps