Verwendung von Application Insights Java In-Process Agent in Azure Spring Apps
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 erklärt, wie Sie Anwendungen mithilfe des Application Insights Java-Agenten in Azure Spring Apps überwachen können.
Mit diesem Feature können Sie die folgenden Aktionen ausführen:
- 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:
Klicken Sie im linken Navigationsbereich auf Application Insights, um die Seite Übersicht in 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.
Klicken Sie im linken Navigationsbereich auf Leistung, um die Leistungsdaten für die Vorgänge aller Anwendungen, Abhängigkeiten und Rollen anzuzeigen.
Wählen Sie im linken Navigationsbereich Fehler aus, um unerwartete Fehler oder Ausnahmen in Ihren Anwendungen anzuzeigen.
Klicken Sie im linken Navigationsbereich auf Metriken, und wählen Sie den gewünschten Namespace aus. Es werden ggf. sowohl Spring Boot-Metriken als auch benutzerdefinierte Metriken angezeigt.
Wählen Sie im linken Navigationsbereich Live Metrics, um die Echtzeitmetriken für verschiedene Dimensionen anzuzeigen.
Klicken Sie im linken Navigationsbereich auf Verfügbarkeit, um die Verfügbarkeit und Reaktionsfähigkeit von Web-Apps zu überwachen, indem Sie Verfügbarkeitstests in Application Insights erstellen.
Wählen Sie im linken Navigationsbereich Protokolle aus, um die Protokolle aller Anwendungen oder die Protokolle einer 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 dieselbe Application Insights-Instanz nicht in verschiedenen Azure Spring Apps-Instanzen, andernfalls werden gemischte Daten angezeigt.
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 Buildservice 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>
Application Insights aktualisieren
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-Tarif und enthält Anweisungen, die den vorherigen Abschnitt ergänzen.
Der Azure Enterprise-Tarif verwendet Buildpackbindungen, um Azure Application Insights in den Typ ApplicationInsights
zu integrieren.
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> \
Automation
In den folgenden Abschnitten wird beschrieben, wie Sie Ihre Bereitstellung mithilfe von Azure Resource Manager-Vorlagen (ARM-Vorlagen) oder Terraform automatisieren können.
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",
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"name": "customize this",
"apiVersion": "2020-07-01",
"location": "[resourceGroup().location]",
"resources": [
{
"type": "monitoringSettings",
"apiVersion": "2020-11-01-preview",
"name": "default",
"properties": {
"appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
"appInsightsSamplingRate": 88.0
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', 'customize this')]"
]
}
],
"properties": {}
}
]
}
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 für die Automatisierung im Enterprise-Tarif steht noch aus. Die Dokumentation wird ergänzt, sobald sie verfügbar ist.
Update/Upgrade des Java-Agents
Der Java-Agent wird regelmäßig mit dem JDK aktualisiert/aufgerüstet, was sich auf die folgenden Szenarien auswirken kann.
Hinweis
Ein Update/Upgrade der JDK-Version erfolgt vierteljährlich.
- Vorhandene Anwendungen, die den Java-Agent vor dem Update/Upgrade verwenden, sind davon nicht betroffen.
- Anwendungen, die nach dem Update/Upgrade erstellt werden, nutzen die neue Version des Java-Agents.
- Vorhandene Anwendungen, die den Java-Agent zuvor nicht verwendet haben, erfordern einen Neustart oder eine erneute Bereitstellung, um die neue Version des Java-Agents zu nutzen.
Ein Update bzw. Upgrade des Java-Agents wird ausgeführt, wenn das Buildpack aktualisiert wird.
Hot-Loading der Java-Agent-Konfiguration
Azure Spring Apps ermöglicht einen Hot-Loading-Mechanismus, um die Einstellungen der Agent-Konfiguration ohne Neustart von Anwendungen anzupassen.
Hinweis
Der Heißlademechanismus hat eine Verzögerung in Minuten.
- Wenn der Java-Agent zuvor aktiviert wurde, erfordern Änderungen an der Application Insights-Instanz und/oder SamplingRate KEINEN Neustart von Anwendungen.
- Wenn Sie den Java-Agent aktivieren, müssen Sie Anwendungen neu starten.
- Wenn Sie den Java-Agent deaktivieren, beenden die Anwendungen das Senden aller Überwachungsdaten nach einer Verzögerung von Minuten. 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/Rolle/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.