Verwendung von Application Insights Java In-Process Agent in Azure Spring Apps
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 Standardverbrauchs- und dedizierten Plan von Azure Spring Apps zu Azure Container Apps.
Verwenden Sie mit Spring Boot Native Image-Anwendungen das Projekt Azure Monitor OpenTelemetry-Distribution / Application Insights in Java-Anwendung mit nativem Spring Boot-Image anstelle des Application Insights Java-Agents.
Dieser Artikel gilt für: ✔️ Standardverbrauch und dediziert (Vorschau) ✔️ Basic/Standard ✔️ Enterprise
In diesem Artikel wird erklärt, wie Sie Anwendungen mithilfe des Application Insights Java-Agenten in Azure Spring Apps überwachen können.
Mit dieser Funktion haben Sie folgende Möglichkeiten:
- Suchen nach Ablaufverfolgungsdaten mit unterschiedlichen Filtern.
- Anzeigen eines Abhängigkeitsdiagramms von Spring-Anwendungen.
- Überprüfen der Anforderungsleistung
- Überwachen von Livemetriken in Echtzeit
- Überprüfen auf Anforderungsfehler
- Überprüfen von Anwendungsmetriken
- Überprüfen von Anwendungsprotokollen.
Application Insights können viele beobachtbare Perspektiven bieten, darunter:
- Anwendungszuordnung
- Leistung
- Fehler
- Metriken
- Livemetriken
- Verfügbarkeit
- Protokolle
Verwenden des Application Insights-Features
Wenn das Application Insights-Feature aktiviert ist, können Sie die folgenden Aktionen ausführen:
Wählen Sie im Navigationsbereich die Option Application Insights aus, um die Seite Übersicht von Application Insights anzuzeigen. Auf der Seite Übersicht wird eine Übersicht über alle ausgeführten Anwendungen angezeigt.
Klicken Sie auf Anwendungsübersicht, um den Status von Aufrufen zwischen Anwendungen anzuzeigen.
Klicken Sie auf die Verbindung zwischen customers-service und
petclinic
, um weitere Details anzuzeigen, z. B. eine SQL-Abfrage.Wählen Sie einen Endpunkt aus, um alle Anwendungen anzuzeigen, die Anforderungen an den Endpunkt senden.
Wählen Sie im Navigationsbereich die Option Leistung aus, um die Leistungsdaten für die Vorgänge aller Anwendungen, Abhängigkeiten und Rollen anzuzeigen.
Wählen Sie im Navigationsbereich die Option Fehler aus, um unerwartete Fehler oder Ausnahmen in Ihren Anwendungen anzuzeigen.
Wählen Sie im Navigationsbereich die Option Metriken und anschließend den gewünschten Namespace aus. Es werden ggf. sowohl Spring Boot-Metriken als auch benutzerdefinierte Metriken angezeigt.
Wählen Sie im linken Navigationsbereich die Option Livemetriken aus, um die Echtzeitmetriken für verschiedene Dimensionen anzuzeigen.
Wählen Sie im Navigationsbereich die Option Verfügbarkeit aus, um die Verfügbarkeit und Reaktionsfähigkeit von Web-Apps zu überwachen, indem Sie Verfügbarkeitstests in Application Insights erstellen.
Wählen Sie im Navigationsbereich die Option Protokolle aus, um die Protokolle aller Anwendungen oder die Protokolle einer einzelnen Anwendung anzuzeigen, wenn Sie nach
cloud_RoleName
filtern.
Verwalten von Application Insights mithilfe des Azure-Portals
Aktivieren Sie den Java In-Process Agent mit dem folgenden Verfahren.
Navigieren Sie zur Seite Dienst | Übersicht Ihrer Dienstinstanz, und wählen Sie dann im Abschnitt Überwachung die Option Application Insights aus.
Klicken Sie auf Application Insights aktivieren, um Application Insights in Azure Spring Apps zu aktivieren.
Wählen Sie eine vorhandene Application Insights-Instanz aus, oder erstellen Sie eine neue.
Wenn Anwendungseinblicke aktiviert ist, können Sie eine optionale Abtastrate konfigurieren (Standard 10,0%).
Wählen Sie Speichern aus, um die Änderung zu speichern.
Hinweis
Verwenden Sie nicht die gleiche Application Insights-Instanz in verschiedenen Azure Spring Apps-Instanzen, da sonst gemischte Daten angezeigt werden.
Sie können das Portal verwenden, um die aktuellen Einstellungen in Application Insights zu überprüfen oder zu aktualisieren.
Aktivieren von Application Insights mithilfe des Azure-Portals
Wählen Sie Application Insights.
Aktivieren Sie Application Insights, indem Sie Bindung bearbeiten oder den Link Ungebunden auswählen.
Bearbeiten Sie Application Insights oder Stichprobenhäufigkeit, und wählen Sie dann Speichern aus.
Deaktivieren von Application Insights
Wählen Sie Application Insights.
Wählen Sie Bindung aufheben aus, um Application Insights zu deaktivieren.
Ändern von Application Insights-Einstellungen
Wählen Sie den Namen in der Spalte Application Insights aus, um den Abschnitt „Application Insights“ zu öffnen.
Bearbeiten von Application Insights-Buildpackbindungen im Builddienst
Führen Sie die folgenden Schritte aus, um die aktuellen Einstellungen für die Application Insights-Buildpackbindungen im Builddienst zu überprüfen und zu aktualisieren:
- Wählen Sie Build Service aus.
- Wählen Sie Ihren Generator aus.
- Wählen Sie in der Spalte „Bindungen“ die Option Bearbeiten aus.
Application Insights-Einstellungen finden Sie im Element ApplicationInsights, das in der Spalte Bindungstyp aufgeführt ist.
Wählen Sie den Link Gebunden aus, oder wählen Sie Bindung bearbeiten unter der Ellipse aus, um die Application Insights-Buildpackbindungen zu öffnen und zu bearbeiten.
Bearbeiten Sie die Bindungseinstellungen, und wählen Sie dann Speichern aus.
Verwalten von Application Insights mit der Azure CLI
Sie können Application Insights mit Azure CLI-Befehlen verwalten. In den folgenden Befehlen müssen Sie den <Platzhaltertext> durch die beschriebenen Werte ersetzen. Der Platzhalter <service-instance-name> bezieht sich auf den Namen Ihrer Azure Spring Apps-Instanz.
Aktivieren von Application Insights
Um Application Insights beim Erstellen einer Azure Spring Apps-Instanz zu konfigurieren, verwenden Sie den folgenden Befehl. Für das Argument app-insights
können Sie einen Application Insights-Namen oder eine Ressourcen-ID angeben.
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Sie können auch eine Application Insights-Verbindungszeichenfolge (bevorzugt) oder einen Instrumentierungsschlüssel verwenden, wie im folgenden Beispiel gezeigt.
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Deaktivieren von Application Insights
Um Application Insights beim Erstellen einer Azure Spring Apps-Instanz zu deaktivieren, verwenden Sie den folgenden Befehl:
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights \
--sku Enterprise
Überprüfen der Application Insights-Einstellungen
Um die Application Insights-Einstellungen einer vorhandenen Azure Spring Apps-Instanz zu überprüfen, verwenden Sie den folgenden Befehl:
az spring app-insights show \
--resource-group <resource-group-name> \
--name <service-instance-name>
Aktualisieren von Application Insights
Um Application Insights zu aktualisieren, damit eine Verbindungszeichenfolge (bevorzugt) oder ein Instrumentierungsschlüssel verwendet wird, verwenden Sie den folgenden Befehl:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
Um Application Insights zu aktualisieren, damit der Ressourcenname oder die ID verwendet wird, verwenden Sie den folgenden Befehl:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
Deaktivieren von Application Insights mit dem Updatebefehl
Um Application Insights auf einer vorhandenen Azure Spring Apps-Instanz zu deaktivieren, verwenden Sie den folgenden Befehl:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable
Verwalten von Application Insights-Buildpackbindungen
Dieser Abschnitt gilt nur für den Enterprise-Plan und enthält Anleitungen, die den vorherigen Abschnitt ergänzen.
Der Enterprise-Plan von Azure Spring Apps verwendet Buildpackbindungen, um Azure Application Insights mit dem Typ ApplicationInsights
zu integrieren. Weitere Informationen finden Sie unter Konfigurieren von APM-Integrations- und Zertifizierungsstellenzertifikaten.
Verwenden Sie den folgenden Befehl, um eine Application Insights-Buildpackbindung zu erstellen:
az spring build-service builder buildpack-binding create \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Verwenden Sie den folgenden Befehl, um alle Buildpackbindungen aufzulisten und nach Application Insights-Bindungen vom Typ ApplicationInsights
zu suchen:
az spring build-service builder buildpack-binding list \
--resource-group <your-resource-group-name> \
--service <your-service-resource-name> \
--builder-name <your-builder-name>
Verwenden Sie den folgenden Befehl, um eine Application Insights-Buildpackbindung zu ersetzen:
az spring build-service builder buildpack-binding set \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Verwenden Sie den folgenden Befehl, um eine Application Insights-Buildpackbindung abzurufen:
az spring build-service builder buildpack-binding show \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Verwenden Sie den folgenden Befehl, um eine Application Insights-Buildpackbindung zu löschen:
az spring build-service builder buildpack-binding delete \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Automatisierung
In den folgenden Abschnitten wird beschrieben, wie Sie Ihre Bereitstellung mithilfe von Bicep, Azure Resource Manager-Vorlagen (ARM-Vorlagen) oder Terraform automatisieren können.
Bicep
Wenn Sie die Bereitstellung mit einer Bicep-Datei durchführen möchten, kopieren Sie den folgenden Inhalt in eine Datei namens main.bicep. Weitere Informationen finden Sie unter Microsoft.AppPlatform Spring/monitoringSettings.
param springName string
param location string = resourceGroup().location
resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
name: springName
location: location
properties: {}
}
resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
parent: spring
name: 'default'
properties: {
appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
appInsightsSamplingRate: 88
}
}
ARM-Vorlagen
Zur Bereitstellung mit einer ARM-Vorlage kopieren Sie den folgenden Inhalt in eine azuredeploy.json-Datei. Weitere Informationen finden Sie unter Microsoft.AppPlatform Spring/monitoringSettings.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"springName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"apiVersion": "2020-07-01",
"name": "[parameters('springName')]",
"location": "[parameters('location')]",
"properties": {}
},
{
"type": "Microsoft.AppPlatform/Spring/monitoringSettings",
"apiVersion": "2020-11-01-preview",
"name": "[format('{0}/{1}', parameters('springName'), 'default')]",
"properties": {
"appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
"appInsightsSamplingRate": 88
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
]
}
]
}
Terraform
Für eine Terraform-Bereitstellung verwenden Sie die folgende Vorlage. Weitere Informationen finden Sie unter azurerm_spring_cloud_service.
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_application_insights" "example" {
name = "tf-test-appinsights"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
application_type = "web"
}
resource "azurerm_spring_cloud_service" "example" {
name = "example-springcloud"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku_name = "S0"
config_server_git_setting {
uri = "https://github.com/Azure-Samples/piggymetrics"
label = "config"
search_paths = ["dir1", "dir2"]
}
trace {
connection_string = azurerm_application_insights.example.connection_string
sample_rate = 10.0
}
tags = {
Env = "staging"
}
}
Die Unterstützung der Automatisierung im Enterprise-Plan steht noch aus. Die Dokumentation wird ergänzt, sobald sie verfügbar ist.
Update/Upgrade des Java-Agents
Für den Java-Agent werden mit dem JDK regelmäßig Updates bzw. Upgrades durchgeführt, was sich auf die folgenden Szenarien auswirken kann.
Hinweis
Updates bzw. Upgrades für die JDK-Version werden vierteljährlich durchgeführt.
- Bereits vorhandene Anwendungen, die den Java-Agent vor dem Update bzw. Upgrade verwenden, sind davon nicht betroffen.
- Anwendungen, die nach dem Update bzw. Upgrade erstellt werden, nutzen die neue Version des Java-Agents.
- Vorhandene Anwendungen, die den Java-Agent zuvor nicht verwendet haben, müssen neu gestartet oder erneut bereitgestellt werden, um die neue Version des Java-Agents zu nutzen.
Ein Update bzw. Upgrade des Java-Agents wird durchgeführt, wenn das Buildpack aktualisiert wird.
Hot-Loading der Java-Agent-Konfiguration
Azure Spring Apps verfügt über einen Hot-Loading-Mechanismus, um die Einstellungen der Agent-Konfiguration ohne den Neustart von Anwendungen anzupassen.
Hinweis
Der Heißlademechanismus hat eine Verzögerung in Minuten.
Ist der Java-Agent bereits aktiviert, ist kein Anwendungsneustart erforderlich, wenn die Application Insights-Instanz oder der
SamplingRate
-Wert geändert wird.Wenn Sie den Java-Agent aktivieren, müssen Sie Anwendungen neu starten.
Wenn Sie den Java-Agent deaktivieren, senden Anwendungen nach einigen Minuten keine Überwachungsdaten mehr. Sie können Anwendungen neu starten, um den Agent aus der Java-Laufzeitumgebung zu entfernen.
Konzeptabgleich zwischen Azure Spring Apps und Application Insights
Azure Spring Apps | Application Insights |
---|---|
App |
* Anwendungsübersicht/Rolle * Livemetriken/Rolle * Fehler/Rollen/Cloudrolle * Leistung/Rollen/Cloudrolle |
App Instance |
* Anwendungsübersicht/Rolleninstanz * Livemetriken/Dienstname * Fehler/Rollen/Cloudinstanz * Leistung/Rollen/Cloudinstanz |
Der Name App Instance
aus Azure Spring Apps wird in den folgenden Szenarien geändert oder generiert:
- Sie erstellen eine neue Anwendung.
- Sie stellen eine JAR-Datei oder Quellcode für eine vorhandene Anwendung bereit.
- Sie initiieren eine Blau-Grün-Bereitstellung.
- Sie starten die Anwendung neu.
- Sie beenden die Bereitstellung einer Anwendung und starten sie dann neu.
Wenn Daten in Application Insights gespeichert werden, enthält es den Verlauf von Azure Spring Apps-App-Instanzen, die seit der Aktivierung des Java-Agents erstellt oder bereitgestellt wurden. Beispielsweise können Sie im Application Insights-Portal die Anwendungsdaten sehen, die am gestrigen Tag erstellt wurden, aber dann innerhalb eines bestimmten Zeitraums gelöscht wurden, z. B. in den letzten 24 Stunden. Die folgenden Szenarien veranschaulichen diese Funktionsweise:
- Sie haben heute um 8:00 Uhr eine Anwendung aus Azure Spring Apps mit aktivierten Java-Agent erstellt, und anschließend stellen Sie heute gegen 8:10 Uhr eine JAR-Datei für diese Anwendung bereit. Nach einigen Tests ändern Sie den Code und stellen heute um 8:30 Uhr eine neue JAR-Datei für diese Anwendung bereit. Dann machen Sie eine Pause, und wenn Sie gegen 11:00 Uhr zurückkehren, überprüfen Sie einige Daten aus Application Insights. Folgendes wird angezeigt:
- Drei Instanzen in der Anwendungsübersicht mit Zeitbereichen in den letzten 24 Stunden sowie Fehler, Leistung und Metriken.
- Eine Instanz in der Anwendungsübersicht mit einem Zeitbereich in der letzten Stunde sowie Fehler, Leistung und Metriken.
- Eine Instanz in Livemetriken.
- Sie haben heute um 8:00 Uhr eine Anwendung aus Azure Spring Apps mit aktivierten Java-Agent erstellt, und anschließend stellen Sie heute gegen 8:10 Uhr eine JAR-Datei für diese Anwendung bereit. Heute gegen 8:30 Uhr versuchen Sie eine Blau-Grün-Bereitstellung mit einer anderen JAR-Datei. Derzeit verfügen Sie über zwei Bereitstellungen für diese Anwendung. Nach einer Pause heute gegen 11:00 Uhr möchten Sie einige Daten aus Application Insights überprüfen. Folgendes wird angezeigt:
- Drei Instanzen in der Anwendungsübersicht mit Zeitbereichen in den letzten 24 Stunden sowie Fehler, Leistung und Metriken.
- Zwei Instanzen in der Anwendungsübersicht mit Zeitbereichen in der letzten Stunde sowie Fehler, Leistung und Metriken.
- Zwei Instanzen in Livemetriken.