Anwendungsüberwachung für Azure App Service und ASP.NET Core
Die Aktivierung der Überwachung Ihrer ASP.NET Core-basierten Webanwendungen, die in Azure App Service ausgeführt werden, ist jetzt einfacher denn je. Bislang mussten Sie Ihre App manuell instrumentieren. Die neueste Erweiterung/der neueste Agent ist nun jedoch standardmäßig in das App Service-Image integriert. In diesem Artikel wird das Aktivieren der Azure Monitor Application Insights-Überwachung beschrieben. Er enthält auch einen vorläufigen Leitfaden für die Automatisierung des Prozesses bei umfangreichen Bereitstellungen.
Hinweis
Am 31. März 2025 wird der Support für die auf Instrumentierungsschlüsseln basierende Erfassung eingestellt. Die Erfassung von Instrumentierungsschlüsseln funktioniert zwar weiterhin, wir stellen jedoch keine Updates und keinen Support mehr für das Feature bereit. Wechseln Sie zu Verbindungszeichenfolgen, damit Sie neue Funktionen nutzen können.
Aktivieren der Überwachung mit automatischer Instrumentierung
Eine vollständige Liste der unterstützten Szenarien für die automatische Instrumentierung finden Sie unter Unterstützte Umgebungen, Sprachen und Ressourcenanbieter.
Wichtig
Für die automatische Instrumentierung unter Windows wird ausschließlich .NET Core LTS (Long Term Support) unterstützt.
Das Kürzen eigenständiger Bereitstellungen wird nicht unterstützt. Verwenden Sie stattdessen die manuelle Instrumentierung über Code.
Hinweis
Die automatische Instrumentierung wurde vor Oktober 2021 als „Anfügung ohne Code“ bezeichnet.
Lesen Sie den folgenden Abschnitt zum Aktivieren der Überwachung, um mit der Einrichtung von Application Insights für Ihre App Service-Ressource zu beginnen.
Aktivieren der Überwachung
Wählen Sie im linken Bereich für Ihre App Service-Instanz Application Insights aus. Wählen Sie anschließend Aktivieren aus.
Erstellen Sie eine neue Ressource, oder wählen Sie eine vorhandene Application Insights-Ressource für diese Anwendung aus.
Hinweis
Wenn Sie OK auswählen, um die neue Ressource zu erstellen, werden Sie aufgefordert, die Überwachungseinstellungen anzuwenden. Wenn Sie Weiter auswählen, wird Ihre neue Application Insights-Ressource mit Ihrer App Service-Instanz verknüpft. Ihre App Service-Instanz wird dann neu gestartet.
Nach Angabe der zu verwendenden Ressource können Sie plattformspezifisch auswählen, wie Application Insights Daten für Ihre Anwendung erfassen soll. Die ASP.NET Core-Sammlungsoptionen lauten Empfohlen oder Deaktiviert.
Aktivieren der clientseitigen Überwachung
Die clientseitige Überwachung für ASP.NET Core-Apps ist standardmäßig aktiviert mit der Sammlungseinstellung Empfohlen, unabhängig davon, ob die App-Einstellung APPINSIGHTS_JAVASCRIPT_ENABLED
vorhanden ist.
Zum Deaktivieren der clientseitigen Überwachung gehen Sie folgendermaßen vor:
Wählen Sie Einstellungen>Konfiguration aus.
Erstellen Sie unter Anwendungseinstellungen eine Neue Anwendungseinstellung mit den folgenden Informationen:
- Name:
APPINSIGHTS_JAVASCRIPT_ENABLED
- Wert:
false
- Name:
Speichern Sie die Einstellungen. Starten Sie die App neu.
Automatisieren der Überwachung
Um die Sammlung von Telemetriedaten mit Application Insights zu aktivieren, müssen Sie nur die Anwendungseinstellungen festlegen.
Definitionen von Anwendungseinstellungen
Name der App-Einstellung | Definition | Wert |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Die Haupterweiterung, die die Laufzeitüberwachung steuert. | ~2 für Windows oder ~3 für Linux |
XDT_MicrosoftApplicationInsights_Mode | Im Standardmodus werden nur wichtige Funktionen aktiviert, um eine optimale Leistung zu gewährleisten. | disabled oder recommended . |
XDT_MicrosoftApplicationInsights_PreemptSdk | Diese Einstellung ist nur für ASP.NET Core-Apps geeignet. Sie aktiviert die Interoperabilität mit dem Application Insights SDK. Sie lädt die Erweiterung parallel zum SDK und verwendet sie zum Senden von Telemetriedaten. (Deaktiviert das Application Insights SDK.) | 1 |
App Service-Anwendungseinstellungen mit Azure Resource Manager
Sie können die Azure App Service-Anwendungseinstellungen mit Azure Resource Manager-Vorlagen verwalten und konfigurieren. Sie können diese Methode wählen, wenn Sie neue App Service-Ressourcen mit Resource Manager-Automatisierung bereitstellen oder die Einstellungen vorhandener Ressourcen ändern.
Die grundlegende Struktur der JSON-Anwendungseinstellungen für eine App Service-Ressource sieht folgendermaßen aus:
"resources": [
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
],
"tags": {
"displayName": "Application Insights Settings"
},
"properties": {
"key1": "value1",
"key2": "value2"
}
}
]
Ein Beispiel für eine Resource Manager-Vorlage mit Anwendungseinstellungen für Application Insights finden Sie in dieser Vorlage. Sehen Sie sich insbesondere den in Zeile 238 beginnenden Abschnitt an.
Automatisieren der Erstellung einer Application Insights-Ressource und Verknüpfen Ihrer neu erstellten App Service-Ressource
Um eine Resource Manager-Vorlage mit den Standardeinstellungen für Application Insights zu erstellen, beginnen Sie den Prozess so, als ob Sie eine neue Web-App mit aktivierten Application Insights erstellen würden.
Erstellen Sie eine neue App Service-Ressource mit den gewünschten Web-App-Informationen. Aktivieren Sie Application Insights auf der Registerkarte Überwachung.
Klicken Sie auf Überprüfen + erstellen. Wählen Sie dann Vorlage für Automatisierung herunterladen aus.
Mit dieser Option wird die aktuellste Resource Manager-Vorlage mit allen erforderlichen Einstellungen generiert.
Ersetzen Sie im folgenden Beispiel alle Instanzen von AppMonitoredSite
durch Ihren Websitenamen:
Hinweis
Wenn Sie Windows verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION
auf ~2
fest. Wenn Sie Linux verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION
auf ~3
fest.
{
"resources": [
{
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
},
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
},
{
"name": "ApplicationInsightsAgent_EXTENSION_VERSION",
"value": "~2"
}
]
},
"name": "[parameters('name')]",
"serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"dependsOn": [
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"microsoft.insights/components/AppMonitoredSite"
],
"apiVersion": "2016-03-01",
"location": "[parameters('location')]"
},
{
"apiVersion": "2016-09-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"properties": {
"name": "[parameters('hostingPlanName')]",
"workerSizeId": "[parameters('workerSize')]",
"numberOfWorkers": "1",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
},
{
"apiVersion": "2015-05-01",
"name": "AppMonitoredSite",
"type": "microsoft.insights/components",
"location": "West US 2",
"properties": {
"ApplicationId": "[parameters('name')]",
"Request_Source": "IbizaWebAppExtensionCreate"
}
}
],
"parameters": {
"name": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"hostingEnvironment": {
"type": "string"
},
"location": {
"type": "string"
},
"sku": {
"type": "string"
},
"skuCode": {
"type": "string"
},
"workerSize": {
"type": "string"
},
"serverFarmResourceGroup": {
"type": "string"
},
"subscriptionId": {
"type": "string"
}
},
"$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0"
}
Aktivieren über PowerShell
Zum Aktivieren der Anwendungsüberwachung über PowerShell müssen nur die zugrunde liegenden Anwendungseinstellungen geändert werden. Das folgende Beispiel ermöglicht die Anwendungsüberwachung für eine Website namens AppMonitoredSite
in der Ressourcengruppe AppMonitoredRG
. Damit werden die Daten konfiguriert, die an den Instrumentierungsschlüssel 012345678-abcd-ef01-2345-6789abcd
gesendet werden sollen.
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Hinweis
Wenn Sie Windows verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION auf ~2
fest. Wenn Sie Linux verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION auf ~3
fest.
$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop
Upgrade von Überwachungserweiterung/-Agent: .NET
Führen Sie zum Aktualisieren der Überwachungserweiterung/des Agents die Schritte in den nächsten Abschnitten aus.
Upgrade von Versionen 2.8.9 und höher
Das Upgrade von Version 2.8.9 erfolgt automatisch ohne zusätzliche Aktionen. Die neuen Überwachungsbits werden im Hintergrund an den Dienst der Zielanwendung übermittelt und beim Neustart der Anwendung abgeholt.
Informationen zur aktuell verwendeten Version der Erweiterung finden Sie unter https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Upgrade von Version 1.0.0 – 2.6.5
Ab Version 2.8.9 wird die vorinstallierte Websiteerweiterung verwendet. Bei einer früheren Version können Sie eine Aktualisierung auf zwei Arten vornehmen:
Upgrade durch Aktivieren über das Portal: Auch wenn Sie die Application Insights-Erweiterung für App Service installiert haben, wird auf der Benutzeroberfläche nur die Schaltfläche Aktivieren angezeigt. Im Hintergrund wird die alte private Websiteerweiterung entfernt.
-
- Legen Sie die Anwendungseinstellungen so fest, dass die vorinstallierte Websiteerweiterung
ApplicationInsightsAgent
aktiviert wird. Weitere Informationen finden Sie unter Aktivieren über PowerShell. - Entfernen Sie die private Websiteerweiterung mit dem Namen Application Insights-Erweiterung für Azure App Service manuell.
- Legen Sie die Anwendungseinstellungen so fest, dass die vorinstallierte Websiteerweiterung
Wenn das Upgrade von einer Version vor 2.5.1 erfolgt, vergewissern Sie sich, dass die ApplicationInsights
-DLL-Dateien aus dem Ordner „bin“ der Anwendung entfernt werden. Weitere Informationen finden Sie unter Schritte zur Problembehandlung.
Problembehandlung
Hinweis
Wenn Sie eine Web-App mit den ASP.NET Core
-Runtimes in App Service erstellen, wird eine einzelne statische HTML-Seite als Startwebsite bereitgestellt. Es wird nicht empfohlen, ein Problem mit der Standardvorlage zu behandeln. Stellen Sie vor der Problembehandlung eine Anwendung bereit.
Im Folgenden finden Sie eine Schrittanleitung zur Problembehandlung für die erweiterungs-/Agent-basierte Überwachung von auf ASP.NET Core basierenden Anwendungen, die in App Service ausgeführt werden.
Überprüfen Sie, ob die App-Einstellung
ApplicationInsightsAgent_EXTENSION_VERSION
auf den Wert~2
festgelegt ist.Navigieren Sie zu
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Vergewissern Sie sich, dass der Status der Application Insights-Erweiterung den Wert
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
hat.Wenn sie nicht läuft, befolgen Sie die Anweisungen im Abschnitt Aktivieren der Application Insights-Überwachung.
Stellen Sie sicher, dass die Statusquelle vorhanden ist und folgendermaßen aussieht:
Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json
.Wenn ein ähnlicher Wert nicht vorhanden ist, bedeutet dies, dass die Anwendung derzeit nicht ausgeführt oder nicht unterstützt wird. Um sicherzustellen, dass die Anwendung ausgeführt wird, rufen Sie die Anwendungs-URL/Anwendungsendpunkte manuell auf, wodurch die Runtimeinformationen verfügbar werden.
Vergewissern Sie sich, dass IKeyExists den Wert
True
aufweist. Wenn der WertFalse
lautet, fügen Sie den AnwendungseinstellungenAPPINSIGHTS_INSTRUMENTATIONKEY
undAPPLICATIONINSIGHTS_CONNECTION_STRING
mit Ihrer ikey-GUID hinzu.Falls Ihre Anwendung auf ein Application Insights-Paket verweist, kann es sein, dass die Aktivierung der App Service-Integration nicht wirksam ist und die Daten nicht in Application Insights verfügbar sind. Ein Beispiel wäre, wenn Sie die App zuvor mit dem ASP.NET Core SDK instrumentiert haben bzw. dies versucht haben. Um das Problem zu beheben, aktivieren Sie im Portal die Option Interoperabel mit Application Insights SDK. Daraufhin sollten Daten in Application Insights angezeigt werden.
Wichtig
Diese Funktion befindet sich in der Vorschauphase.
Die Daten werden jetzt mithilfe eines codelosen Ansatzes gesendet, auch wenn das Application Insights SDK ursprünglich verwendet wurde (oder versucht wurde, es zu verwenden).
Wichtig
Wenn die Anwendung das Application Insights SDK zum Senden von Telemetriedaten verwendet hat, werden die Telemetriedaten deaktiviert. Anders ausgedrückt: Benutzerdefinierte Telemetriedaten (z. B.
Track*()
-Methoden) und benutzerdefinierte Einstellungen (z. B. Stichprobenentnahme) werden deaktiviert.
Die mit Web-Apps bereitgestellte Standardwebsite unterstützt keine automatische clientseitige Überwachung
Wenn Sie eine Web-App mit den ASP.NET Core-Runtimes in App Service erstellen, wird eine einzelne statische HTML-Seite als Startwebsite bereitgestellt. Die statische Webseite lädt auch ein ASP.NET-verwaltetes Webpart in IIS. Dieses Verhalten ermöglicht das Testen der serverseitigen Überwachung ohne Code, unterstützt jedoch nicht die automatische clientseitige Überwachung.
Wenn Sie die server- und clientseitige Überwachung ohne Code für ASP.NET Core in einer App Service-Web-App testen möchten, sollten Sie die offiziellen Leitfäden zum Erstellen einer ASP.NET Core-Web-App verwenden. Verwenden Sie dann die Anweisungen im aktuellen Artikel, um die Überwachung zu aktivieren.
Was ist der Unterschied zwischen Standardmetriken von Application Insights und Azure App Service-Metriken?
Application Insights sammelt Telemetriedaten für die Anforderungen, die bis zur Anwendung gelangt sind. Wenn der Fehler in WebApps/WebServer auftritt und die Anforderung die Benutzeranwendung nicht erreicht hat, hat Application Insights keine Telemetriedaten dazu.
Die von Application Insights berechnete Dauer für serverresponsetime
stimmt nicht unbedingt mit der von Web-Apps beobachteten Serverantwortzeit überein. Dies liegt daran, dass Application Insights nur die Dauer zählt, bis die Anforderung tatsächlich die Benutzeranwendung erreicht. Wenn die Anforderung in WebServer hängen bleibt oder in die Warteschlange gestellt wird, ist diese Wartezeit in den Web-App-Metriken enthalten, in den Application Insights-Metriken jedoch nicht.
Testen der Konnektivität zwischen Ihrem Anwendungshost und dem Erfassungsdienst
Application Insights SDKs und -Agents senden Telemetriedaten, die als REST-Aufrufe unserer Erfassungsendpunkte erfasst werden sollen. Sie können die Konnektivität Ihres Webservers oder Anwendungshostcomputers mit den Endpunkten des Erfassungsdiensts testen, indem Sie unformatierte REST-Clients über PowerShell- oder cURL-Befehle verwenden. Weitere Informationen finden Sie unter Problembehandlung bei fehlender Anwendungstelemetrie in Azure Monitor Application Insights.
PHP und WordPress werden nicht unterstützt.
PHP- und WordPress-Sites werden nicht unterstützt. Zurzeit ist kein offiziell unterstützter SDK/Agent für die serverseitige Überwachung dieser Workloads verfügbar. Das manuelle Instrumentieren clientseitiger Transaktionen auf einer PHP- oder WordPress-Website durch Hinzufügen von clientseitigem JavaScript-Code zu Ihren Webseiten kann mithilfe des JavaScript SDK erreicht werden.
Die folgende Tabelle enthält Erläuterungen der Bedeutung dieser Werte, der zugrunde liegenden Ursachen und der empfohlenen Problembehebungen.
Problemwert | Erklärung | Fix |
---|---|---|
AppAlreadyInstrumented:true |
Dieser Wert zeigt an, dass die Erweiterung erkannt hat, dass ein Teil des SDK bereits in der Anwendung vorhanden ist, und der Vorgang wird abgebrochen. Dies kann auf einen Verweis auf Microsoft.ApplicationInsights.AspNetCore oder Microsoft.ApplicationInsights zurückzuführen sein. |
Entfernen Sie die Verweise. Einige dieser Verweise werden standardmäßig aus bestimmten Visual Studio-Vorlagen hinzugefügt. Ältere Visual Studio-Versionen verweisen auf Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Dieser Wert kann auch durch das Vorhandensein der Microsoft.ApplicationsInsights -DLL im App-Ordner aus einer früheren Bereitstellung verursacht werden. |
Bereinigen Sie den App-Ordner, um sicherzustellen, dass diese DLLs entfernt werden. Überprüfen Sie sowohl das Verzeichnis „bin“ Ihrer lokalen App als auch das Verzeichnis wwwroot im App Service. (Zum Überprüfen des Verzeichnisses „wwwroot“ Ihrer App Service-Web-App wählen Sie Erweiterte Tools (Kudu) >Debugging-Konsole >CMD >home\site\wwwroot aus.) |
IKeyExists:false |
Dieser Wert gibt an, dass der Instrumentierungsschlüssel nicht in der App-Einstellung APPINSIGHTS_INSTRUMENTATIONKEY vorhanden ist. Mögliche Ursachen sind das versehentliche Entfernen der Werte, oder es wurde vergessen, die Werte im Automatisierungsskript festzulegen. |
Stellen Sie sicher, dass die Einstellung in den App Service-Anwendungseinstellungen vorhanden ist. |
Versionshinweise
Informationen zu den neuesten Updates und Fehlerbehebungen finden Sie in den Versionshinweisen.
Nächste Schritte
- Ausführen des Profilers in Ihrer Live-App
- Überwachen von Azure Functions mit Application Insights.
- Ermöglichen des Sendens von Azure-Diagnosedaten an Application Insights
- Überwachen von Dienstintegritätsmetriken , um sicherzustellen, dass Ihr Dienst verfügbar und reaktionsfähig ist
- Empfangen von Warnbenachrichtigungen , wenn ein Vorgangsereignis auftritt oder Metriken einen Schwellenwert überschreiten.
- Verwenden von Application Insights für JavaScript-Apps und -Webseiten, um Clienttelemetriedaten von den Browsern zu erhalten, mit denen auf eine Webseite zugegriffen wird
- Verfügbarkeit
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für