Überwachen von Spring Boot-Apps mit dem New Relic-Agent von Java
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: ✔️ Standardverbrauch und dediziert (Vorschau) ✔️ Basic/Standard ❌ Enterprise
Dieser Artikel veranschaulicht die Überwachung von Spring Boot-Anwendungen in Azure Spring Apps mit dem New Relic-Java-Agent.
Mit dem New Relic-Agent von Java können Sie die folgenden Funktionen verwenden:
- Nutzen des New Relic-Agents von Java.
- Konfigurieren des New Relic-Agents von Java mit Umgebungsvariablen.
- Überprüfen aller Überwachungsdaten aus dem New Relic-Dashboard.
Im folgenden Video wird beschrieben, wie Sie Spring Boot-Anwendungen in Azure Spring Apps mithilfe von New Relic One aktivieren und überwachen.
Voraussetzungen
- Ein New Relic-Konto.
- Azure CLI-Version 2.0.67 oder höher
Aktivieren des prozessinternen New Relic-Agents von Java
Verwenden Sie das folgende Verfahren, um auf den Agent zuzugreifen:
Erstellen Sie eine Instanz von Azure Spring Apps.
Erstellen einer Anwendung.
az spring app create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <app-name> \ --is-public true \
Erstellen Sie eine Bereitstellung mit dem New Relic-Agent und Umgebungsvariablen.
az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <app-name> \ --artifact-path app.jar \ --jvm-options="-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar" \ --env NEW_RELIC_APP_NAME=appName \ NEW_RELIC_LICENSE_KEY=newRelicLicenseKey
Azure Spring Apps installiert den New Relic-Java-Agent vorab unter /opt/agents/newrelic/java/newrelic-agent.jar. Kunden können den Agent über JVM-Optionen von Anwendungen aktivieren und ihn mithilfe der Umgebungsvariablen des New Relic-Java-Agents konfigurieren.
Azure-Portal
Sie können diesen Agent auch wie folgt über das Azure-Portal aktivieren:
Wählen Sie in der Azure Spring Apps-Instanz im Navigationsbereich Apps aus.
Wählen Sie die Anwendung in der Liste aus, und wählen Sie dann im Navigationsbereich die Option Konfiguration aus.
Verwenden Sie die Registerkarte Allgemeine Einstellungen, um Werte wie die JVM-Optionen zu aktualisieren.
Wählen Sie Umgebungsvariablen aus, um die von Ihrer Anwendung verwendeten Variablen hinzuzufügen oder zu aktualisieren.
Sehen Sie sich die Seite Summary der Anwendungs-API bzw. des Gateways auf dem New Relic-Dashboard an.
Zeigen Sie die Seite Zusammenfassung des Kundendiensts der Anwendung im „New Relic“-Dashboard an.
Zeigen Sie die Seite Dienstzuordnung im „New Relic“-Dashboard an.
Zeigen Sie die Seite JVMs der Anwendung im „New Relic“-Dashboard an.
Zeigen Sie das Anwendungsprofil im „New Relic“-Dashboard an.
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:/opt/agents/newrelic/java/newrelic-agent.jar"
...
environment_variables = {
"NEW_RELIC_APP_NAME": "<app-name>",
"NEW_RELIC_LICENSE_KEY": "<new-relic-license-key>"
}
}
Automatisieren der Bereitstellung mithilfe einer Bicep-Datei
Um die Umgebungsvariablen in einer Bicep-Datei zu konfigurieren, fügen Sie der Vorlage den folgenden Code hinzu und ersetzen dabei die Platzhalter <...> durch Ihre eigenen Werte. Weitere Informationen finden Sie unter Microsoft.AppPlatform/Spring/apps/deployments/skus.
deploymentSettings: {
environmentVariables: {
NEW_RELIC_APP_NAME : '<app-name>',
NEW_RELIC_LICENSE_KEY : '<new-relic-license-key>'
},
jvmOptions: '-javaagent:/opt/agents/newrelic/java/newrelic-agent.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": {
"NEW_RELIC_APP_NAME" : "<app-name>",
"NEW_RELIC_LICENSE_KEY" : "<new-relic-license-key>"
},
"jvmOptions": "-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar",
...
}
Weiterleiten von Anwendungsprotokollen an New Relic
Der New Relic-Agent kann Anwendungsprotokolle direkt aus Ihren Apps sammeln und an New Relic weiterleiten. Weitere Informationen finden Sie unter Forward your logs to New Relic (Weiterleiten Ihrer Protokolle an New Relic) sowie unter APM logs in context (APM-Protokolle im Kontext).
Anzeigen von Protokollen des New Relic-Agents von Java
Standardmäßig gibt Azure Spring Apps die Protokolle des New Relic-Java-Agents 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 New Relic-Agents auch an den folgenden Speicherorten abrufen:
- Azure Spring Apps-Protokolle
- Application Insights für Azure Spring Apps
- Azure Spring Apps LogStream
Sie können einige von New Relic bereitgestellte Umgebungsvariablen nutzen, um die Protokollierung des neuen Agents zu konfigurieren (z. B. NEW_RELIC_LOG_LEVEL
, um den Protokolliergrad zu steuern). Weitere Informationen finden Sie in der New Relic-Protokollierungskonfiguration.
Hinweis
Verwenden Sie finer
oder finest
nur, wenn Sie vom New Relic-Support dazu aufgefordert werden. Diese Protokollierungsgrade können zu übermäßigem Mehraufwand führen. Verwenden Sie für die meisten Situationen info
.
Achtung
Es wird dringend empfohlen, das Standardverhalten der Protokollierung, das von Azure Spring Apps für New Relic bereitgestellt wird, nicht außer Kraft zu setzen. Andernfalls werden die zuvor beschriebenen Protokollierungsszenarien blockiert, und die Protokolldateien gehen möglicherweise verloren. Beispielsweise sollten die folgenden Umgebungsvariablen nicht an Ihre Anwendungen übergeben werden. Protokolldateien können nach einem Neustart oder einer erneuten Bereitstellung von Anwendungen verloren gehen.
- NEW_RELIC_LOG
- NEW_RELIC_LOG_FILE_PATH
Update/Upgrade des New Relic-Java-Agents
Der New Relic-Java-Agent führt regelmäßig Updates/Upgrades für das JDK durch. Das Update/Upgrade des Agents kann sich auf die folgenden Szenarien auswirken:
- Vorhandene Anwendungen, die den New Relic-Java-Agent vor dem Update/Upgrade verwenden, bleiben unverändert.
- Vorhandene Anwendungen, die den New Relic-Java-Agent vor dem Update/Upgrade verwenden, erfordern einen Neustart oder eine erneute Bereitstellung, um die neue Version des New Relic-Java-Agents zu nutzen.
- Neue Anwendungen, die nach dem Update/Upgrade erstellt werden, verwenden die neue Version des New Relic-Java-Agents.
Konfiguration des ausgehenden Datenverkehrs der VNET-Injektionsinstanz
Für eine VNET-Injektionsinstanz von Azure Spring Apps müssen Sie sicherstellen, dass der ausgehende Datenverkehr für den New Relic-Java-Agent ordnungsgemäß konfiguriert ist. Weitere Informationen finden Sie unter Netzwerke von New Relic.
Nächste Schritte
Verwendung von Application Insights Java In-Process Agent in Azure Spring Apps