Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje postup řešení potíží a informace, které vám pomůžou používat profiler Application Insights pro .NET.
Používáte příslušný koncový bod .NET Profiler?
V současné době vyžadují úpravy koncových bodů jenom Azure Government a Microsoft Azure provozované společností 21Vianet .
| Nastavení aplikace | Cloud pro státní správu USA | Cloud Čína |
|---|---|---|
| ApplicationInsightsProfilerEndpoint | https://profiler.monitor.azure.us |
https://profiler.monitor.azure.cn |
| ApplicationInsightsEndpoint (koncový bod služby Application Insights) | https://dc.applicationinsights.us |
https://dc.applicationinsights.azure.cn |
Běží vaše aplikace na správné verzi?
Profiler podporuje verze rozhraní .NET Framework novější než 4.6.2.
Pokud je vaše webová aplikace ASP.NET Core, musí běžet na nejnovějším podporovaném modulu runtime ASP.NET Core.
Používáte správný plán služby Azure?
Profiler pro .NET se v současné době nepodporuje u bezplatných nebo sdílených plánů služby App Service. Abyste mohli začít pracovat, upgradujte na jeden ze základních plánů Profileru.
Poznámka:
Plán consumption služby Azure Functions se nepodporuje. Viz Povolení profileru .NET pro aplikace Azure Functions.
Hledáte data profileru .NET ve správném časovém rámci?
Pokud jsou data, která se pokoušíte zobrazit, starší než dva týdny, zkuste omezit časový filtr a zkuste to znovu. Trasování se odstraní po sedmi dnech.
Víte o vzorkovací frekvenci a zátěži profilovače .NET?
.NET Profiler náhodně spouští dvě minuty za hodinu na každém virtuálním počítači, který hostuje aplikace s povoleným Profilerem.
Poznámka:
Pokud profiler Application Insights pro .NET běží a shromažďuje stopy, obvykle přidává k vašemu serveru režii procesoru a paměti v rozmezí od 5 do 15 %.
Za ukládání dat zachycených profilerem .NET nejsou žádné další náklady . Data se automaticky odstraní po 15 dnech.
Máte přístup k bráně?
Zkontrolujte, zda brána firewall nebo proxy servery neblokují váš přístup k této webové stránce.
Dochází k vypršení časového limitu nebo potřebujete zkontrolovat, jestli je profiler .NET spuštěný?
Profiler nahraje data profilace pouze v případě, že je může připojit k požadavku, ke kterému dochází, když je profiler spuštěný. Profiler .NET shromažďuje data po dobu dvou minut každou hodinu. Profiler můžete aktivovat také spuštěním profilovací relace.
Profiler zapisuje do prostředku Application Insights trasovací zprávy a vlastní události. Pomocí těchto událostí můžete sledovat, jak je profiler spuštěn.
Vyhledejte trasovací zprávy a vlastní události, které .NET Profiler odesílá do vašeho prostředku Application Insights.
V prostředku Application Insights vyberte v horní nabídce možnost Hledat .
K vyhledání relevantních dat použijte následující hledaný řetězec:
stopprofiler OR startprofiler OR upload OR ServiceProfilerSamplePředchozí výsledky hledání zahrnují dva příklady hledání ze dvou prostředků umělé inteligence:
Pokud aplikace nepřijímá požadavky během spuštění profileru, zpráva vysvětluje, že nahrávání se zrušilo kvůli žádné aktivitě.
Profiler spustí a odešle vlastní události, když zjistí požadavky, ke kterým dochází, když je profiler spuštěný.
ServiceProfilerSamplePokud se zobrazí vlastní událost, znamená to, že profil byl zaznamenán a je dostupný na stránce Výkon v Application Insights.
Pokud se nezobrazí žádné záznamy, profiler není spuštěný nebo trvá příliš dlouho, než odpoví. Ujistěte se, že je ve vaší službě Azure povolený Profiler.
Profiler .NET je zapnutý, ale nezachytává se žádné trasování.
I když je Profiler povolený, nemusí zaznamenávat ani nahrávat stopy, zejména v těchto situacích:
Žádné příchozí požadavky na vaši aplikaci:
Aplikaci můžete vyvolat ručně nebo vytvořit test dostupnosti nebo zátěžový test.
Application Insights nepotvrdil žádnou příchozí telemetrii:
- Pokud do vaší aplikace přichází provoz: ověřte, že Live Metrics v rámci Application Insights zobrazují příchozí požadavky.
- Pokud jsou grafy prázdné (žádná data nebo zobrazují nulu):
Incoming Requests. - Pokud hostujete aplikaci .NET ve službě Azure App Service, přečtěte si téma Řešení potíží s integrací Application Insights se službou Azure App Service.
Nastavení profileru pro vzorkování je vypnuté:
Pokud nejsou k dispozici žádné trasování profileru, zkontrolujte nastavení vzorkování profileru.
- Otevřete Application Insights>výkon.
- Vyberte Profiler.
- Vyberte tlačítko Spouštěče.
- V nastavení triggeru se ujistěte, že je zapnuté vzorkování .
Stále nejsou nahrány žádné stopy?
Vytvořte žádost o podporu nebo se zeptejte komunity Azure. Svůj názor na produkt můžete odeslat také komunitě zpětné vazby Azure.
Dvojité počítání v paralelních vláknech
Pokud k požadavku přidružíte dvě nebo více paralelních vláken, může metrika celkového času prohlížeče zásobníku překročit dobu trvání požadavku. V tomto případě celkový čas vlákna překračuje skutečný uplynulý čas.
Například jedno vlákno může čekat na dokončení druhého vlákna. Prohlížeč se pokusí zjistit tuto situaci a vynechá nezajímavé čekání. Při tom se zobrazuje příliš mnoho informací na straně zobrazení příliš velkého množství informací, a nikoli vynechání důležitých informací.
Když ve stopách uvidíte paralelní vlákna, určete, která vlákna čekají, abyste mohli identifikovat kritickou cestu pro požadavek. Obvykle vlákno, které rychle přejde do stavu čekání, čeká na ostatní vlákna. Soustřeďte se na ostatní vlákna a ignorujte čas v čekajících vláknech.
Řešení potíží s profilerem .NET ve vaší konkrétní službě Azure
Následující části vás provedou postupem při řešení potíží s používáním Profileru ve službě Azure App Service.
Azure App Service
Aby profiler .NET fungoval správně, ujistěte se, že:
Povolte Application Insights pro vaši webovou aplikaci se správným nastavením.
Spusťte webovou úlohu ApplicationInsightsProfiler3. Postup kontroly webové úlohy:
Jdi do Kudu. Na webu Azure Portal:
V instanci služby App Service vyberte v levém podokně rozšířené nástroje .
Vyberte Přejít.
V horní nabídce vyberte Nástroje>Řídicí panel WebJobs. Otevře se podokno Webové úlohy .
Pokud se applicationInsightsProfiler3 nezobrazí, restartujte aplikaci App Service.
Pokud chcete zobrazit podrobnosti webové úlohy včetně protokolu, klikněte na odkaz ApplicationInsightsProfiler3. Otevře se podokno Podrobnosti průběžné webové úlohy.
Pokud pro vás profiler .NET stále nefunguje, stáhněte si protokol a odešlete požadavek na podporu Azure.
Zkontrolujte stránku stavu webového rozšíření diagnostických služeb
Pokud jste profiler .NET povolili prostřednictvím stránky Application Insights na webu Azure Portal, rozšíření webu Diagnostické služby ho spravuje. Stavovou stránku tohoto rozšíření můžete zkontrolovat tak, že přejdete na https://{site-name}.scm.azurewebsites.net/DiagnosticServices.
Poznámka:
Doména odkazu na stavovou stránku se liší v závislosti na cloudu. Tato doména je stejná jako správcovský web Kudu pro App Service. Na stránce stavu se zobrazuje stav instalace agentů .NET Profiler a Snapshot Debugger . Pokud dojde k neočekávané chybě, zobrazí se spolu s postupem, jak ji opravit.
Na stránce stavu se zobrazuje stav instalace agentů .NET Profiler a Snapshot Debugger . Pokud došlo k neočekávané chybě, zobrazí se spolu s postupem, jak ji opravit.
K získání základní adresy URL této stavové stránky můžete použít web správce Kudu pro App Service.
Otevřete aplikaci App Service na webu Azure Portal.
Vyberte Rozšířené nástroje.
Vyberte Přejít.
Na webu pro správu Kudu:
- Připojte
/DiagnosticServicesk adrese URL. - Stiskněte klávesu Enter.
- Připojte
Končí jako https://<kudu-url>/DiagnosticServices.
Stavová stránka se zobrazí podobně jako v následujícím příkladu.
Poznámka:
Bez kódu instalace profileru Application Insights pro .NET se řídí zásadami podpory .NET Core. Pro více informací o podporovaných runtimech viz zásady podpory .NET Core.
Ruční instalace
Když nakonfigurujete profiler .NET, proces aktualizuje nastavení webové aplikace. V případě potřeby můžete aktualizace použít ručně.
Při konfiguraci profileru .NET se aktualizují nastavení webové aplikace. V případě potřeby můžete aktualizace použít ručně.
Příliš mnoho aktivních relací profilace
Ve službě Azure App Service je limit pouze jedné relace profilace najednou na každém virtuálním počítači. Tento limit se vynucuje na úrovni virtuálního počítače napříč všemi aplikacemi a sloty nasazení spuštěnými v plánu služby App Service. Tento limit platí stejně pro relace profilace spuštěné prostřednictvím Diagnostiky a řešení problémů, Kudu a Profileru Application Insights pro .NET.
U jedné aplikace škálované na více instancí běží každá instance na samostatném virtuálním počítači a může nezávisle spouštět vlastní relaci profilace. Kolize nastane pouze v případě, že stejný virtuální počítač sdílí více aplikací nebo slotů nasazení ve stejném plánu služby App Service.
Pokud se profiler .NET pokouší zahájit relaci, když už na stejném virtuálním počítači běží jiná, zaznamená se chyba do protokolu aplikace a také do průběžného protokolu webové úlohy pro ApplicationInsightsProfiler3.
V protokolech se může zobrazit jedna z následujících zpráv:
Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionExceptionError: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E
Kód chyby 0xE111005E označuje, že relaci profilace nelze spustit, protože už běží jiná relace.
Abyste se vyhnuli chybě a snížili šum v protokolech nasazení:
- Přesuňte některé webové aplikace do jiného plánu služby App Service, aby nesdílely virtuální počítače.
- Zakažte Profiler u aplikací, které nepotřebují profilaci.
- Zastavte nevyužité instance nasazení. Každý spuštěný slot má aktivovaný Profiler a soutěží o kontrolu nad profilovací relací na své virtuální mašině.
- Během nasazení zvažte dočasné zakázání Profileru na staging slotech, aby se zabránilo chybám způsobeným přepínáním slotů, které aktivují souběžné relace.
Chyba nasazení: Adresář není prázdný 'D:\home\site\wwwroot\App_Data\jobs'
Pokud webovou aplikaci znovu nasazujete do prostředku Web Apps s povoleným profilerem .NET, může se zobrazit následující zpráva:
"Adresář není prázdný 'D:\home\site\wwwroot\App_Data\jobs'"
K této chybě dochází, pokud spouštíte nasazení webu ze skriptů nebo z Azure Pipelines. Vyřešte ho přidáním následujících parametrů nasazení do úlohy Nasazení webu:
-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'
Tyto parametry odstraní složku používanou profilerem Application Insights pro .NET a odblokují proces opětovného nasazení. Nemají vliv na instanci Profileru, která je aktuálně spuštěná.
Je profiler Application Insights pro .NET spuštěný?
Profiler běží ve webové aplikaci jako souvislá webová úloha. Prostředek webové aplikace můžete otevřít na webu Azure Portal. V podokně WebJobs zkontrolujte stav ApplicationInsightsProfiler. Pokud není spuštěný, otevřete protokoly a získejte další informace.
Virtuální počítače
Pokud chcete zjistit, jestli je profiler .NET správně nakonfigurovaný pomocí diagnostiky Azure:
Ověřte, že nasazená konfigurace diagnostiky Azure odpovídá vašim očekáváním.
Ověřte, že obsah nasazené konfigurace diagnostiky Azure je to, co očekáváte.
Ujistěte se, že Azure Diagnostics předává správný klíč iKey na příkazovém řádku Profileru.
Ujistěte se, že Azure Diagnostics předává správný klíč iKey na příkazovém řádku Profileru.
Zkontrolujte soubor protokolu profileru a zjistěte, jestli se profiler .NET spustil, ale vrátil chybu.
Kontrola nastavení použitých ke konfiguraci diagnostiky Azure:
Přihlaste se k virtuálnímu počítači.
Otevřete soubor protokolu v tomto umístění. Verze modulu plug-in může být na vašem počítači novější.
c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.logVyhledejte v souboru řetězec
WadCfga vyhledejte nastavení, která Diagnostika Azure předá virtuálnímu počítači pro konfiguraci diagnostiky Azure.Ověřte, že iKey používaný modulem .NET Profiler je správný.
Zkontrolujte příkazový řádek, který spouští Profiler. Argumenty příkazového řádku jsou v následujícím souboru (jednotka může být
c:nebod:a adresář může být skrytý):C:\ProgramData\ApplicationInsightsProfiler\config.jsonUjistěte se, že je klíč iKey na příkazovém řádku Profileru správný.
Pomocí cesty nalezené v předchozím souboru config.json zkontrolujte soubor protokolu profileru s názvem
BootstrapN.log. Zobrazuje se:- Informace o ladění, které udávají nastavení, která Profiler používá.
- Stav a chybové zprávy z Profileru
Soubor najdete:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfilerPokud je profiler .NET spuštěný, když vaše aplikace přijímá požadavky, zobrazí se následující zpráva: "Aktivita zjištěná z iKey".
Po nahrání trasování se zobrazí následující zpráva: "Spustit nahrání trasování".
Úprava pravidel proxy serveru sítě nebo brány firewall
Pokud se vaše aplikace připojuje k internetu pomocí proxy serveru nebo brány firewall, možná budete muset aktualizovat pravidla pro komunikaci s profilerem .NET.
IP adresy používané profilerem Application Insights pro .NET jsou součástí značky služby Azure Monitor. Další informace najdete v přehledu značek služeb Azure.
Řešení potíží s používáním vlastního úložiště (BYOS)
Řešení běžných problémů s konfigurací BYOS
Scénář: Template schema '{schema_uri}' isn't supported
Zobrazila se chyba podobná následujícímu příkladu:
New-AzResourceGroupDeployment : 11:53:49 AM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'Template schema
'https://schema.management.azure.com/schemas/2020-01-01/deploymentTemplate.json#' is not supported. Supported versions are
'2014-04-01-preview,2015-01-01,2018-05-01,2019-04-01,2019-08-01'. Please see https://aka.ms/arm-template for usage details.'.
Řešení
Ujistěte se, že
$schemaje vlastnost šablony platná. Musí se řídit tímto vzorem:https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#Ujistěte se, že
schema_versionšablony je v rámci platných hodnot:2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01.
Scénář: No registered resource provider found for location '{location}'
Zobrazila se chyba podobná následujícímu příkladu:
New-AzResourceGroupDeployment : 6:18:03 PM - Resource microsoft.insights/components 'byos-test-westus2-ai' failed with message '{
"error": {
"code": "NoRegisteredProviderFound",
"message": "No registered resource provider found for location 'westus2' and API version '2020-03-01-preview' for type 'components'. The supported api-versions are '2014-04-01,
2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth,
canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth,
australiasoutheast'."
}
}'
Řešení
- Ujistěte se, že
apiVersionzdrojmicrosoft.insights/componentsje2015-05-01. - Ujistěte se, že
apiVersionzdrojlinkedStorageAccountje2020-03-01-preview.
Scénář: Storage account location should match Application Insights component location
Zobrazila se chyba podobná následujícímu příkladu:
New-AzResourceGroupDeployment : 1:01:12 PM - Resource microsoft.insights/components/linkedStorageAccounts 'byos-test-centralus-ai/serviceprofiler' failed with message '{
"error": {
"code": "BadRequest",
"message": "Storage account location should match AI component location",
"innererror": {
"trace": [
"System.ArgumentException"
]
}
}
}'
Řešení
Ujistěte se, že umístění prostředku Application Insights je stejné jako umístění účtu pro ukládání.
Technická podpora
Pokud stále potřebujete pomoc, odešlete lístek podpory výběrem ikony otazníku na webu Azure Portal. Zahrňte ID korelace z chybové zprávy.