Megosztás a következőn keresztül:


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.

  1. Az Application Insights-erőforrásban válassza a Keresés lehetőséget a felső menüben.

    Képernyőkép az Application Insights-erőforrás Keresés gombjának kiválasztásáról.

  2. A releváns adatok megkereséséhez használja a következő keresési sztringet:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Képernyőkép a fent említett keresési sztring keresési eredményeiről.

    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:

  1. 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.

  2. Az Application Insights nem nyugtázta a bejövő telemetriát:

  3. 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.

    1. Nyissa meg az Application Insights>Teljesítmény paneljét.
    2. Kattintson a Profiler elemre.
    3. Kattintson az Eseményindítók gombra.
    4. 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.
  4. 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:

    1. Ugrás a Kudura. Az Azure Portalon:

      1. Az App Service-példányban válassza a Speciális eszközök lehetőséget a bal oldali panelen.
      2. Válassza az Indít elemet.
    2. 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.

      Képernyőkép a WebJobs panelről, amely megjeleníti a feladatok nevét, állapotát és utolsó futásidejét.

    3. 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.

      Képernyőkép a Folyamatos webjob részletei panelről.

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/DiagnosticServicesellenő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:

  1. Nyissa meg az App Service-alkalmazást az Azure Portalon.
  2. Válassza a Speciális eszközök lehetőséget.
  3. Válassza az Indít elemet.
  4. A Kudu felügyeleti webhelyén:
    1. Fűzze hozzá az /DiagnosticServices elérés utat az URL-címhez.
    2. Nyomja le az Enter billentyűt.

Úgy végződik, mint https://<kudu-url>/DiagnosticServices.

Az állapotlap az alábbi példához hasonlóan jelenik meg.

Képernyőkép a Diagnosztikai szolgáltatások állapotlapjáról.

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 ApplicationInsightsProfiler3is.

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:

  1. Ellenőrizze, hogy az üzembe helyezett Azure Diagnostics-konfiguráció tartalma megfelel-e a vártnak.

  2. Győződjön meg arról, hogy az Azure Diagnostics átadja a profiler parancssorának megfelelő iKey-t.

  3. 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:

  1. Jelentkezzen be a virtuális gépre.

  2. 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
    
  3. 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.

  4. Ellenőrizze, hogy a .NET Profiler fogadó által használt iKey helyes-e.

  5. Ellenőrizze a Profilert indító parancssort. A parancssori argumentumok a következő fájlban találhatók (lehet, hogy c: a meghajtó vagy d: 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
    
  6. Győződjön meg arról, hogy a Profiler parancssorában található iKey helyes.

  7. 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
    
  8. 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".

  9. 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.