A .NET-hez készült Application Insights Profiler hibaelhárítása
Ez a cikk hibaelhárítási lépéseket és információkat mutat be, amelyek lehetővé teszik az Application Insights Profiler for .NET használatát.
A megfelelő .NET Profiler-végpontot használja?
Jelenleg csak a 21Vianet által üzemeltetett Azure Government és Microsoft Azure igényel végpontmódosítást.
Alkalmazásbeállítás | US Government Cloud | China Cloud |
---|---|---|
ApplicationInsightsProfilerEndpoint | https://profiler.monitor.azure.us |
https://profiler.monitor.azure.cn |
ApplicationInsightsEndpoint | https://dc.applicationinsights.us |
https://dc.applicationinsights.azure.cn |
Az alkalmazás a megfelelő verzióban fut?
A profilkészítő a .NET-keretrendszer 4.6.2-nél később támogatott.
Ha a webalkalmazás egy ASP.NET Core-alkalmazás, akkor a legújabb támogatott ASP.NET Core-futtatókörnyezetben kell futnia.
A megfelelő Azure-szolgáltatási csomagot használja?
A .NET profilkészítője jelenleg nem támogatott ingyenes vagy megosztott App Service-csomagokban. Frissítsen a Profiler egyik alapcsomagjára a működés megkezdéséhez.
Feljegyzés
Az Azure Functions használati csomagja nem támogatott. Tekintse meg a Profil élő Azure Functions-alkalmazást az Application Insights használatával.
A megfelelő időkereten belül keres .NET Profiler-adatokat?
Ha a megtekinteni kívánt adatok két hétnél régebbiek, próbálja meg korlátozni az időszűrőt, és próbálkozzon újra. A nyomkövetés hét nap után törlődik.
Tisztában van a .NET Profiler mintavételezési sebességével és többletterhelésével?
A .NET Profiler véletlenszerűen óránként két percet futtat minden olyan virtuális gépen, amelyen a Profiler engedélyezve van.
Feljegyzés
Amikor a Profiler aktívan futtatja és gyűjti a nyomkövetéseket, általában a processzor- és memóriaterhelés 5–15%-át adja hozzá a kiszolgálóhoz.
A Profiler által rögzített adatok tárolásának nincs további költsége. Az adatok 15 nap elteltével automatikusan törlődnek.
Hozzáfér az átjáróhoz?
Ellenőrizze, hogy egy tűzfal vagy proxy nem blokkolja-e a weblaphoz való hozzáférést.
Időtúllépéseket lát, vagy ellenőriznie kell, hogy fut-e a .NET Profiler?
A profilkészítési adatok csak akkor lesznek feltöltve, ha csatolhatók egy kérelemhez, amely a Profiler futtatása közben történt. A .NET Profiler óránként két percig gyűjt adatokat. A profilkészítőt profilkészítési munkamenet elindításával is aktiválhatja.
A Profiler nyomkövetési üzeneteket és egyéni eseményeket ír az Application Insights-erőforrásba. Ezekkel az eseményekkel megtekintheti, hogyan fut a Profiler.
Keresse meg a .NET Profiler által az Application Insights-erőforrásnak küldött nyomkövetési üzeneteket és egyéni eseményeket.
Az Application Insights-erőforrásban válassza a Keresés lehetőséget a felső menüben.
A releváns adatok megkereséséhez használja a következő keresési sztringet:
stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
Az előző keresési eredmények két AI-erőforrásból származó keresésekre mutatnak be két példát:
Ha az alkalmazás nem kap kéréseket a Profiler futtatása közben, az üzenet azt ismerteti, hogy a feltöltés tevékenység nélkül megszakadt.
A Profiler egyéni eseményeket indított el és küldött, amikor a Profiler futása közben történt kéréseket észlelt. Ha az
ServiceProfilerSample
egyéni esemény megjelenik, az azt jelenti, hogy a rendszer rögzített egy profilt, és elérhető az Application Insights Teljesítmény paneljén.
Ha nem jelennek meg rekordok, a Profiler nem fut, vagy túl sokáig tartott a válaszadás. Győződjön meg arról, hogy a Profiler engedélyezve van az Azure-szolgáltatásban.
A .NET Profiler be van kapcsolva, de nincsenek rögzített nyomkövetések
Még ha engedélyezve is van a Profiler, előfordulhat, hogy nem rögzít vagy tölt fel nyomkövetéseket, különösen az alábbi helyzetekben:
Nincs bejövő kérés az alkalmazáshoz:
Manuálisan meghívhatja az alkalmazást, vagy létrehozhat egy rendelkezésre állási tesztet vagy egy terhelési tesztet.Az Application Insights nem nyugtázta a bejövő telemetriát:
- Ha az alkalmazás felé forgalom érkezik: ellenőrizze, hogy vannak-e bejövő kérések az Application Insights élő metrikáiban.
- Ha a
Incoming Requests
diagramok üresek (nincs adat vagy nulla): az Application Insights hibaelhárítása. - Ha a .NET-alkalmazást a Azure-alkalmazás Service-ben üzemelteti, próbálkozzon az App Service .NET hibaelhárítási lépéseivel.
A Mintavételezés profilkészítő beállítása ki van kapcsolva:
Ha továbbra sem érhetők el profilkészítő nyomkövetések, ellenőrizze a Profiler mintavételezési beállítását.- Nyissa meg az Application Insights>Teljesítmény paneljét.
- Kattintson a Profiler elemre.
- Kattintson az Eseményindítók gombra.
- Az eseményindító beállításai között győződjön meg arról, hogy a Mintavételezés kapcsoló be van kapcsolva.
Még mindig nincs feltöltve nyomkövetés?
Hozzon létre egy támogatási kérést, vagy kérje az Azure-közösség segítségét. Termékvisszajelzést is küldhet az Azure visszajelzési közösségének.
Kettős számolás párhuzamos szálakban
Ha egy kérelemhez két vagy több párhuzamos szál van társítva, a veremmegjelenítő teljes időmetrikája meghaladhatja a kérés időtartamát. Ebben az esetben a teljes szálidő több, mint a tényleges eltelt idő.
Előfordulhat például, hogy az egyik szál a másikra vár, hogy befejeződjön. A néző megpróbálja észlelni ezt a helyzetet, és kihagyja az érdektelen várakozást. Ennek során a rendszer túl sok információt jelenít meg ahelyett, hogy kihagyja a kritikus fontosságú információkat.
Ha párhuzamos szálakat lát a nyomkövetésekben, állapítsa meg, hogy mely szálak várakoznak, hogy azonosítani tudja a kérés gyakori elérésű útvonalát. Általában az a szál, amely gyorsan várakozási állapotba kerül, a többi szálra vár. Koncentráljon a többi szálra, és hagyja figyelmen kívül a várakozási szálak idejét.
A .NET Profiler hibaelhárítása az adott Azure-szolgáltatásban
Az alábbi szakaszok végigvezetik a Profiler Azure-alkalmazás Service-en vagy Azure Cloud Servicesen való használatával kapcsolatos hibaelhárítási lépéseken.
Azure App Service
A .NET Profiler megfelelő működéséhez győződjön meg arról, hogy:
A webalkalmazásban a megfelelő beállításokkal engedélyezve van az Application Insights.
Fut az ApplicationInsightsProfiler3 WebJob . A webfeladat ellenőrzése:
Ugrás a Kudura. Az Azure Portalon:
- Az App Service-példányban válassza a Speciális eszközök lehetőséget a bal oldali panelen.
- Válassza az Indít elemet.
A felső menüben válassza az Eszközök>WebJobs irányítópultot. Megnyílik a WebJobs panel.
Ha az ApplicationInsightsProfiler3 nem jelenik meg, indítsa újra az App Service-alkalmazást.
A WebJob részleteinek megtekintéséhez, beleértve a naplót is, válassza az ApplicationInsightsProfiler3 hivatkozást. Megnyílik a Folyamatos webfeladat részletei panel.
Ha a .NET Profiler továbbra sem működik Önnek, töltse le a naplót, és küldjön be egy Azure-támogatás jegyet.
A Diagnosztikai szolgáltatások webhelybővítmény állapotlapjának ellenőrzése
Ha engedélyezte a .NET Profilert a portál Application Insights paneljén keresztül, akkor azt a Diagnosztikai szolgáltatások webhelybővítmény felügyeli. A bővítmény állapotlapját a következő lépéssel https://{site-name}.scm.azurewebsites.net/DiagnosticServices
ellenőrizheti:
Feljegyzés
Az állapotlap hivatkozásának tartománya a felhőtől függően változik. Ez a tartomány megegyezik az App Service Kudu felügyeleti webhelyével.
Az állapotlapon a .NET Profiler és a Snapshot Debugger ügynökök telepítési állapota látható. Ha váratlan hiba történt, megjelenik a javítás lépéseivel együtt.
Az App Service Kudu felügyeleti webhelyével lekérheti az állapotlap alap URL-címét:
- Nyissa meg az App Service-alkalmazást az Azure Portalon.
- Válassza a Speciális eszközök lehetőséget.
- Válassza az Indít elemet.
- A Kudu felügyeleti webhelyén:
- Fűzze hozzá az
/DiagnosticServices
elérés utat az URL-címhez. - Nyomja le az Enter billentyűt.
- Fűzze hozzá az
Úgy végződik, mint https://<kudu-url>/DiagnosticServices
.
Az állapotlap az alábbi példához hasonlóan jelenik meg.
Feljegyzés
A .NET-hez készült Application Insights Profiler kód nélküli telepítése a .NET Core támogatási szabályzatát követi. A támogatott futtatókörnyezetekről további információt a .NET Core támogatási szabályzatában talál.
Manuális telepítés
A .NET Profiler konfigurálásakor a rendszer frissíti a webalkalmazás beállításait. Szükség esetén manuálisan is alkalmazhatja a frissítéseket.
Túl sok aktív profilkészítési munkamenet
A Azure-alkalmazás szolgáltatásban egyszerre csak egy profilkészítési munkamenet van korlátozva. Ezt a korlátot a virtuális gép szintjén kényszeríti a rendszer az App Service-csomagban futó összes alkalmazásra és üzembehelyezési tárolóhelyre. Ez a korlát a problémák diagnosztizálásával és megoldásával indított profilkészítési munkamenetekre, a Kudura és a .NET-hez készült Application Insights Profilerre is vonatkozik.
Ha a .NET Profiler megpróbál elindítani egy munkamenetet, amikor egy másik már fut, a rendszer hibát naplóz az alkalmazásnaplóban és a folyamatos WebJob-naplóban ApplicationInsightsProfiler3
is.
A naplókban az alábbi üzenetek egyike jelenhet meg:
Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException
Error: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E
A hibakód 0xE111005E
azt jelzi, hogy egy profilkészítési munkamenet nem indítható el, mert egy másik munkamenet már fut.
A hiba elkerülése érdekében helyezzen át néhány webalkalmazást egy másik App Service-csomagba, vagy tiltsa le a profilkészítőt néhány alkalmazáson. Üzembehelyezési pontok használata esetén mindenképpen állítsa le a nem használt pontokat.
Üzembe helyezési hiba: A címtár nem üres "D:\home\site\wwwroot\App_Data\jobs"
Ha újra üzembe helyezi a webalkalmazást egy Web Apps-erőforrásba, amelyen engedélyezve van a .NET Profiler, a következő üzenet jelenhet meg:
"Directory Not Empty 'D:\home\site\wwwroot\App_Data\jobs'"
Ez a hiba akkor fordul elő, ha a Web Deploy parancsprogramból vagy az Azure Pipelinesból fut. A probléma megoldásához adja hozzá a következő üzembehelyezési paramétereket a Webes üzembe helyezés feladathoz:
-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$'
Ezek a paraméterek törlik az Application Insights Profiler által a .NET-hez használt mappát, és feloldják az újratelepítési folyamat letiltását. Ezek nem érintik az éppen futó Profiler-példányt.
Fut az Application Insights Profiler for .NET?
A Profiler folyamatos WebJob-feladatként fut a webalkalmazásban. A webalkalmazás-erőforrást az Azure Portalon nyithatja meg. A WebJobs panelen ellenőrizze az ApplicationInsightsProfiler állapotát. Ha nem fut, nyissa meg a Naplókat további információkért.
Virtuális gépek és Azure Cloud Services
Annak ellenőrzése, hogy a .NET Profiler megfelelően van-e konfigurálva az Azure Diagnosticsban:
Ellenőrizze, hogy az üzembe helyezett Azure Diagnostics-konfiguráció tartalma megfelel-e a vártnak.
Győződjön meg arról, hogy az Azure Diagnostics átadja a profiler parancssorának megfelelő iKey-t.
Ellenőrizze a Profiler naplófájljában, hogy a .NET Profiler futott-e, de hibát adott vissza.
Az Azure Diagnostics konfigurálásához használt beállítások ellenőrzése:
Jelentkezzen be a virtuális gépre.
Nyissa meg a naplófájlt ezen a helyen. Előfordulhat, hogy a beépülő modul verziója újabb a számítógépen.
Virtuális gépek esetén:
c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
Azure Cloud Services esetén:
c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
A fájlban keresse meg a sztringet
WadCfg
az Azure Diagnostics konfigurálásához a virtuális gépnek átadott beállítások megkereséséhez.Ellenőrizze, hogy a .NET Profiler fogadó által használt iKey helyes-e.
Ellenőrizze a Profilert indító parancssort. A parancssori argumentumok a következő fájlban találhatók (lehet, hogy
c:
a meghajtó vagyd:
a könyvtár rejtett):Virtuális gépek esetén:
C:\ProgramData\ApplicationInsightsProfiler\config.json
Azure Cloud Services esetén:
D:\ProgramData\ApplicationInsightsProfiler\config.json
Győződjön meg arról, hogy a Profiler parancssorában található iKey helyes.
Az előző config.json fájlban található elérési út használatával ellenőrizze a Profiler naplófájlt.
BootstrapN.log
A következőket jeleníti meg:- A Profiler által használt beállításokat jelző hibakeresési információk.
- Állapot és hibaüzenetek a Profilertől.
A fájl a következő:
Virtuális gépek esetén:
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
Azure Cloud Services esetén:
C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
Ha a .NET Profiler fut, miközben az alkalmazás kéréseket fogad, a következő üzenet jelenik meg: "Tevékenység észlelhető az iKey-ből".
A nyomkövetés feltöltésekor a következő üzenet jelenik meg: "Nyomkövetés feltöltésének megkezdése".
Hálózati proxy- vagy tűzfalszabályok szerkesztése
Ha az alkalmazás proxyn vagy tűzfalon keresztül csatlakozik az internethez, előfordulhat, hogy frissítenie kell a szabályokat a .NET Profilerrel való kommunikációhoz.
A .NET-hez készült Application Insights Profiler által használt IP-címek szerepelnek az Azure Monitor szolgáltatáscímkéjében. További információ: Szolgáltatáscímkék dokumentációja.
Támogatás
Ha továbbra is segítségre van szüksége, küldjön támogatási jegyet az Azure Portalon. Adja meg a korrelációs azonosítót a hibaüzenetből.