Überwachen von Spring Boot-Apps mit Elastic APM Java Agent
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren vom Plan „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
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:
- Überwachen von Apps mit Elastic APM Java Agent und beständigem Speicher mit Azure Spring Apps
- Verwenden von Diagnoseeinstellungen zum Senden von Azure Spring Apps-Protokollen an Elastic Weitere Informationen finden Sie unter Analysieren von Protokollen mit Elastic (ELK) mithilfe der Diagnoseeinstellungen.
Im folgenden Video wird der einheitliche Einblick für Spring Boot-Anwendungen mithilfe von Elastic vorgestellt.
Voraussetzungen
- Azure-Befehlszeilenschnittstelle
- Bereitstellen von Elastic in Azure
- Verwalten Ihres APM Fleet Server
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:
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.
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:
Führen Sie die in Aktivieren Ihres eigenen beständigen Speichers in Azure Spring Apps beschriebenen Schritte durch.
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:
Wechseln Sie im Azure-Portal zur Übersichtsseite Ihrer Elastic-Bereitstellung, und wählen Sie dann Manage Elastic Cloud Deployment (Elastic Cloud-Bereitstellung verwalten) aus.
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.
Laden Sie Elastic APM Java Agent von Maven Central herunter.
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.
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:
Wechseln Sie im Azure-Portal zur Übersichtsseite Ihrer Elastic-Bereitstellung, und wählen Sie den Kibana-Link aus.
Suchen Sie in der Suchleiste nach APM, sobald Kibana geöffnet ist, und wählen Sie anschließend APM aus.
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.
Sie können für eine spezifische Transaktion Detailinformationen anzeigen, um die transaktionsspezifischen Details wie die verteilte Ablaufverfolgung zu verstehen.
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.
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.