Überwachen von Spring Boot-Apps mit Elastic APM 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: ✔️ Basic-/Standard-Dienstebene ✔️ Enterprise-Dienstebene

In diesem Artikel wird erläutert, wie Sie Elastic APM Java Agent verwenden, um in Azure Spring Apps ausgeführte Spring Boot-Anwendungen zu überwachen.

Mit der Elastic Observability-Lösungen können Sie einheitliche Einblicke für Folgendes erhalten:

Im folgenden Video wird der einheitliche Einblick für Spring Boot-Anwendungen mithilfe von Elastic vorgestellt.


Voraussetzungen

Bereitstellen der Spring Petclinic-Anwendung

In diesem Artikel wird das Spring Petclinic-Beispiel verwendet, um die erforderlichen Schritte zu erläutern. Führen Sie die folgenden Schritte durch, um die Beispielanwendung bereitzustellen:

  1. Führen Sie die in Bereitstellen von Spring Boot-Apps mithilfe von Azure Spring Apps und MySQL beschriebenen Schritte durch, bis Sie den Abschnitt Bereitstellen von Spring Boot-Anwendungen und Festlegen von Umgebungsvariablen erreichen.

  2. Verwenden Sie die Azure Spring Apps-Erweiterung für die Azure CLI mit dem folgenden Befehl, um eine Anwendung zu erstellen, die in Azure Spring Apps ausgeführt wird:

    az spring app create \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --is-public true
    

Aktivieren von benutzerdefiniertem beständigem Speicher für Azure Spring Apps

Führen Sie die folgenden Schritte durch, um benutzerdefinierten beständigen Speicher zu aktivieren:

  1. Führen Sie die in Aktivieren Ihres eigenen beständigen Speichers in Azure Spring Apps beschriebenen Schritte durch.

  2. Verwenden Sie den folgenden Azure CLI-Befehl, um Ihren Azure Spring Apps-Apps beständigen Speicher hinzuzufügen.

    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>
    

Aktivieren von Elastic APM Java Agent

Bevor Sie fortfahren, benötigen Sie die Konnektivitätsinformationen Ihrer Elastic APM Server-Instanz. Dabei wird davon ausgegangen, was voraussetzt, dass Sie Elastic in Azure bereitgestellt haben. Weitere Informationen finden Sie unter Bereitstellen und Verwalten von Elastic in Microsoft Azure. Führen Sie die folgenden Schritte durch, um diese Informationen zu erhalten:

  1. Wechseln Sie im Azure-Portal zur Übersichtsseite Ihrer Elastic-Bereitstellung, und wählen Sie dann Manage Elastic Cloud Deployment (Elastic Cloud-Bereitstellung verwalten) aus.

    Screenshot of Azure portal 'Elasticsearch (Elastic Cloud)' page.

  2. Wählen Sie unter Ihrer Bereitstellung in der Elastic Cloud-Konsole den Abschnitt APM & Fleet aus, um den Elastic APM-Endpunkt und das geheime Token abzurufen.

    Elastic screenshot 'A P M & Fleet' page.

  3. Laden Sie Elastic APM Java Agent von Maven Central herunter.

    Maven Central screenshot with jar download highlighted.

  4. Laden Sie Elastic APM Java Agent in den benutzerdefinierten beständigen Speicher hoch, den Sie zuvor aktiviert haben. Wechseln Sie zur Azure-Dateifreigabe, und wählen Sie Hochladen aus, um die JAR-Datei des Agents hinzuzufügen.

    Screenshot of Azure portal showing 'Upload files' pane of 'File share' page.

  5. Verwenden Sie den folgenden Befehl, sobald Sie den Elastic APM-Endpunkt und das geheime Token erhalten haben, um Elastic APM Java Agent beim Bereitstellen von Anwendungen zu aktivieren. Der Platzhalter <agent-location> verweist auf den eingebundenen Speicherort der Elastic APM Java Agent-Instanz.

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

Automatisieren der Bereitstellung

Sie können eine Bereitstellungsautomatisierungspipeline auch mit Terraform oder einer Azure Resource Manager-Vorlage (ARM-Vorlage) 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:<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>"
  }
}

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

Durchführen eines Upgrades für Elastic APM Java Agent

Informationen zum Planen Ihres Upgrades finden Sie unter Upgradeversionen für Elastic Cloud in Azure und unter Breaking Changes für APM. Laden Sie nach dem Upgrade von APM Server die JAR-Datei der Elastic APM Java Agent-Instanz in den benutzerdefinierten beständigen Speicher hoch, und starten Sie die Apps mit aktualisierten JVM-Optionen neu, die auf die upgegradete JAR-Datei der Elastic APM Java Agent-Instanz verweisen.

Überwachen von Anwendungen und Metriken mit Elastic APM

Führen Sie zum Überwachen von Anwendungen und Metriken die folgenden Schritte durch:

  1. Wechseln Sie im Azure-Portal zur Übersichtsseite Ihrer Elastic-Bereitstellung, und wählen Sie den Kibana-Link aus.

    Screenshot of Azure portal showing Elasticsearch page with 'Deployment U R L / Kibana' highlighted.

  2. Suchen Sie in der Suchleiste nach APM, sobald Kibana geöffnet ist, und wählen Sie anschließend APM aus.

    Elastic / Kibana screenshot showing A P M search results.

Kibana APM ist die kuratierte Anwendung zur Unterstützung von Workflows zur Anwendungsüberwachung. Hier können Sie allgemeine Details wie die Anforderungs- bzw. Antwortzeiten, den Durchsatz oder die Transaktionen in einem Dienst mit den meisten Auswirkungen auf die Dauer anzeigen.

Elastic / Kibana screenshot showing A P M Services Overview page.

Sie können für eine spezifische Transaktion Detailinformationen anzeigen, um die transaktionsspezifischen Details wie die verteilte Ablaufverfolgung zu verstehen.

Elastic / Kibana screenshot showing A P M Services Transactions page.

Elastic APM Java Agent erfasst auch die JVM-Metriken aus den Azure Spring Apps-Apps, die mit der Kibana-App für Benutzer zur Problembehandlung verfügbar sind.

Elastic / Kibana screenshot showing A P M Services J V M page.

Mithilfe der in der Elastic-Lösung integrierten KI-Engine können Sie auch die Anomalieerkennung für Azure Spring Apps-Dienste aktivieren und eine geeignete Aktion auswählen, z. B. Teams-Benachrichtigungen, die Erstellung eines JIRA-Problems, einen webhookbasierter API-Aufruf und weitere.

Elastic / Kibana screenshot showing A P M Services page with 'Create rule' pane showing and Actions highlighted.

Nächste Schritte