Anwendungsüberwachung für Azure App Service: Übersicht

Das Aktivieren der Überwachung für Ihre ASP.NET-, ASP.NET Core-, Java- und Node.js-basierten Webanwendungen unter Azure App Service ist jetzt einfacher als je zuvor. Bislang mussten Sie Ihre App manuell instrumentieren. Die neueste Erweiterung/der neueste Agent ist nun jedoch standardmäßig in das App Service-Image integriert.

Aktivieren von Application Insights

Es gibt zwei Methoden, um die Überwachung für in App Service gehostete Anwendungen zu aktivieren:

  • Überwachung von Anwendungen mit automatischer Instrumentierung (ApplicationInsightsAgent).

    Diese Methode ist am einfachsten zu aktivieren, und es sind keine Codeänderung oder erweiterte Konfigurationen erforderlich. Sie wird häufig als „Laufzeitüberwachung“ bezeichnet. Für App Service empfehlen wir, mindestens diese Überwachungsebene zu aktivieren. Sie können dann auf der Grundlage Ihres spezifischen Szenarios bewerten, ob eine erweiterte Überwachung durch manuelle Instrumentierung erforderlich ist.

    Wenn Sie die automatische Instrumentierung aktivieren, wird Application Insights mit einer Standardeinstellung aktiviert (dies beinhaltet auch die Stichprobenerstellung). Auch wenn Sie in Azure AppInsights: Sampling: Alle Daten 100 % festlegen, wird diese Einstellung ignoriert.

    Eine vollständige Liste der unterstützten Szenarien für die automatische Instrumentierung finden Sie unter Unterstützte Umgebungen, Sprachen und Ressourcenanbieter.

    Folgende Plattformen werden für die Überwachung mit automatischer Instrumentierung unterstützt:

  • Manuelles Instrumentieren der Anwendung über Code durch Installieren des Application Insights SDK.

    Dieser Ansatz ist viel anpassungsfähiger, erfordert aber Folgendes: SDK für .NET Core, .NET, Node.js, Python und einen eigenständigen Agent für Java. Diese Methode bedeutet auch, dass Sie die Updates auf die neueste Version der Pakete selbst verwalten müssen.

    Wenn Sie benutzerdefinierte API-Aufrufe zum Nachverfolgen von Ereignissen/Abhängigkeiten ausführen müssen, die bei der Überwachung mit automatischer Instrumentierung nicht standardmäßig erfasst werden, müssen Sie diese Methode verwenden. Weitere Informationen finden Sie unter Application Insights-API für benutzerdefinierte Ereignisse und Metriken.

Wenn sowohl die Überwachung mit automatischer Instrumentierung als auch die manuelle SDK-basierte Instrumentierung erkannt wird, werden in .NET nur die Einstellungen für die manuelle Instrumentierung berücksichtigt, während in Java nur die automatische Instrumentierung die Telemetriedaten sendet. Durch diese Methode wird verhindert, dass doppelte Daten gesendet werden.

Hinweis

Momentaufnahmendebugger und Profiler sind nur in .NET und .NET Core verfügbar.

Versionshinweise

Dieser Abschnitt enthält die Versionshinweise für die Erweiterung für Azure-Web-Apps für Laufzeitinstrumentierung mit Application Insights.

Wechseln Sie zu https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights, um herauszufinden, welche Version der Erweiterung Sie zurzeit verwenden.

Versionshinweise

2.8.44

2.8.43

  • Separates .NET/.NET Core-, Java- und Node.js-Paket für verschiedene Windows-Websiteerweiterungen für App Service.

2.8.42

  • JAVA-Erweiterung: Ein Upgrade zu Java Agent 3.2.0 von 2.5.1.
  • Node.js-Erweiterung: Das AI SDK wurde von 2.1.7 auf 2.1.8 aktualisiert. Unterstützung für benutzerseitig und systemseitig zugewiesene von Microsoft Entra verwaltete Identitäten wurde hinzugefügt.
  • .NET Core: Eigenständige Bereitstellungen und .NET 6.0-Unterstützung mit .NET Startup Hook hinzugefügt.

2.8.41

  • Node.js-Erweiterung: Das AI SDK wurde von 2.1.3 auf 2.1.7 aktualisiert.
  • .NET Core: Nicht mehr unterstützte Versionen (2.1) wurden entfernt. Unterstützt werden die Versionen 3.1 und 5.0.

2.8.40

  • Java-Erweiterung: Ein Upgrade von 3.0.2 auf Java Agent 3.1.1 (GA) wurde durchgeführt.
  • Node.js-Erweiterung: Das AI SDK wurde von 1.8.8 auf 2.1.3 aktualisiert.

2.8.39

  • Unterstützung für .NET Core 5.0 hinzugefügt.

2.8.38

  • Java-Erweiterung: Ein Upgrade von 2.5.1 auf Java Agent 3.0.2 (GA) wurde durchgeführt.
  • Node.js-Erweiterung: Das AI SDK wurde von 1.8.7 auf 1.8.8 aktualisiert.
  • .NET Core: Nicht mehr unterstützte Versionen (2.0, 2.2, 3.0) wurden entfernt. Unterstützt werden die Versionen 2.1 und 3.1.

2.8.37

  • AppSvc Windows-Erweiterung: .NET Core kann nun mit jeder Version von „System.Diagnostics.DiagnosticSource.dll“ verwendet werden.

2.8.36

  • AppSvc Windows-Erweiterung: Interoperabilität mit AI SDK in .NET Core wurde ermöglicht.

2.8.35

  • AppSvc Windows-Erweiterung: Unterstützung für .NET Core 3.1 wurde hinzugefügt.

2.8.33

  • .NET-, .NET Core-, Java- und Node.js-Agent und die Windows-Erweiterung: Unterstützung für Sovereign Clouds. Verbindungszeichenfolgen können zum Senden von Daten an Sovereign Clouds verwendet werden.

2.8.31

  • Der ASP.NET Core-Agent hat ein Problem mit dem Application Insights SDK behoben. Wenn durch die Runtime die falsche Version von System.Diagnostics.DiagnosticSource.dll geladen wurde, sorgt die codelose Erweiterung nicht mehr für einen Absturz der Anwendung und bricht den Vorgang ab. Um das Problem zu beheben, sollten Kunden „System.Diagnostics.DiagnosticSource.dll“ aus dem Ordner „bin“ löschen oder durch Festlegen von „ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24“ die ältere Version der Erweiterung verwenden. Wird dies nicht durchgeführt, ist die Anwendungsüberwachung nicht aktiviert.

2.8.26

  • ASP.NET Core-Agent: Ein Problem im Zusammenhang mit dem aktualisierten Application Insights-SDK wurde behoben. Der Agent versucht nicht, „AiHostingStartup“ zu laden, wenn die ApplicationInsights.dll bereits im Ordner „bin“ vorhanden ist. Dies löst Probleme im Zusammenhang mit der Reflexion über „Assembly<AiHostingStartup>.GetTypes()“.
  • Bekannte Probleme: Die Ausnahme System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' (System.IO.FileLoadException: Die Datei oder Assembly „System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51“ konnte nicht geladen werden.) kann ausgelöst werden, wenn eine andere Version von DiagnosticSource.dll geladen wird. Dieses Problem konnte z. B. auftreten, wenn „System.Diagnostics.DiagnosticSource.dll“ im Ordner „publish“ vorhanden ist. Verwenden Sie zur Risikominderung die vorherige Version der Erweiterung, indem Sie die App-Einstellungen in App Service wie folgt festlegen: ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24.

2.8.24

  • Neu paketierte Version von 2.8.21

2.8.23

  • Unterstützung für codelose Überwachung für ASP.NET Core 3.0 wurde hinzugefügt.
  • Das ASP.NET Core-SDK wurde für die Runtimeversionen 2.1, 2.2 und 3.0 auf 2.8.0 aktualisiert. .NET Core 2.0-Apps verwenden weiterhin Version 2.1.1 des SDKs.

2.8.14

  • Die Version des ASP.NET Core-SDK wurde für .NET Core 2.1- und .NET Core 2.2-Apps von 2.3.0 auf die neueste Version aktualisiert (2.6.1). .NET Core 2.0-Apps verwenden weiterhin Version 2.1.1 des SDKs.

2.8.12

  • Unterstützung für ASP.NET Core 2.2-Apps

  • Ein Fehler in der ASP.NET Core-Erweiterung wurde behoben, der ein Einfügen des SDK verursacht hat, auch wenn die Anwendung bereits über das SDK verfügte. Bei 2.1- und 2.2-Apps bewirkt das Vorhandensein von ApplicationInsights.dll im Anwendungsordner nun, dass die Erweiterung den Vorgang abbricht. Bei 2.0-Apps bricht die Erweiterung den Vorgang nur dann ab, wenn ApplicationInsights durch Aufrufen von UseApplicationInsights() aktiviert wird.

  • Das Problem einer unvollständigen HTML-Antwort für ASP.NET Core-Apps wurde dauerhaft behoben. Diese Problembehebung wurde nun auch auf .NET Core 2.2-Apps erweitert.

  • Die Unterstützung der Deaktivierung von JavaScript-Einfügung für ASP.NET Core-Apps (APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting) wurde hinzugefügt. In ASP.NET Core ist JavaScript-Einfügung standardmäßig aktiviert, wenn sie nicht explizit deaktiviert wird. (Diese Standardeinstellung wird vorgenommen, um das aktuelle Verhalten beizubehalten.)

  • Ein Fehler in der ASP.NET Core-Erweiterung wurde behoben, der ein Einfügen verursacht hat, auch wenn kein Instrumentierungsschlüssel vorhanden war.

  • Ein Fehler in der SDK-Versionspräfixlogik wurde behoben, der zu einer falschen SDK-Version in den Telemetriedaten geführt hat.

  • Ein SDK-Versionspräfix für ASP.NET Core-Apps wurde hinzugefügt, um zu ermitteln, wie die Telemetriedaten erfasst wurden.

  • Ein Fehler auf der Seite „SCM – ApplicationInsights“ wurde behoben, sodass nun die Version der vorinstallierten Erweiterung korrekt angezeigt wird.

2.8.10

  • Das Problem einer unvollständigen HTML-Antwort für ASP.NET Core-Apps wurde behoben.

Häufig gestellte Fragen

Dieser Abschnitt enthält Antworten auf häufig gestellte Fragen.

Welche Änderungen nimmt Application Insights in meinem Projekt vor?

Die Details hängen von der Art des Projekts ab. Für eine Webanwendung:

  • Fügen Sie folgende Dateien zu Ihrem Projekt hinzu:
    • ApplicationInsights.config
    • ai.js
  • Diese NuGet-Pakete werden installiert:
    • Application Insights-API: Die Kern-API
    • Application Insights-API für Webanwendungen: Zum Senden von Telemetriedaten vom Server
    • Application Insights-API für JavaScript-Anwendungen: Zum Senden von Telemetriedaten vom Client
  • Die Pakete umfassen folgende Assemblys:
    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Fügt Elemente ein in:
    • Web.config
    • packages.config
  • (Nur für neue Projekte fügen Sie Application Insights zu einem vorhandenen Projekt manuell hinzu.) Fügen Sie Codeausschnitte in den Client- und Servercode ein, um diese mit der Application Insights-Ressourcen-ID zu initialisieren. Beispielsweise wird in einer MVC-App Code auf der Hauptseite Views/Shared/Layout.cshtml eingefügt.

Nächste Schritte

Erfahren Sie, wie Sie die automatische Anwendungsüberwachung für Ihre .NET Core, .NET, Java, Nodejs oder Python-Anwendung, die auf App Service läuft, aktivieren.