Monitorování aplikací pro Azure App Service a ASP.NET Core
Povolení monitorování webových aplikací založených na ASP.NET Core běžících na službě Aplikace Azure Service je teď jednodušší než kdy jindy. Dříve jste museli aplikaci instrumentovat ručně. Nejnovější rozšíření nebo agent je teď ve výchozím nastavení integrovaný do image služby App Service. Tento článek vás provede povolením monitorování Přehledy aplikací služby Azure Monitor. Poskytuje také předběžné pokyny pro automatizaci procesu pro rozsáhlá nasazení.
Poznámka:
Podpora příjmu dat založeného na instrumentačním klíči skončí 31. března 2025. Příjem klíčů instrumentace bude dál fungovat, ale už nebudeme poskytovat aktualizace ani podporu pro tuto funkci. Přechod na připojovací řetězec, abyste mohli využívat nové funkce.
Povolení automatického monitorování
Úplný seznam podporovanýchscénářůch
Důležité
Pro automatickou správu ve Windows se podporuje pouze dlouhodobá podpora .NET Core.
Samoobslužná nasazeníse nepodporují. Místo toho použijte ruční instrumentaci prostřednictvím kódu.
Poznámka:
Automatické vytváření se označuje jako "připojení bez kódu" před říjnem 2021.
V následující části Povolení monitorování začněte nastavovat aplikační Přehledy s prostředkem služby App Service.
Povolení monitorování
V levém podokně služby App Service vyberte Přehledy aplikace. Pak vyberte Povolit.
Vytvořte nový prostředek nebo vyberte existující prostředek aplikace Přehledy pro tuto aplikaci.
Poznámka:
Když vyberete OK a vytvoříte nový prostředek, zobrazí se výzva k použití nastavení monitorování. Výběrem možnosti Pokračovat prodávejte nový prostředek aplikace Přehledy s vaší službou App Service. Vaše služba App Service se pak restartuje.
Po určení, který prostředek se má použít, můžete zvolit, jak má aplikace Přehledy shromažďovat data pro každou platformu pro vaši aplikaci. ASP.NET Možnosti kolekce Core jsou doporučené nebo zakázané.
Povolení monitorování na straně klienta
Monitorování na straně klienta je ve výchozím nastavení povolené pro aplikace ASP.NET Core s doporučenou kolekcí bez ohledu na to, jestli je nastavení APPINSIGHTS_JAVASCRIPT_ENABLED
aplikace k dispozici.
Pokud chcete zakázat monitorování na straně klienta:
Vyberte Nastavení>Konfigurace.
V části Nastavení aplikace vytvořte nové nastavení aplikace s následujícími informacemi:
- Název:
APPINSIGHTS_JAVASCRIPT_ENABLED
- Hodnota:
false
- Název:
Uložte nastavení. Restartujte aplikaci.
Automatizace monitorování
Pokud chcete povolit shromažďování telemetrických dat pomocí Přehledy aplikace, musí být nastavená jenom nastavení aplikace.
Definice nastavení aplikace
Název nastavení aplikace | Definice | Hodnota |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Hlavní rozšíření, které řídí monitorování modulu runtime. | ~2 pro Windows nebo ~3 Linux |
XDT_MicrosoftApplicationInsights_Mode | Ve výchozím režimu jsou povoleny pouze základní funkce, které zajistí optimální výkon. | disabled nebo recommended . |
XDT_MicrosoftApplication Přehledy_PreemptSdk | Pouze pro aplikace ASP.NET Core. Umožňuje spolupráci (interoperace) se sadou Application Přehledy SDK. Načte rozšíření vedle sady SDK a používá ho k odesílání telemetrie. (Zakáže sadu Application Přehledy SDK.) | 1 |
Nastavení aplikace služby App Service pomocí Azure Resource Manageru
Nastavení aplikace pro službu Aplikace Azure Service je možné spravovat a konfigurovat pomocí šablon Azure Resource Manageru. Tuto metodu můžete použít při nasazování nových prostředků služby App Service s automatizací Resource Manageru nebo úpravou nastavení existujících prostředků.
Základní struktura JSON nastavení aplikace pro prostředek služby App Service:
"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"
}
}
]
Příklad šablony Resource Manageru s nastavením aplikace nakonfigurovanými pro Přehledy aplikace může být tato šablona užitečná. Konkrétně se podívejte na oddíl, který začíná na řádku 238.
Automatizace vytvoření prostředku Přehledy aplikace a propojení s nově vytvořeným prostředkem služby App Service
Pokud chcete vytvořit šablonu Resource Manageru s výchozím nastavením Přehledy aplikace, zahajte proces, jako byste chtěli vytvořit novou webovou aplikaci s povolenou Přehledy aplikace.
Vytvořte nový prostředek služby App Service s požadovanými informacemi o webové aplikaci. Na kartě Monitorování povolte Přehledy aplikace.
Vyberte Zkontrolovat a vytvořit. Pak vyberte Stáhnout šablonu pro automatizaci.
Tato možnost vygeneruje nejnovější šablonu Resource Manageru se všemi nakonfigurovanými požadovanými nastaveními.
V následující ukázce nahraďte všechny instance AppMonitoredSite
názvem vašeho webu:
Poznámka:
Pokud používáte Windows, nastavte ApplicationInsightsAgent_EXTENSION_VERSION
na hodnotu ~2
. Pokud používáte Linux, nastavte ApplicationInsightsAgent_EXTENSION_VERSION
na ~3
hodnotu .
{
"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"
}
Povolení prostřednictvím PowerShellu
Pokud chcete povolit monitorování aplikací prostřednictvím PowerShellu, musíte změnit jenom základní nastavení aplikace. Následující ukázka umožňuje monitorování aplikací pro web volaný AppMonitoredSite
ve skupině AppMonitoredRG
prostředků . Konfiguruje data, která se mají odesílat do 012345678-abcd-ef01-2345-6789abcd
instrumentačního klíče.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Poznámka:
Pokud používáte Systém Windows, nastavte aplikaci Přehledy Agent_EXTENSION_VERSION na ~2
hodnotu . Pokud používáte Linux, nastavte aplikaci Přehledy Agent_EXTENSION_VERSION na ~3
.
$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 rozšíření monitorování nebo agenta – .NET
Pokud chcete upgradovat rozšíření monitorování nebo agenta, postupujte podle kroků v dalších částech.
Upgrade z verze 2.8.9 a novější
Upgrade z verze 2.8.9 probíhá automaticky bez dalších akcí. Nové monitorovací bity se doručí na pozadí do cílové služby App Service a při restartování aplikace se vyberou.
Pokud chcete zkontrolovat, jakou verzi rozšíření používáte, přejděte na https://yoursitename.scm.azurewebsites.net/ApplicationInsights
stránku .
Upgrade z verze 1.0.0 – 2.6.5
Počínaje verzí 2.8.9 se používá předinstalované rozšíření webu. Pokud používáte starší verzi, můžete ji aktualizovat jedním ze dvou způsobů:
Upgrade povolením prostřednictvím portálu: I když máte nainstalované rozšíření Application Přehledy pro App Service, zobrazí se v uživatelském rozhraní jenom tlačítko Povolit. Na pozadí se odebere staré rozšíření privátního webu.
Upgrade prostřednictvím PowerShellu:
- Nastavte nastavení aplikace tak, aby povolovala předinstalované rozšíření
ApplicationInsightsAgent
webu . Další informace najdete v tématu Povolení prostřednictvím PowerShellu. - Ručně odeberte rozšíření privátního webu s názvem Application Přehledy rozšíření pro službu Aplikace Azure Service.
- Nastavte nastavení aplikace tak, aby povolovala předinstalované rozšíření
Pokud se upgrade provádí z verze starší než 2.5.1, zkontrolujte, jestli ApplicationInsights
jsou knihovny DLL odebrány ze složky přihrádky aplikace. Další informace najdete v tématu Postup řešení potíží.
Řešení problému
Poznámka:
Když vytvoříte webovou aplikaci s ASP.NET Core
moduly runtime ve službě App Service, nasadí jako úvodní web jednu statickou stránku HTML. Nedoporučujeme, abyste vyřešili problém s výchozí šablonou. Před řešením problému nasaďte aplikaci.
Následuje náš podrobný průvodce odstraňováním potíží pro monitorování na základě rozšíření nebo agentů pro aplikace založené na jádru ASP.NET spuštěných ve službě App Service.
Zkontrolujte, jestli
ApplicationInsightsAgent_EXTENSION_VERSION
je nastavení aplikace nastavené na hodnotu~2
.Přejděte na
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Ověřte, že je stav rozšíření Přehledy aplikace.
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Pokud není spuštěný, postupujte podle pokynů v části Povolení monitorování Přehledy aplikací.
Ověřte, že zdroj stavu existuje a vypadá takto
Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json
.Pokud podobná hodnota není dostupná, znamená to, že aplikace není aktuálně spuštěná nebo není podporovaná. Pokud chcete zajistit, že je aplikace spuštěná, zkuste ručně navštívit adresu URL aplikace nebo koncové body aplikace, což umožní zpřístupnění informací modulu runtime.
Potvrďte, že je
True
IKeyExists . Pokud jeFalse
to , přidejteAPPINSIGHTS_INSTRUMENTATIONKEY
do nastavení aplikace identifikátor GUID klíče aAPPLICATIONINSIGHTS_CONNECTION_STRING
s ním.Pokud vaše aplikace odkazuje na všechny balíčky Přehledy aplikace, povolení integrace služby App Service se nemusí projevit a data se nemusí zobrazit v Přehledy aplikace. Příkladem by bylo, kdybyste dříve instrumentovali nebo se pokusili instrumentovat aplikaci pomocí sady ASP.NET Core SDK. Pokud chcete tento problém vyřešit, zapněte na portálu spolupráci se sadou Application Přehledy SDK. V Přehledy aplikace se začnou zobrazovat data.
Důležité
Tato funkce je ve verzi Preview.
Data se teď posílají pomocí přístupu bez kódu, i když byla sada Application Přehledy SDK původně použita nebo se pokusila použít.
Důležité
Pokud aplikace k odesílání telemetrie použila sadu Application Přehledy SDK, telemetrie se zakáže. Jinými slovy, vlastní telemetrie (například jakékoli
Track*()
metody) a vlastní nastavení (například vzorkování) budou zakázány.
Výchozí web nasazený s webovými aplikacemi nepodporuje automatické monitorování na straně klienta
Když ve službě App Service vytvoříte webovou aplikaci s moduly runtime ASP.NET Core, nasadí jako úvodní web jednu statickou stránku HTML. Statická webová stránka také načte ASP. Webová část spravovaná technologií NET ve službě IIS Toto chování umožňuje testování bezkódového monitorování na straně serveru, ale nepodporuje automatické monitorování na straně klienta.
Pokud chcete otestovat monitorování bez kódu serveru a na straně klienta pro ASP.NET Core ve webové aplikaci služby App Service, doporučujeme postupovat podle oficiálních příruček k vytvoření webové aplikace ASP.NET Core. Pak pomocí pokynů v aktuálním článku povolte monitorování.
Jaký je rozdíl mezi standardními metrikami oproti metrikám služby Application Přehledy a Aplikace Azure Service?
Aplikace Přehledy shromažďuje telemetrii pro požadavky, které je do aplikace provedly. Pokud k selhání dojde ve službě WebApps/WebServer a požadavek se nedotášel k uživatelské aplikaci, aplikace Přehledy o ní nemá žádnou telemetrii.
Doba trvání serverresponsetime
vypočítaná aplikací Přehledy nemusí nutně odpovídat době odezvy serveru zjištěné službou Web Apps. Toto chování je způsobeno tím, že aplikace Přehledy počítá pouze dobu trvání, kdy požadavek skutečně dosáhne uživatelské aplikace. Pokud se požadavek zablokuje nebo zařadí do fronty ve webovém serveru, doba čekání se zahrne do metrik Web Apps, ale ne do metrik Přehledy aplikace.
Testování připojení mezi hostitelem vaší aplikace a službou příjmu dat
Sady SDK a agenti aplikace Přehledy odesílají telemetrii, aby se ingestovala jako volání REST do koncových bodů příjmu dat. Připojení z webového serveru nebo hostitelského počítače aplikace ke koncovým bodům služby pro příjem dat můžete otestovat pomocí nezpracovaných klientů REST z příkazů PowerShellu nebo curl. Viz Řešení potíží s chybějící telemetrií aplikací ve službě Azure Monitor application Přehledy.
PHP a WordPress nejsou podporovány.
Weby PHP a WordPress nejsou podporované. Pro monitorování těchto úloh na straně serveru v současné době neexistuje žádná oficiálně podporovaná sada SDK/agent. Chcete-li ručně instrumentovat transakce na straně klienta na webu PHP nebo WordPress přidáním JavaScriptu na straně klienta na webové stránky, použijte javascriptovou sadu SDK.
Následující tabulka obsahuje vysvětlení, co tyto hodnoty znamenají, jejich základní příčiny a doporučené opravy.
Hodnota problému | Vysvětlení | Oprava |
---|---|---|
AppAlreadyInstrumented:true |
Tato hodnota označuje, že rozšíření zjistilo, že v aplikaci už existuje určitý aspekt sady SDK a že se vrátí zpět. Může to být způsobeno odkazem na Microsoft.ApplicationInsights.AspNetCore nebo Microsoft.ApplicationInsights . |
Odeberte odkazy. Některé z těchto odkazů se ve výchozím nastavení přidávají z určitých šablon sady Visual Studio. Starší verze sady Visual Studio reference Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Tato hodnota může být způsobena také přítomností Microsoft.ApplicationsInsights knihovny DLL ve složce aplikace z předchozího nasazení. |
Vyčistěte složku aplikace a ujistěte se, že jsou tyto knihovny DLL odebrány. Zkontrolujte adresář bin vaší místní aplikace i adresář wwwroot ve službě App Service. (Pokud chcete zkontrolovat adresář wwwroot vaší webové aplikace služby App Service, vyberte Konzola Pro pokročilé nástroje (Kudu) >– konzola>ladění CMD>home\site\wwwroot) |
IKeyExists:false |
Tato hodnota označuje, že v nastavení APPINSIGHTS_INSTRUMENTATIONKEY aplikace není k dispozici instrumentační klíč. Mezi možné příčiny patří náhodné odebrání hodnot nebo vynechání nastavení hodnot ve skriptu automatizace. |
Ujistěte se, že je nastavení v nastavení aplikace služby App Service. |
Poznámky k verzi
Nejnovější aktualizace a opravy chyb najdete v poznámkách k verzi.
Další kroky
- Spusťte Profiler v živé aplikaci.
- Monitorování služby Azure Functions pomocí aplikačních Přehledy
- Povolte odesílání diagnostiky Azure do Application Insights.
- Monitorujte metriky stavu služby, abyste zajistili dostupnost služby a její schopnost dobře reagovat.
- Přijímejte oznámení o výstrahách vždy, když nastanou provozní události nebo když metriky překročí prahovou hodnotu.
- Pomocí aplikace Přehledy pro javascriptové aplikace a webové stránky získáte telemetrii klienta z prohlížečů, které navštíví webovou stránku.
- Dostupnost