Share via


Ü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 ❌ Enterprise

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 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 der Seite

  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.

    Screenshot der Seite

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

    Screenshot von Maven Central mit hervorgehobenem Jar-Download.

  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 des Azure-Portals, in dem der Bereich

  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 mithilfe von Terraform, Bicep 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 Bicep-Datei

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

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. Nachdem Sie APM Server aktualisiert haben, laden Sie die Elastic APM Java Agent JAR-Datei in den benutzerdefinierten beständigen Speicher hoch. Starten Sie dann Ihre Apps mit den aktualisierten JVM-Optionen neu, die auf den aktualisierten Elastic APM Java Agent JAR 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 des Azure-Portals, auf dem die Seite

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

    Screenshot von Elastic / Kibana, das die APM-Suchergebnisse zeigt.

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 und die Transaktionen in einem Dienst mit den meisten Auswirkungen auf die Dauer anzeigen.

Screenshot von Elastic / Kibana mit der Seite

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

Screenshot von Elastic / Kibana mit der Seite

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.

Screenshot von Elastic / Kibana mit der Seite

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.

Screenshot von Elastic / Kibana, auf der die Seite

Nächste Schritte