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


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.

Áttekintés irányítópult

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.

Diagnosztikára szolgáló beállítások lap

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.

  1. Az Azure Portalon válassza a New>Developer Services>Application Insights lehetőséget.

    Application Insights panel

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

  1. A Visual Studio Megoldáskezelő YourCloudService-szerepkörök>> területén <nyissa meg az egyes szerepkörök tulajdonságait.

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

Az Application Insights konfigurálása

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.

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

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

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

  4. Á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.

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

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

  1. Futtassa az alkalmazást, és jelentkezzen be az Azure-ba.

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

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

  1. Az egyes események megtekintéséhez nyissa meg a Keresés csempét.
  2. Az alkalmazásban nyisson meg különböző oldalakat, hogy létrehozhassa a telemetriát.
  3. 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:

Azure Diagnostics-adatok

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.

Azure Diagnostics-keresés

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:

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.

Teljesítményszámlálók

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 .

Következő lépések