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.

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.

    Screenshot des Azure-Portals, der die Application Insights-Anwendungszuordnungs-Seite zeigt.

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

    Screenshot des Azure-Portals, der die Application Insights-Leistungs-Seite zeigt.

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

    Screenshot des Azure-Portals, der die Application Insights-Fehler-Seite zeigt.

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

    Screenshot des Azure-Portals, der die Application Insights-Metriken-Seite zeigt.

  • Wählen Sie im linken Navigationsbereich die Option Livemetriken aus, um die Echtzeitmetriken für verschiedene Dimensionen anzuzeigen.

    Screenshot des Azure-Portals, der die Application Insights-Live-Metriken-Seite zeigt.

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

    Screenshot des Azure-Portals, der die Application Insights-Verfügbarkeit-Seite zeigt.

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

    Screenshot des Azure-Portals, der die Application Insights-Protokolle-Seite zeigt.

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 des Azure-Portals, der die Application Insights-Seite für Azure Spring Apps mit hervorgehobenem Kontrollkästchen „Application Insights aktivieren“ zeigt.

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

  1. Wählen Sie Application Insights.

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

    Screenshot des Azure-Portals Azure, der die Azure Spring Apps-Instanz mit der Application Insights-Seite und der Option „Bindung bearbeiten“ zeigt.

  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 des Azure-Portal, der die Azure Spring Apps-Instanz mit der Application Insights-Seite und der Option „Bindung aufheben“ zeigt.

Ändern von Application Insights-Einstellungen

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

Screenshot des Azure-Portals, der die Azure Spring Apps-Instanz mit der Application Insights-Seite zeigt.

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 Build Service 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 des Azure-Portals, der „Bindungen bearbeiten“ für den Standard-Generator-Bereich zeigt.

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

    Screenshot des Azure-Portals, der den „Bindung bearbeiten“-Bereich zeigt.

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.

Nächste Schritte