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.

    Screenshot of Azure portal Application Insights with Application map page showing.

  • 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.

    Screenshot of Azure portal Application Insights with Performance page showing.

  • Wählen Sie im linken Navigationsbereich Fehler aus, um unerwartete Fehler oder Ausnahmen in Ihren Anwendungen anzuzeigen.

    Screenshot of Azure portal Application Insights with Failures page showing.

  • 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.

    Screenshot of Azure portal Application Insights with Metrics page showing.

  • Wählen Sie im linken Navigationsbereich Live Metrics, um die Echtzeitmetriken für verschiedene Dimensionen anzuzeigen.

    Screenshot of Azure portal Application Insights with Live Metrics page showing.

  • 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.

    Screenshot of Azure portal Application Insights with Availability page showing.

  • 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.

    Screenshot of Azure portal Application Insights with Logs page showing.

Verwalten von Application Insights mithilfe des Azure-Portals

Aktivieren Sie den Java In-Process Agent mit dem folgenden Verfahren.

  1. Navigieren Sie zur Seite Dienst | Übersicht Ihrer Dienstinstanz, und wählen Sie dann im Abschnitt Überwachung die Option Application Insights aus.

  2. Klicken Sie auf Application Insights aktivieren, um Application Insights in Azure Spring Apps zu aktivieren.

  3. Wählen Sie eine vorhandene Application Insights-Instanz aus, oder erstellen Sie eine neue.

  4. Wenn Anwendungseinblicke aktiviert ist, können Sie eine optionale Abtastrate konfigurieren (Standard 10,0%).

    Screenshot of Azure portal Azure Spring Apps instance with Application Insights page showing and 'Enable Application Insights' checkbox highlighted.

  5. 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

  1. Wählen Sie Application Insights.

  2. Aktivieren Sie Application Insights, indem Sie Bindung bearbeiten oder den Link Ungebunden auswählen.

    Screenshot of Azure portal Azure Spring Apps instance with Application Insights page showing and drop-down menu visible with 'Edit binding' option.

  3. Bearbeiten Sie Application Insights oder Stichprobenhäufigkeit, und wählen Sie dann Speichern aus.

Deaktivieren von Application Insights

  1. Wählen Sie Application Insights.

  2. Wählen Sie Bindung aufheben aus, um Application Insights zu deaktivieren.

    Screenshot of Azure portal Azure Spring Apps instance with Application Insights page showing and drop-down menu visible with 'Unbind binding' option.

Ändern von Application Insights-Einstellungen

Wählen Sie den Namen in der Spalte Application Insights aus, um den Abschnitt „Application Insights“ zu öffnen.

Screenshot of Azure portal Azure Spring Apps instance with Application Insights page showing.

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:

  1. Wählen Sie Buildservice aus.
  2. Wählen Sie Ihren Generator aus.
  3. 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.

  1. 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.

    Screenshot of Azure portal 'Edit bindings for default builder' pane.

  2. Bearbeiten Sie die Bindungseinstellungen, und wählen Sie dann Speichern aus.

    Screenshot of Azure portal 'Edit binding' pane.

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.

Nächste Schritte