Application Insights azure-felhőszolgáltatásokhoz
Az Application Insights az Azure cloud service-alkalmazások rendelkezésre állását, teljesítményét, hibáit és használatát figyelheti az Application Insights SDK-kból származó adatok és a felhőszolgáltatások Azure Diagnostics-adatainak kombinálásával. A széles körben elérhető módon működő alkalmazások teljesítményével és hatékonyságával kapcsolatos visszajelzések birtokában tájékozott döntéseket hozhat a fejlesztés irányát illetően az egyes fejlesztési fázisokban.
Feljegyzés
2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati sztring az új képességek kihasználásához.
Előfeltételek
Mielőtt hozzákezdene, a következőkre van szüksége:
Egy Azure-előfizetés.
Jelentkezzen be Microsoft-fiókjával Windows, Xbox Live vagy más Microsoft-felhőszolgáltatásokhoz.
Microsoft Azure Tools 2.9 vagy újabb.
Developer Analytics Tools 7.10 vagy újabb.
Gyorsan használatba vehető
A felhőszolgáltatás Application Insightsszal való figyelésének leggyorsabb és legegyszerűbb módja, ha kiválasztja ezt a lehetőséget, amikor közzéteszi a szolgáltatást az Azure-ban.
Ez a beállítás futásidőben rögzíti az alkalmazást, így a webes szerepkörben a kérések, kivételek és függőségek monitorozásához szükséges összes telemetriát biztosítja. Emellett a feldolgozói szerepkörök teljesítményszámlálóit is figyeli. Az alkalmazás által létrehozott diagnosztikai nyomkövetéseket az Application Insights is elküldi.
Ha csak erre a beállításra van szüksége, akkor elkészült.
A következő lépések az alkalmazás metrikáinak megtekintése és az adatok lekérdezése az Analytics használatával.
A böngésző teljesítményének figyeléséhez érdemes lehet beállítani a rendelkezésre állási teszteket , és kódot hozzáadni a weblapokhoz.
A következő szakaszok a következő további lehetőségeket ismertetik:
- Adatokat küldhet különböző összetevőkből, és konfigurációkat hozhat létre az erőforrások elkülönítéséhez.
- Egyéni telemetriát adhat hozzá az alkalmazásból.
Mintaalkalmazás az Application Insights használatával
Ebben a mintaalkalmazásban az Application Insights egy felhőszolgáltatáshoz lesz hozzáadva, amely két, az Azure-ban üzemeltetett feldolgozói szerepkörrel rendelkezik.
A következő szakaszban megtanulhatja, hogyan alakíthatja át saját felhőszolgáltatás-projektét ugyanúgy.
Erőforrások és erőforráscsoportok tervezése
Az alkalmazás telemetriáját egy Application Insights típusú Azure-erőforrás tárolja, elemzi és jeleníti meg.
Mindegyik erőforrás egy erőforráscsoportba tartozik. Az erőforráscsoportok a költségek kezelésére, a csapattagok hozzáférésének megadására és a frissítések egyetlen összehangolt tranzakcióban való üzembe helyezésére szolgálnak. Írhat például egy szkriptet egy Azure-felhőszolgáltatás és annak Application Insights monitorozási erőforrásainak üzembe helyezéséhez egyetlen műveletben.
Az összetevők erőforrásai
Javasoljuk, hogy adjon hozzá egy dimenziótulajdonságot minden olyan telemetriai elemhez , amely azonosítja a forrásszerepkört. Ebben a megközelítésben a metrikadiagramok, például a kivételek általában a különböző szerepkörökből származó számok összesítését jelenítik meg, de szükség esetén a diagramot a szerepkör-azonosító alapján szegmentelheti. A kereséseket ugyanannak a dimenziónak a alapján is szűrheti. Ez az alternatíva egy kicsit egyszerűbbé teszi, hogy mindent egyszerre tekintsünk meg, de némi zavart is okozhat a szerepkörök között.
A böngészőtelemetria általában ugyanabban az erőforrásban jelenik meg, mint a kiszolgálóoldali webes szerepköre.
Helyezze el az Application Insights-erőforrásokat a különböző összetevőkhöz egy erőforráscsoportban. Ez a megközelítés megkönnyíti a közös kezelésüket.
A fejlesztési, tesztelési és éles környezetek elkülönítése
Ha már egy következő funkcióhoz fejleszt egyéni eseményeket, miközben a korábbi verzió még éles üzemben működik, érdemes lehet a fejlesztési telemetriát egy külön Application Insights-erőforrásba küldeni. Ellenkező esetben nehéz lehet megtalálni a teszt telemetriáját az élő webhelyről érkező összes forgalom között.
A helyzet elkerülése érdekében hozzon létre külön erőforrásokat a rendszer minden buildkonfigurációjához vagy "bélyegéhez" (fejlesztéshez, teszteléshez, éles környezethez stb.). Helyezze az egyes buildkonfigurációk erőforrásait külön erőforráscsoportokba.
Ha a telemetriát a megfelelő erőforrásoknak szeretné elküldeni, beállíthatja az Application Insights SDK-t, hogy a buildkonfigurációtól függően egy másik rendszerállapotkulcsot vegyen fel.
Megtudhatja, hogyan állíthatja be dinamikusan a rendszerállapotkulcsot a különböző szakaszokhoz.
Application Insights-erőforrás létrehozása mindegyik szerepkörhöz
Ha úgy döntött, hogy minden szerepkörhöz külön erőforrást hoz létre, és az egyes buildkonfigurációkhoz külön készletet hoz létre, akkor a legegyszerűbb, ha mindegyiket az Application Insights portálon hozza létre. Ha sok erőforrást hoz létre, automatizálhatja a folyamatot.
Az Azure Portalon válassza a New>Developer Services>Application Insights lehetőséget.
Az Alkalmazástípus legördülő listában válassza ASP.NET webalkalmazást.
Minden erőforrást egy rendszerállapot-kulcs azonosít. Később szükség lehet erre a kulcsra, ha manuálisan szeretné konfigurálni vagy ellenőrizni az SDK konfigurációját.
Azure Diagnostics beállítása az egyes szerepkörökhöz
Ezzel a beállítással figyelheti az alkalmazást az Application Insightsszal. Webes szerepkörök esetén ez a beállítás teljesítményfigyelést, riasztásokat, diagnosztikát és használatelemzést biztosít. Más szerepkörök esetén kereshet és monitorozhat azure diagnosticst, például újraindítást, teljesítményszámlálókat és hívásokat a System.Diagnostics.Trace felé.
A Visual Studio Megoldáskezelő YourCloudService-szerepkörök>> területén <nyissa meg az egyes szerepkörök tulajdonságait.
A Konfigurációban jelölje be a Diagnosztikai adatok küldése az Application Insightsba jelölőnégyzetet, majd válassza ki a korábban létrehozott Application Insights-erőforrást.
Ha úgy döntött, hogy külön Application Insights-erőforrást használ mindegyik buildkonfigurációhoz, előbb válassza ki a konfigurációt.
Ennek hatására az Application Insights rendszerállapotkulcsait beszúrhatja a ServiceConfiguration.*.cscfg nevű fájlokba. Itt található a mintakód.
Ha meg szeretné változni az Application Insightsnak küldött diagnosztikai adatok szintjét, ezt a .cscfg fájlok közvetlen szerkesztésével teheti meg.
Az SDK telepítése az egyes projektekben
Ezzel a beállítással bármilyen szerepkörhöz hozzáadhat egyéni üzleti telemetriát. Ez a lehetőség részletesebb elemzést nyújt az alkalmazás használatáról és teljesítményéről.
A Visual Studióban konfigurálja külön az Application Insights SDK-t az egyes felhőalkalmazás-projektekhez.
Webes szerepkörök konfigurálásához kattintson a jobb gombbal a projektre, majd válassza az Application Insights konfigurálása vagy az Application Insights-telemetria hozzáadása > lehetőséget.
Feldolgozói szerepkörök konfigurálása:
a. Kattintson a jobb gombbal a projektre, majd válassza a NuGet-csomagok kezelése lehetőséget.
b. Adja hozzá az Application Insights a Windows-kiszolgálókon modult.
Az SDK konfigurálása adatok Application Insights-erőforrásba való küldéséhez:
a. Egy megfelelő indítási függvényben állítsa be a rendszerállapot-kulcsot a .cscfg fájl konfigurációs beállításából:
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault(); configuration.InstrumentationKey = RoleEnvironment.GetConfigurationSettingValue("APPINSIGHTS_INSTRUMENTATIONKEY"); var telemetryClient = new TelemetryClient(configuration);
b. Ismételje meg az "a. lépés" műveletet az alkalmazás minden szerepköréhez. Lásd az alábbi példákat:
Állítsa be, hogy az ApplicationInsights.config fájl mindig a kimeneti könyvtárba legyen másolva.
A .config fájlban lévő üzenet arra kéri, hogy helyezze oda a rendszerállapot-kulcsot. A felhőalkalmazások esetében azonban jobb, ha a .cscfg fájlból állítja be. Ez a megközelítés biztosítja a szerepkör helyes azonosítását a portálon.
Az Állapotfigyelő beállítása teljes SQL-lekérdezések gyűjtéséhez (nem kötelező)
Erre a lépésre csak akkor van szükség, ha teljes SQL-lekérdezéseket szeretne rögzíteni .NET-keretrendszer.
A fájlban
\*.csdef
az indítási feladat hozzáadása minden szerepkörhöz hasonló<Startup> <Task commandLine="AppInsightsAgent\InstallAgent.bat" executionContext="elevated" taskType="simple"> <Environment> <Variable name="ApplicationInsightsAgent.DownloadLink" value="http://go.microsoft.com/fwlink/?LinkID=522371" /> <Variable name="RoleEnvironment.IsEmulated"> <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" /> </Variable> </Environment> </Task> </Startup>
Töltse le a InstallAgent.bat és az InstallAgent.ps1 fájlt, helyezze őket az
AppInsightsAgent
egyes szerepkörprojektek mappájába. Mindenképpen másolja őket a kimeneti könyvtárba Visual Studio-fájltulajdonságokkal vagy szkriptek összeállításával.Minden feldolgozói szerepkörhöz adjon hozzá környezeti változókat:
<Environment> <Variable name="COR_ENABLE_PROFILING" value="1" /> <Variable name="COR_PROFILER" value="{324F817A-7420-4E6D-B3C1-143FBED6D855}" /> <Variable name="MicrosoftInstrumentationEngine_Host" value="{CA487940-57D2-10BF-11B2-A3AD5A13CBC0}" /> </Environment>
Az alkalmazás futtatása és közzététele
Futtassa az alkalmazást, és jelentkezzen be az Azure-ba.
Nyissa meg a létrehozott Application Insights-erőforrásokat.
Az egyes adatpontok a Keresésben jelennek meg, az összesített adatok pedig a Metric Explorerben jelennek meg.
Adjon hozzá további telemetriát (lásd a következő szakaszokat), majd tegye közzé az alkalmazást, hogy élő diagnosztikát és használati visszajelzést kapjon.
Ha nincsenek adatok, tegye a következőket:
- Az egyes események megtekintéséhez nyissa meg a Keresés csempét.
- Az alkalmazásban nyisson meg különböző oldalakat, hogy létrehozhassa a telemetriát.
- Várjon néhány másodpercet, majd kattintson a Frissítés gombra.
Azure Diagnostics-események megtekintése
Az Azure Diagnostics adatait az Application Insightsban a következő helyeken találja:
- A teljesítményszámlálók egyéni mérőszámokként jelennek meg.
- A Windows eseménynaplók nyomkövetésekként és egyéni eseményekként jelennek meg.
- Az alkalmazásnaplók, ETW-naplók és egyéb diagnosztikai infrastruktúra-naplók nyomkövetésként jelennek meg.
A teljesítményszámlálók és az események számának megtekintéséhez nyissa meg a Metrics Explorert , és adja hozzá a következő diagramot:
Az Azure Diagnostics által küldött nyomkövetési naplók közötti kereséshez használja a Keresés vagy az Elemzés lekérdezést. Tegyük fel például, hogy van egy kezeletlen kivétele, amely egy szerepkör összeomlását és újrahasznosítását okozta. Ezek az információk a Windows eseménynaplójában, az Alkalmazás csatornában jelennek meg. A Keresés funkcióval megtekintheti a Windows-eseménynapló hibáját, és lekérheti a kivétel teljes veremkövető kódját. Ezzel segít megtalálni a probléma kiváltó okát.
További telemetria
A következő szakaszok azt ismertetik, hogyan szerezhet be további telemetriát az alkalmazás különböző aspektusaiból.
Feldolgozói szerepköröktől érkező kérések nyomon követése
A webes szerepkörökben a kérések modulja automatikusan gyűjti a HTTP-kérésekkel kapcsolatos adatokat. Az alapértelmezett gyűjtemény viselkedésének felülbírálására vonatkozó példákért tekintse meg az MVCWebRole mintafájlt.
A feldolgozói szerepkörökhöz intézett hívások teljesítményének rögzítése a HTTP-kérésekkel megegyező módon történő nyomkövetéssel hajtható végre. Az Application Insightsban a Kérés telemetriatípus a megnevezett kiszolgálóoldali műveletek egységeit méri, amelyeknek mérhető az idejük, és külön-külön sikerülhetnek vagy meghiúsulhatnak. Bár a HTTP-kéréseket az SDK automatikusan rögzíti, saját kódot szúrhat be a feldolgozói szerepkörökhöz érkező kérések nyomon követéséhez.
Tekintse meg a kérések jelentésére szolgáló feldolgozói mintaszerepkört:
Kivételek
A különböző webalkalmazás-típusok nem kezelt kivételeinek gyűjtéséről az Application Insights kivételeinek figyelése című témakörben olvashat.
A minta webes szerepkör MVC5 és Web API 2 vezérlőkkel rendelkezik. A két vezérlőtől származó nem kezelt kivételeket a rendszer a következő kezelőkkel rögzíti:
- Az AiHandleErrorAttribute beállítása MVC5-vezérlőkhöz az alábbi példában látható módon
- Web API 2-vezérlőkhöz beállított AiWebApiExceptionLogger, ahogyan az ebben a példában látható
A feldolgozói szerepkörök esetében kétféleképpen követheti nyomon a kivételeket:
- Használja a TrackException(pl.) et.
- Ha hozzáadta az Application Insights nyomkövetési figyelő NuGet-csomagot, a System.Diagnostics.Trace használatával naplózhatja a kivételeket a példában látható módon.
Teljesítményszámlálók
A rendszer alapértelmezés szerint az alábbi számlálókat gyűjti:
- \Folyamat(?? APP_WIN32_PROC?)Processzoridő %-a
- \Memory\Available Bytes
- .NET CLR-kivételek(?? APP_CLR_PROC?)Az Exceps Thrown száma / mp
- \Process(??APP_WIN32_PROC??)\Private Bytes
- \Process(??APP_WIN32_PROC??)\IO Data Bytes/sec
- \Processzor(_Total)% processzoridő
Webes szerepkörök esetében a rendszer az alábbi számlálókat is gyűjti:
- \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec
- \ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time
- \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue
Az ApplicationInsights.config szerkesztésével további egyéni vagy egyéb Windows-teljesítményszámlálókat is megadhat a példában látható módon.
A feldolgozói szerepkörök korrelált telemetriai adatai
A gazdag diagnosztikai élmény érdekében megtekintheti, hogy mi vezetett egy sikertelen vagy nagy késésű kéréshez. Webes szerepkörökkel az SDK automatikusan korrelációt állít be a kapcsolódó telemetriai adatok között.
A feldolgozói szerepkörök nézetének eléréséhez egyéni telemetriai inicializálóval állíthat be egy általános Operation.Id környezeti attribútumot az összes telemetriához. Ezzel egy pillantással áttekintheti, hogy a késéssel vagy hibával kapcsolatos problémát függőség vagy kód okozta-e.
Ennek módja az alábbi:
- Állítsa be a korrelációs azonosítót Egy CallContextre , ahogyan az ebben a példában látható. Ebben az esetben a kérésazonosítót használjuk korrelációs azonosítóként.
- Adjon hozzá egy egyéni TelemetryInitializer-implementációt, hogy a Operation.Id a korábban beállított korrelációs azonosítóra állítsa. Példa: ItemCorrelationTelemetryInitializer.
- Adja hozzá az egyéni telemetriainicializálót. Ezt az ApplicationInsights.config fájlban vagy a példában látható kódban teheti meg.
Ügyfél-telemetria
A böngészőalapú telemetriai adatok, például az oldalnézetek száma, az oldalbetöltési idők vagy a szkriptkivételek lekéréséhez, valamint az egyéni telemetriai adatok lapszkriptekben való írásához lásd : JavaScript SDK hozzáadása a weblapokhoz.
Rendelkezésreállási tesztek
Annak érdekében, hogy az alkalmazás élő és rugalmas maradjon, állítson be webes teszteket.
Az összes elem együttes megjelenítése
A rendszer átfogó képe érdekében a fő figyelési diagramokat együtt jelenítheti meg egy irányítópulton. Például hozzáadhatja az egyes szerepkörök kérés- és hibaszámait.
Ha a rendszer más Azure-szolgáltatásokat, például a Stream Analyticset is használ, a monitorozási diagramokat is tartalmazza.
Ha rendelkezik ügyfél-mobilalkalmazással, használja az App Centert. Analytics-lekérdezések létrehozásával megjelenítheti az események számát, és rögzítheti őket az irányítópulton.
Példa
Ez a példa egy olyan szolgáltatást figyel, amely egy webes és két feldolgozói szerepkörrel rendelkezik.
"Nem található metódus" kivétel az Azure-felhőszolgáltatásokban való futtatás során
A .NET LTS-hez készült? A korábbi verziók nem támogatottak automatikusan az Azure-felhőszolgáltatások szerepköreiben. Az alkalmazás futtatása előtt telepítse a .NET LTS-t minden szerepkörre .