Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Azure-alkalmazás Insights JavaScript SDK konfigurációt biztosít a webalkalmazások nyomon követéséhez, monitorozásához és hibakereséséhez.
SDK konfigurálása
Ezek a konfigurációs mezők nem kötelezőek, és alapértelmezés szerint hamisak, hacsak másként nem rendelkeznek.
Az SDK-konfiguráció hozzáadására vonatkozó utasításokért lásd: SDK-konfiguráció hozzáadása.
| Név | Típus | Alapértelmezett |
|---|---|---|
| fiókazonosító Nem kötelező fiókazonosító, ha az alkalmazás a felhasználókat fiókokba csoportosítja. Nincsenek szóközök, vesszők, pontosvesszők, egyenlőségjelek vagy függőleges vonalak. |
karakterlánc | null |
| hozzáadKérelemKeretet Adjon módot a függőségi naplók környezettel való bővítésére egy API-hívás elején. Az alapértelmezett érték nincs meghatározva. Amikor xhr kapcsolódó környezetet konfigurálja, ellenőriznie kell, hogy létezik-e xhr. Ellenőriznie kell, hogy léteznek-e fetch request és fetch response, ha fetch kapcsolódó környezetet konfigurál. Ellenkező esetben előfordulhat, hogy nem kapja meg a szükséges adatokat. |
(requestContext: IRequestionContext) => {[key: string]: any} | Meghatározatlan |
| ajaxPerfLookupDelay Alapértelmezés szerint 25 ms. Az az időtartam, amit várni kell az Ajax-kérések windows.performance időzítéseinek megkeresésére tett újabb kísérlet előtt, ezredmásodpercben van meghatározva, és közvetlenül átadásra kerül a setTimeout() függvénynek. |
Numerikus | 25 |
| alkalmazásazonosító Az AppId az ügyféloldali AJAX-függőségek és a kiszolgálóoldali kérések közötti korrelációhoz használatos. Ha a Beacon API engedélyezve van, az nem használható automatikusan, de manuálisan is beállítható a konfigurációban. Az alapértelmezett érték null |
karakterlánc | null |
| automatikusLátogatásiIdőKövetés Ha igaz, egy oldalmegtekintésen a rendszer nyomon követi és telemetriaként küldi el az előző rendszerállapotú lap nézetidejét, és elindít egy új időzítőt az aktuális oldalmegtekintéshez. Elküldésre kerül egy PageVisitTimemilliseconds nevű egyéni metrikaként, amely a Date now() függvénnyel van kiszámítva (ha elérhető), és visszaáll az (új Date()).getTime()-ra, ha a now() nem érhető el (IE8 vagy kisebb). Az alapértelmezett érték false. |
Boolean | hamis |
| átalakítNemDefiniált Adjon meg egy lehetőséget a felhasználónak, hogy a nem definiált mezőt felhasználó által megadott értékké konvertálja. |
any |
Meghatározatlan |
| cookieCfg A cookie-használat alapértelmezett beállításaiért tekintse meg az ICookieCfgConfig teljes alapértelmezett beállításait. |
ICookieCfgConfig [Nem kötelező] (2.6.0 óta) |
Meghatározatlan |
| cookieDomain Egyéni cookie-tartomány. Hasznos, ha meg szeretné osztani az Application Insights-cookie-kat az altartományokban. (2.6.0-s verzió óta) Ha cookieCfg.domain definiálva van, az elsőbbséget élvez ezzel az értékkel szemben. |
alias a következőhöz: cookieCfg.domain[Nem kötelező] |
null |
| süti útvonal Egyéni cookie útvonal. Hasznos, ha az Application Insights-cookie-kat egy Application Gateway mögött szeretné megosztani. Ha cookieCfg.path meg van adva, elsőbbséget élvez. |
alias a következőhöz: cookieCfg.path[Nem kötelező] (2.6.0 óta) |
null |
| korrelációfejléc-domainek Korrelációs fejlécek engedélyezése adott tartományokhoz |
karakterlánc[] | Meghatározatlan |
| correlációFejlécKizártDomainek Adott tartományok korrelációs fejléceinek letiltása |
karakterlánc[] | Meghatározatlan |
| kizárási minták a korrelációs fejléchez Korrelációs fejlécek letiltása reguláris kifejezések használatával |
regex[] | Meghatározatlan |
| createPerfMgr A visszahívási függvény, amely szükség esetén IPerfManager-példány létrehozásához van meghívva, és enablePerfMgr engedélyezve van, lehetővé teszi a PerfManager() alapértelmezett létrehozásának felülbírálását anélkül, hogy inicializálást kellene végeznie setPerfMgr() . |
(core: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager | Meghatározatlan |
| customHeaders A felhasználó lehetősége további fejlécek megadására egyéni végpontok használatakor. A customHeaders nem lesz hozzáadva a böngésző leállítási pillanatában a jeladók használatakor. Az egyéni fejlécek hozzáadása az IE9-ben és a korábbi verziókban nem támogatott. |
[{header: string, value: string}] |
Meghatározatlan |
| diagnosticLogInterval (belső) Lekérdezési időköz (ms-ben) a belső naplózási sorhoz |
Numerikus | 10 000 |
| AJAX-nyomonkövetés letiltása Ha igaz, az Ajax-hívások nincsenek automatikusan gyűjtve. Az alapértelmezett érték false. |
Boolean | hamis |
| sütik használatának letiltása Alapértelmezett beállítás: hamisra állítva. Logikai érték, amely azt jelzi, hogy az SDK letiltja-e a cookie-k használatát. Ha igaz, az SDK nem tárol és nem olvas be adatokat a cookie-kból. (2.6.0-s verzió óta) Ha cookieCfg.enabled meg van adva, elsőbbséget élvez. A cookie-használat a core.getCookieMgr().setEnabled(true) inicializálás után újra engedélyezhető. |
alias a következőhöz: cookieCfg.enabled[Nem kötelező] |
hamis |
| korrelációs fejlécletiltása Ha hamis, az SDK két fejlécet ('Request-Id' és 'Request-Context' ) ad hozzá az összes függőségi kéréshez, hogy korrelálja őket a kiszolgálóoldal megfelelő kéréseivel. Az alapértelmezett érték false. |
Boolean | hamis |
| adatvesztés-elemzés letiltása Ha ez hamis, indításkor ellenőrzik a belső telemetria küldő puffereit a még nem küldött elemek esetében. |
Boolean | igaz |
| disableExceptionTracking Ha igaz, a kivételek nem lesznek automatikusan felvéve. Az alapértelmezett érték false. |
Boolean | hamis |
| fetch nyomkövetés letiltása Az alapértelmezett beállítás disableFetchTracking az false, ami azt jelenti, hogy engedélyezve van. A 2.8.10 előtti verziókban azonban alapértelmezés szerint le lett tiltva. Ha a true beállításra van állítva, a Fetch kérések nincsenek automatikusan gyűjtve. Az alapértelmezett beállítás a 2.8.0-s verzióra truefalse változott. |
Boolean | hamis |
| tiltsa_le_a_feltöltést_a_befogadó_leállítása_előtt Alapértelmezett beállítás: hamisra állítva. Ha igaz, a rendszer nem hívja meg a kiürítési metódust az onBeforeUnload eseményindítók esetén |
Boolean | hamis |
| az Ikey elavulási üzenet letiltása A rendszerállapot-kulcs elavulását jelző hibaüzenet letiltása. Ha igaz, a hibaüzenetek NEM lesznek elküldve. |
Boolean | igaz |
| eszköz-azonosítási kulcs érvényesítésének letiltása Ha igaz, a rendszerállapotkulcs-ellenőrzés megkerülve lesz. Az alapértelmezett érték hamis. |
Boolean | hamis |
| telemetria letiltása Ha igaz, a telemetria nem gyűjthető és nem küldhető el. Az alapértelmezett érték false. |
Boolean | hamis |
| Xhr letiltása Alapértelmezés szerint ne használja az XMLHttpRequest vagy az XDomainRequest fájlt (az Internet Explorer < 9-es verziójához), hanem próbálja meg használni a fetch() vagy a sendBeacon parancsot. Ha más átvitel nem érhető el, az XMLHttpRequestet használja |
Boolean | hamis |
| elosztott nyomkövetési mód Beállítja az elosztott nyomkövetési módot. Ha AI_AND_W3C mód vagy W3C mód be van állítva, a W3C nyomkövetési környezet fejlécei (traceparent/tracestate) jönnek létre, és az összes kimenő kérés tartalmazza. Az AI_AND_W3C biztosítja a visszamenőleges kompatibilitást minden korábbi Application Insights által telepített szolgáltatással. |
numerikus vagy DistributedTracingModes |
DistributedTracing Modes.AI_AND_W3C |
| engedd meg az Ajax hibaállapotszöveg megjelenítését Alapértelmezett beállítás: hamisra állítva. Ha igaz, foglalja bele a válaszhiba adatszövegeit logikai adatként a sikertelen AJAX-kérelmek függőségi eseményébe. |
Boolean | hamis |
| enableAjaxPerfTracking Alapértelmezett beállítás: hamisra állítva. Jelző a jelentett Ajax (XHR és beolvasás) jelentett metrikákban való kereséshez és az extra böngészőablak.teljesítmény időzítésének engedélyezéséhez. |
Boolean | hamis |
| automatikus útvonal követés engedélyezése Útvonalváltozások automatikus nyomon követése egyoldalas alkalmazásokban (SPA). Ha igaz, minden útvonalmódosítás új Oldalnézetet küld az Application Insightsnak. A hash útvonalváltozásai ( example.com/foo#bar) új oldalletöltésekként is rögzítve lesznek.Megjegyzés: Ha engedélyezi ezt a mezőt, ne engedélyezze a history objektumot a React útválasztó konfigurációjához, mert ekkor több oldalmegtekintési eseményt kapna. |
Boolean | hamis |
| CORS-korreláció engedélyezése Ha igaz, az SDK két fejlécet ("Request-Id" és "Request-Context") ad hozzá az összes CORS-kéréshez, hogy korrelálja a kimenő AJAX-függőségeket a kiszolgálóoldal megfelelő kéréseivel. Az alapértelmezett érték hamis |
Boolean | hamis |
| Hibakeresés engedélyezése Ha igaz, a belső hibakeresési adatok kivételként kerülnek naplózás helyett , függetlenül az SDK naplózási beállításaitól. Az alapértelmezett érték false. Megjegyzés: Ennek a beállításnak az engedélyezése azt eredményezi, hogy minden belső hiba esetén a telemetria eldobásra kerül. Hasznos lehet az SDK konfigurálásával vagy használatával kapcsolatos problémák gyors azonosításához. Ha a hibakeresés során nem szeretné elveszíteni a telemetriát, fontolja meg a használatát loggingLevelConsole vagy loggingLevelTelemetry helyett.enableDebug |
Boolean | hamis |
| enablePerfMgr Amikor engedélyezve van (true), a doPerf() segítőn keresztül perfEventeket kibocsátó kódhoz helyi perfEventeket hoz létre. Használható az SDK-n belüli teljesítményproblémák azonosítására a használat alapján, vagy opcionálisan a saját eszközkódján belül. |
Boolean | hamis |
| engedélyezzeAKérésFejlécNyomonKövetését Ha igaz, az AJAX és Fetch kérésfejlécek nyomon követhetők, alapértelmezés szerint hamis. Ha az ignoreHeaders nincs konfigurálva, a rendszer nem naplózza az engedélyezési és az X-API-kulcsfejléceket. |
Boolean | hamis |
| engedélyezzeAVálaszFejlécKövetést Ha igaz, az AJAX és Fetch kérések válaszfejléceit követi, alapértelmezés szerint hamis. Ha az ignoreHeaders nincs konfigurálva, a www-authenticate fejléc nincs naplózva. |
Boolean | hamis |
| engedélyezze a sessionStorage puffer tárolását Alapértelmezett igaz. Ha igaz, a rendszer az összes nem küldött telemetriát tartalmazó puffert munkamenet-tárolóban tárolja. A puffer visszaállítása lapbetöltés esetén |
Boolean | igaz |
| kezeletlen ígéretelutasítások követésének engedélyezése Ha igaz, a nem kezelt ígéretek elutasítása automatikusan JavaScript-hibaként jelenik meg. Ha a disableExceptionTracking igaz (ne kövesse nyomon a kivételeket), a konfigurációs érték figyelmen kívül lesz hagyva, és a nem kezelt ígéretek elutasítása nem lesz jelentett. |
Boolean | hamis |
| eventsLimitInMem Azon események száma, amelyek a memóriában tárolhatók, mielőtt az SDK elkezdi elvetni az eseményeket, ha nem használja a Session Storage-t (az alapértelmezettet). |
szám | 10 000 |
| kérés kizárása az automatikus nyomkövetési minták közül Adjon meg egy módot arra, hogy kizárjon egy adott útvonalat az XMLHttpRequest vagy a Fetch kérés automatikus nyomon követéséből. Ha meg van adva, egy Ajax/fetch kérés esetén, amely szerint a kérelem URL-címe megegyezik a regex mintákkal, az automatikus nyomon követés ki van kapcsolva. Az alapértelmezett érték nincs meghatározva. |
karakterlánc[] | RegExp[] | Meghatározatlan |
| featureOptIn Adja meg a funkció részvételi részleteit. Ez a konfigurációs mező csak a 3.0.3-s és újabb verziókban érhető el. |
IFeatureOptIn | Meghatározatlan |
| idLength Azonosítja az új véletlenszerű munkamenetek és felhasználói azonosítók létrehozásához használt alapértelmezett hosszt. Az alapértelmezett érték 22, az előző alapértelmezett érték 5 (v2.5.8 vagy annál kisebb), ha meg kell tartania az előző maximális hosszt, akkor az értéket 5 értékre kell állítania. |
Numerikus | 22 |
| fejlécek figyelmen kívül hagyása AJAX > A naplóadatokban figyelmen kívül hagyandó kérés- és válaszfejlécek lekérése. Az alapértelmezett érték felülbírálásához vagy elvetéséhez adjon hozzá egy tömböt, amely az összes kizárandó fejlécet tartalmazza, vagy egy üres tömböt a konfigurációhoz. |
karakterlánc[] | ["Engedélyezés", "X-API-Key", "WWW-Hitelesítés"] |
| isBeaconApiLetiltva Ha hamis, az SDK az összes telemetriát a Beacon API használatával küldi el |
Boolean | igaz |
| isBrowserLinkTrackingEnabled (böngésző-hivatkozási nyomkövetés engedélyezése) Az alapértelmezett érték false. Ha igaz, az SDK nyomon követi az összes Böngészőhivatkozás-kérést . |
Boolean | hamis |
| LetiltvaAzÚjrapróbálkozás Alapértelmezett beállítás: hamisra állítva. Hamis esetén próbálkozzon újra a 206-osnál (részleges sikeresség), a 408-asnál (időtúllépés), a 429-esnél (túl sok kérés), az 500-asnál (belső kiszolgálóhiba), az 503-asnál (a szolgáltatás nem érhető el) és a 0-snál (offline állapotban, csak ha észlelve) |
Boolean | hamis |
| isTárolásHasználatTiltva van Ha igaz, az SDK nem tárol vagy olvas be adatokat a helyi és a munkamenet-tárolóból. Az alapértelmezett érték false. |
Boolean | hamis |
| loggingLevelConsole Naplózza a belső Application Insights hibákat a konzolon. 0: kikapcsolva, 1: Csak kritikus hibák, 2: Minden (hibák és figyelmeztetések) |
Numerikus | 0 |
| naplózásiSzintTelemetria Belső Application Insights hibákat küld telemetriaként. 0: kikapcsolva, 1: Csak kritikus hibák, 2: Minden (hibák és figyelmeztetések) |
Numerikus | 1 |
| maxAjaxCallsPerView Alapértelmezett 500 – azt szabályozza, hogy oldalnézetenként hány Ajax-hívást figyel a rendszer. Állítsa a -1 értékre az összes (korlátlan) Ajax-hívás figyeléséhez az oldalon. |
Numerikus | ötszáz |
| maxAjaxPerfLekérdezésiKísérletek Alapértelmezett érték: 3. A window.performance időzítéseinek (ha elérhető) maximális száma szükséges. Nem minden böngésző tölti ki a window.performance fájlt az XHR-kérelem végének jelentése előtt. A lekéréses kérelmek esetében a befejezés után hozzáadásra kerül. |
Numerikus | 3 |
| maxBatchInterval (maximális kötegelt időköz) Mennyi ideig kell gyűjteni a telemetriát a küldés előtt (ezredmásodperc) |
Numerikus | 15 000 |
| maximális batch méret bájtban A telemetria csomag maximális mérete. Ha egy köteg túllépi ezt a korlátot, a rendszer azonnal elküldi, és elindít egy új köteget |
Numerikus | 10 000 |
| névelőtag Egy opcionális érték, amelyet a localStorage és a munkamenet süti nevének utótagjaként használnak. |
karakterlánc | Meghatározatlan |
| onunloadDisableBeacon Alapértelmezett beállítás: hamisra állítva. a tabulátor bezárásakor az SDK az összes fennmaradó telemetriát elküldi a Beacon API használatával |
Boolean | hamis |
| onunloadDisableFetch Ha a beolvasási megőrzés támogatott, ne használja eseményküldésre a kipakolás során, előfordulhat, hogy a rendszer továbbra is visszaáll a beolvasásra() a megőrzés nélkül |
Boolean | hamis |
| felülírOldalmegtekintésiIdőtartamot Ha igaz, a trackPageView alapértelmezett viselkedése módosul, hogy az oldalnézet időtartamának befejező szakaszát rögzítse, amikor a trackPageView hívásra kerül. Ha hamis és nincs egyéni időtartam a trackPageView szolgáltatáshoz, a rendszer a navigációs időzítési API-val számítja ki a lapnézet teljesítményét. Az alapértelmezett érték false. |
Boolean | hamis |
| perfEvtsSendAll Ha az enablePerfMgr A szülő IPerfEvent olyan esemény, amelyben az esemény létrehozásakor még nem fut más IPerfEvent, és a szülőtulajdonsága nem null értékű vagy nem definiált. A 2.5.7-as verzió óta |
Boolean | hamis |
| mintavételi százalék Az elküldött események százalékos aránya. Az alapértelmezett érték 100, ami azt jelenti, hogy a rendszer minden eseményt elküld. Állítsa be, ha meg szeretné őrizni az adatkorlátot a nagy méretű alkalmazásokhoz. |
Numerikus | 100 |
| sdkExtension Beállítja az SDK-bővítmény nevét. Csak betűrendes karakterek engedélyezettek. A bővítmény neve előtagként lesz hozzáadva az "ai.internal.sdkVersion" címkéhez (például :ext_javascript:2.0.0"). Az alapértelmezett érték null. |
karakterlánc | null |
| sessionCookiePostfix Nem kötelező érték, amelyet a munkamenet cookie-jának nevének utótagjaként használnak. Ha nincs definiálva, a rendszer a namePrefix nevet használja a munkamenet cookie-jának nevének utótagjaként. |
karakterlánc | Meghatározatlan |
| munkamenetLejáratiMs A rendszer naplózza a munkamenetet, ha ennyi ideig, ezredmásodpercben folytatja. Az alapértelmezett érték 24 óra |
Numerikus | 86400000 |
| munkamenetMegújításMs A rendszer akkor naplóz egy munkamenetet, ha a felhasználó ennyi ideig inaktív ezredmásodpercben. Az alapértelmezett érték 30 perc |
Numerikus | 1800000 |
| throttleMgrCfg Állítsa be a throttle kezelő konfigurációját kulcs alapján. Ez a konfigurációs mező csak a 3.0.3-s és újabb verziókban érhető el. |
{[key: number]: IThrottleMgrConfig} |
Meghatározatlan |
| userCookiePostfix Nem kötelező érték, amelyet a felhasználónév utótagjaként használnak a felhasználói cookie-névhez. Ha nincs definiálva, a rendszer nem ad hozzá utótagot a felhasználói cookie-névhez. |
karakterlánc | Meghatározatlan |
Elosztott nyomkövetés
A modern felhő- és mikroszolgáltatás-architektúrák egyszerű, egymástól függetlenül üzembe helyezhető szolgáltatásokat tettek lehetővé, amelyek csökkentik a költségeket, miközben növelik a rendelkezésre állást és az átviteli sebességet. Ez azonban megnehezítette az általános rendszerek érvelését és hibakeresését. Az elosztott nyomkövetés egy olyan teljesítményprofilozóval oldja meg ezt a problémát, amely a felhő- és mikroszolgáltatás-architektúrák hívásveremeihez hasonlóan működik.
Az Azure Monitor két szolgáltatást biztosít az elosztott nyomkövetési adatok használatához: az egyetlen tranzakció/kérelem tranzakciódiagnosztikai nézetét és az alkalmazástérkép nézetet, amely a rendszerek interakcióit mutatja be.
Az Application Insights külön monitorozza az egyes összetevőket, és elosztott telemetriai korreláció használatával észleli, hogy melyik összetevő felelős a hibákért vagy a teljesítménycsökkenésért. Ez a cikk az Application Insights által használt különböző nyelvek és platformok korrelációs taktikáinak adatmodellét, környezetpropagálási technikáit, protokolljait és implementálását ismerteti.
Elosztott nyomkövetés engedélyezése az Application Insightson keresztül autoinstrumentációval vagy SDK-kkal
A .NET, a .NET Core, a Java, a Node.jsés a JavaScript alkalmazáshoz készült Application Insights-ügynökök és SDK-k mind támogatják az elosztott nyomkövetést natív módon.
A megfelelő Application Insights SDK telepítésével és konfigurálásával a rendszer automatikusan gyűjti a nyomkövetési információkat a népszerű keretrendszerekhez, kódtárakhoz és technológiákhoz az SDK függőségi autoklektorai által. A támogatott technológiák teljes listája elérhető a Dependency autocollection dokumentációjában.
Bármely technológia manuálisan is nyomon követhető a TelemetryClient TrackDependency hívásával.
Adatmodell telemetriai korrelációhoz
Az Application Insights egy adatmodellt határoz meg az elosztott telemetriai korrelációhoz. Ha a telemetriát logikai művelethez szeretné társítani, minden telemetriai elemhez tartozik egy környezetmező.operation_Id Az elosztott nyomkövetés minden telemetriai eleme megosztja ezt az azonosítót. Így akkor is társíthat más összetevők által jelentett telemetriát, ha egyetlen rétegből veszíti el a telemetriát.
Az elosztott logikai műveletek általában kisebb műveletekből állnak, amelyeket az egyik összetevő feldolgoz.
A kérelemtelemetria határozza meg ezeket a műveleteket. Minden kérelemtelemetriaelem saját id , amely egyedileg és globálisan azonosítja azt. A kérelemhez társított összes telemetriai elemnek (mint például a nyomkövetések és kivételek) a operation_parentId értékét a kérelem id értékére kell beállítania.
A függőségi telemetria minden kimenő műveletet jelöl, például egy másik összetevőhöz irányuló HTTP-hívást. Meghatározza a saját id-ját is, amely globálisan egyedi. A függőségi hívás által kezdeményezett telemetriai kérések ezt id használják operation_parentId-ként.
Az elosztott logikai művelet nézetét a operation_Id, operation_parentId, request.id és dependency.id segítségével hozhatja létre. Ezek a mezők a telemetriai hívások oksági sorrendjét is meghatározzák.
Mikroszolgáltatási környezetben az összetevőkből származó nyomkövetések különböző tárolóelemekre is áttérhetnek. Minden összetevő rendelkezhet saját kapcsolati sztringgel az Application Insightsban. A logikai művelet telemetriájának lekéréséhez az Application Insights minden tárolóelemből lekérdezi az adatokat.
Ha a tárelemek száma nagy, szüksége van útmutatásra arról, hogy hol keresse a következőt. Az Application Insights adatmodell két mezőt határoz meg a probléma megoldásához: request.source és dependency.target. Az első mező azonosítja a függőségi kérelmet kezdeményező összetevőt. A második mező azonosítja, hogy melyik összetevő válaszolt a függőségi hívásra.
További információ a több különálló példányból történő lekérdezésről: Adatok lekérdezése Log Analytics-munkaterületeken, -alkalmazásokon és -erőforrásokon az Azure Monitorban.
Example
Lássunk egy példát. A Stock Prices nevű alkalmazás egy részvény aktuális piaci árát jeleníti meg egy Stock nevű külső API használatával. A Tőzsdei árak alkalmazásnak van egy Stock lap nevű oldala, amelyet az ügyfél webböngészője a segítségével GET /Home/Stocknyit meg. Az alkalmazás HTTP-hívással GET /api/stock/valuelekérdezi a Stock API-t.
Az eredményként kapott telemetriát egy lekérdezés futtatásával elemezheti:
(requests | union dependencies | union pageViews)
| where operation_Id == "STYz"
| project timestamp, itemType, name, id, operation_ParentId, operation_Id
Az eredményekben az összes telemetriaelem osztozik a gyökérben operation_Id. Amikor Ajax-hívást kezdeményez a lapról, a rendszer egy új egyedi azonosítót (qJSXU) rendel a függőségi telemetriahoz, és a pageView azonosítóját operation_ParentIdhasználja a rendszer. A kiszolgálókérés ezután az Ajax-azonosítót használja a következőként operation_ParentId: .
| elemTípus | név | azonosító | operation_ParentId | operation_Id |
|---|---|---|---|---|
| pageView | Készlet oldal | STYz |
STYz |
|
| függőség | GET /Home/Stock | qJSXU |
STYz |
STYz |
| kérelem | GET Kezdőlap/Készlet | KqKwlrSt9PA= |
qJSXU |
STYz |
| függőség | GET /api/stock/value | bBrf2L7mm2g= |
KqKwlrSt9PA= |
STYz |
Amikor a hívást GET /api/stock/value egy külső szolgáltatáshoz intézik, ismernie kell a kiszolgáló identitását, hogy megfelelően be tudja állítani a dependency.target mezőt. Ha a külső szolgáltatás nem támogatja a figyelést, target a szolgáltatás állomásnevére van állítva. Például: stock-prices-api.com. Ha azonban a szolgáltatás egy előre definiált HTTP-fejléc visszaadásával azonosítja magát, tartalmazza azt a szolgáltatásidentitást, target amely lehetővé teszi az Application Insights számára, hogy elosztott nyomkövetést hozzon létre a szolgáltatásból származó telemetriai adatok lekérdezésével.
Korrelációs fejlécek a W3C TraceContext használatával
Az Application Insights a W3C Trace-Contextre vált, amely a következőket határozza meg:
-
traceparent: A globálisan egyedi műveleti azonosítót és a hívás egyedi azonosítóját hordozza. -
tracestate: Rendszerspecifikus nyomkövetési környezetet hordoz.
Az Application Insights SDK legújabb verziója támogatja a Trace-Context protokollt, de előfordulhat, hogy be kell jelentkeznie. (Az Application Insights SDK által támogatott korábbi korrelációs protokolllal való visszamenőleges kompatibilitás megmarad.)
A korrelációs HTTP protokoll, más néven Request-Id elavult. Ez a protokoll két fejlécet határoz meg:
-
Request-Id: A hívás globálisan egyedi azonosítóját hordozza. -
Correlation-Context: Az elosztott nyomkövetési tulajdonságok név-érték párok gyűjteményét hordozza.
Az Application Insights a korrelációs HTTP protokoll bővítményét is meghatározza. A Request-Context név-érték párokat használja a közvetlen hívó vagy hívott által használt tulajdonságok gyűjteményének propagálására. Az Application Insights SDK ezzel a fejléccel állítja be a dependency.target és request.source mezőket.
A W3C Trace-Context és az Application Insights adatmodelljei a következő módon illeszkednek:
| Application Insights | W3C TraceContext (nyomkövetési környezet) |
|---|---|
Id és RequestDependency |
parent-id |
Operation_Id |
nyomkövetési azonosító |
Operation_ParentId |
a span szülőazonosítója . Ennek a mezőnek üresnek kell lennie, ha gyökérszakaszról van szó. |
További információ: Application Insights telemetriai adatmodell.
W3C elosztott nyomkövetés támogatásának engedélyezése
Ez a funkció alapértelmezés szerint engedélyezve van a JavaScripthez, és a fejlécek automatikusan bekerülnek, ha az üzemeltetési lap tartománya megegyezik azzal a tartománnyal, amelybe a kéréseket küldi (például a tárhelyoldal és example.com az Ajax-kérelmek küldése example.com). Az elosztott nyomkövetési mód módosításához használja a distributedTracingMode konfigurációs mezőt. A AI_AND_W3C alapértelmezés szerint az Application Insights által létrehozott örökölt szolgáltatásokkal való visszamenőleges kompatibilitás érdekében van megadva.
-
Adja hozzá a következő konfigurációt:
distributedTracingMode: DistributedTracingModes.W3C JavaScript (web) SDK Loader Script-alapú beállítás
Adja hozzá a következő konfigurációt:
distributedTracingMode: 2 // DistributedTracingModes.W3C
Ha az XMLHttpRequest vagy a Fetch Ajax-kérelmeket egy másik tartománygazda továbbítja, beleértve az altartományokat is, a korrelációs fejlécek alapértelmezés szerint nem jelennek meg. A funkció engedélyezéséhez állítsa a konfigurációs mezőtenableCorsCorrelation a következőretrue. Ha a(z) enableCorsCorrelation értéket true-re állítja, minden XMLHttpRequest és Fetch Ajax kérés tartalmazza a korrelációs fejléceket. Ennek eredményeképpen, ha a meghívandó kiszolgálón lévő alkalmazás nem támogatja a traceparent fejlécet, a kérés meghiúsulhat attól függően, hogy a böngésző/verzió képes-e érvényesíteni a kérést a kiszolgáló által elfogadott fejlécek alapján. A konfigurációs mező használatávalcorrelationHeaderExcludedDomains kizárhatja a kiszolgáló tartományát az összetevők közötti korrelációs fejlécinjektálásból. Például kizárhatja correlationHeaderExcludedDomains: ['*.auth0.com'] a korrelációs fejléceket az Auth0 identitásszolgáltatónak küldött kérelmekből.
Fontos
A korreláció engedélyezéséhez szükséges összes konfiguráció megtekintéséhez tekintse meg a JavaScript korrelációs dokumentációját.
Telemetria szűrése és előfeldolgozása
Az SDK-ból való küldés előtt kódot írhat a telemetriai adatok szűréséhez, módosításához vagy bővítéséhez. A feldolgozás a szabványos telemetriai modulokból, például a HTTP-kérések gyűjtéséből és a függőséggyűjtésből küldött adatokat tartalmazza.
A szűrés módosíthatja vagy elvetheti a telemetriát, mielőtt továbbítanák az SDK-ból, az
ITelemetryProcessorimplementálása által. Csökkentheti például a telemetriai adatok mennyiségét a robotok kéréseinek kizárásával. A mintavételezéssel ellentétben Ön teljes mértékben szabályozhatja az elküldött vagy elvetett adatokat, de ez az összesített naplókon alapuló metrikákra is hatással van. Az elemek elvetésének módjától függően előfordulhat, hogy elveszíti a kapcsolódó elemek közötti navigálás lehetőségét is.Adjon hozzá vagy módosítson tulajdonságokat az alkalmazásából küldött telemetriai adatokhoz egy
ITelemetryInitializermegvalósításával. Hozzáadhat például számított értékeket vagy verziószámokat, amelyekkel szűrheti az adatokat a portálon.A mintavételezés a statisztikák befolyásolása nélkül csökkenti a telemetriai adatok mennyiségét. Összetartja a kapcsolódó adatpontokat, így a probléma diagnosztizálásakor navigálhat közöttük. A portálon a mintavételezés kompenzálása érdekében megszorozzák az összes értéket.
Megjegyzés:
Az SDK API egyéni események és metrikák küldéséhez használható.
Filtering
Ezzel a technikával közvetlenül szabályozhatja, hogy mi szerepel a telemetriai adatfolyamban, vagy mit zár ki belőle. A szűrés segítségével eltávolíthatja a telemetriai elemeket az Application Insightsba küldött adatokból. A szűrést mintavételezéssel vagy külön is használhatja.
A telemetria szűréséhez írjon egy telemetriai processzort, és regisztrálja azt a TelemetryConfiguration. Minden telemetria a processzoron megy keresztül. Dönthet úgy, hogy elveti a streamből, vagy átadja a lánc következő processzorának. A standard modulokból, például a HTTP-kérelemgyűjtőből és a függőséggyűjtőből származó telemetriai adatok, valamint a saját maga által nyomon követett telemetriai adatok is szerepelnek. Szűrheti például a robotok kéréseivel vagy a sikeres függőségi hívásokkal kapcsolatos telemetriát.
Figyelmeztetés
Az SDK-ból a processzorok használatával küldött telemetriai adatok szűrésével megszűrheti a portálon látható statisztikákat, és megnehezítheti a kapcsolódó elemek követését.
Ehelyett fontolja meg a mintavételezést.
JavaScript-webalkalmazások
Az ITelemetryInitializer használatával szűrheti a Telemetriát JavaScript-webalkalmazásokból.
Telemetria-inicializáló visszahívási függvény létrehozása. A visszahívási függvény paraméterként szerepel
ITelemetryItem, amely a feldolgozandó esemény. A visszahívásból afalsevisszaadása azt eredményezi, hogy a telemetriai elem kiszűrésre kerül.var filteringFunction = (envelope) => { if (envelope.data.someField === 'tobefilteredout') { return false; } return true; };Adja hozzá a telemetriai inicializáló visszahívását:
appInsights.addTelemetryInitializer(filteringFunction);
ITelemetryProcessor és ITelemetryInitializer
Mi a különbség a telemetriai processzorok és a telemetriai inicializálók között?
- Vannak átfedések a velük elvégezhető műveletekben. Mindkettő használható a telemetria tulajdonságainak hozzáadására vagy módosítására, bár javasoljuk, hogy inicializálókat használjon erre a célra.
- A telemetriai inicializálók mindig a telemetriai processzorok előtt futnak.
- A telemetriai inicializálók több alkalommal is meghívhatók. Konvenció szerint nem állítottak be olyan tulajdonságot, amely már be lett állítva.
- A telemetriai processzorokkal teljes mértékben lecserélhet vagy elvethet egy telemetriai elemet.
- A rendszer minden regisztrált telemetriai inicializálót meghív minden telemetriai elemhez. A telemetriai processzorok esetében az SDK garantálja az első telemetriai processzor meghívását. Az előző telemetriai processzorok határozzák meg, hogy a többi processzort meghívják-e.
- Telemetriai inicializálókkal bővítheti a telemetriát több tulajdonsággal, vagy felülbírálhat egy meglévőt. Telemetria-feldolgozóval szűrheti ki a telemetriát.
Tulajdonságok hozzáadása/módosítása
Telemetriai inicializálókkal bővítheti a telemetriát további információkkal, vagy felülbírálhatja a standard telemetriai modulok által beállított telemetriai tulajdonságokat.
A webes Application Insights például telemetriát gyűjt a HTTP-kérelmekről. Alapértelmezés szerint az =400 válaszkódú >kéréseket sikertelenként jelöli meg. Ha ehelyett a 400-at szeretné sikeresnek tekinteni, megadhat egy telemetriai inicializálót, amely beállítja a siker tulajdonságot.
Ha telemetriai inicializálót ad meg, a rendszer akkor hívja meg, amikor a Track*() metódusok bármelyikét meghívja. Ez az inicializáló a standard telemetriai modulok által meghívott metódusokat tartalmazza Track() . Ezek a modulok konvenció szerint nem állítottak be olyan tulajdonságot, amelyet egy inicializáló már beállított. A telemetriai inicializálók hívása a telemetriai processzorok meghívása előtt történik, így az inicializálók által végzett összes bővítés látható a processzorok számára.
JavaScript-telemetria-inicializálók
Szükség esetén szúrjon be egy JavaScript-telemetria-inicializálót. További információ az Application Insights JavaScript SDK telemetriai inicializálóiról: Telemetriai inicializálók.
Telemetria-inicializáló beszúrása az onInit visszahívási függvény hozzáadásával a JavaScript (Web) SDK Loader Script konfigurációjában:
<script type="text/javascript">
!(function (cfg){function e(){cfg.onInit&&cfg.onInit(n)}var x,w,D,t,E,n,C=window,O=document,b=C.location,q="script",I="ingestionendpoint",L="disableExceptionTracking",j="ai.device.";"instrumentationKey"[x="toLowerCase"](),w="crossOrigin",D="POST",t="appInsightsSDK",E=cfg.name||"appInsights",(cfg.name||C[t])&&(C[t]=E),n=C[E]||function(g){var f=!1,m=!1,h={initialize:!0,queue:[],sv:"8",version:2,config:g};function v(e,t){var n={},i="Browser";function a(e){e=""+e;return 1===e.length?"0"+e:e}return n[j+"id"]=i[x](),n[j+"type"]=i,n["ai.operation.name"]=b&&b.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(h.sv||h.version),{time:(i=new Date).getUTCFullYear()+"-"+a(1+i.getUTCMonth())+"-"+a(i.getUTCDate())+"T"+a(i.getUTCHours())+":"+a(i.getUTCMinutes())+":"+a(i.getUTCSeconds())+"."+(i.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z",iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}},ver:undefined,seq:"1",aiDataContract:undefined}}var n,i,t,a,y=-1,T=0,S=["js.monitor.azure.com","js.cdn.applicationinsights.io","js.cdn.monitor.azure.com","js0.cdn.applicationinsights.io","js0.cdn.monitor.azure.com","js2.cdn.applicationinsights.io","js2.cdn.monitor.azure.com","az416426.vo.msecnd.net"],o=g.url||cfg.src,r=function(){return s(o,null)};function s(d,t){if((n=navigator)&&(~(n=(n.userAgent||"").toLowerCase()).indexOf("msie")||~n.indexOf("trident/"))&&~d.indexOf("ai.3")&&(d=d.replace(/(\/)(ai\.3\.)([^\d]*)$/,function(e,t,n){return t+"ai.2"+n})),!1!==cfg.cr)for(var e=0;e<S.length;e++)if(0<d.indexOf(S[e])){y=e;break}var n,i=function(e){var a,t,n,i,o,r,s,c,u,l;h.queue=[],m||(0<=y&&T+1<S.length?(a=(y+T+1)%S.length,p(d.replace(/^(.*\/\/)([\w\.]*)(\/.*)$/,function(e,t,n,i){return t+S[a]+i})),T+=1):(f=m=!0,s=d,!0!==cfg.dle&&(c=(t=function(){var e,t={},n=g.connectionString;if(n)for(var i=n.split(";"),a=0;a<i.length;a++){var o=i[a].split("=");2===o.length&&(t[o[0][x]()]=o[1])}return t[I]||(e=(n=t.endpointsuffix)?t.location:null,t[I]="https://"+(e?e+".":"")+"dc."+(n||"services.visualstudio.com")),t}()).instrumentationkey||g.instrumentationKey||"",t=(t=(t=t[I])&&"/"===t.slice(-1)?t.slice(0,-1):t)?t+"/v2/track":g.endpointUrl,t=g.userOverrideEndpointUrl||t,(n=[]).push((i="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",o=s,u=t,(l=(r=v(c,"Exception")).data).baseType="ExceptionData",l.baseData.exceptions=[{typeName:"SDKLoadFailed",message:i.replace(/\./g,"-"),hasFullStack:!1,stack:i+"\nSnippet failed to load ["+o+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(b&&b.pathname||"_unknown_")+"\nEndpoint: "+u,parsedStack:[]}],r)),n.push((l=s,i=t,(u=(o=v(c,"Message")).data).baseType="MessageData",(r=u.baseData).message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+l+")").replace(/\"/g,"")+'"',r.properties={endpoint:i},o)),s=n,c=t,JSON&&((u=C.fetch)&&!cfg.useXhr?u(c,{method:D,body:JSON.stringify(s),mode:"cors"}):XMLHttpRequest&&((l=new XMLHttpRequest).open(D,c),l.setRequestHeader("Content-type","application/json"),l.send(JSON.stringify(s)))))))},a=function(e,t){m||setTimeout(function(){!t&&h.core||i()},500),f=!1},p=function(e){var n=O.createElement(q),e=(n.src=e,t&&(n.integrity=t),n.setAttribute("data-ai-name",E),cfg[w]);return!e&&""!==e||"undefined"==n[w]||(n[w]=e),n.onload=a,n.onerror=i,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||a(0,t)},cfg.ld&&cfg.ld<0?O.getElementsByTagName("head")[0].appendChild(n):setTimeout(function(){O.getElementsByTagName(q)[0].parentNode.appendChild(n)},cfg.ld||0),n};p(d)}cfg.sri&&(n=o.match(/^((http[s]?:\/\/.*\/)\w+(\.\d+){1,5})\.(([\w]+\.){0,2}js)$/))&&6===n.length?(d="".concat(n[1],".integrity.json"),i="@".concat(n[4]),l=window.fetch,t=function(e){if(!e.ext||!e.ext[i]||!e.ext[i].file)throw Error("Error Loading JSON response");var t=e.ext[i].integrity||null;s(o=n[2]+e.ext[i].file,t)},l&&!cfg.useXhr?l(d,{method:"GET",mode:"cors"}).then(function(e){return e.json()["catch"](function(){return{}})}).then(t)["catch"](r):XMLHttpRequest&&((a=new XMLHttpRequest).open("GET",d),a.onreadystatechange=function(){if(a.readyState===XMLHttpRequest.DONE)if(200===a.status)try{t(JSON.parse(a.responseText))}catch(e){r()}else r()},a.send())):o&&r();try{h.cookie=O.cookie}catch(k){}function e(e){for(;e.length;)!function(t){h[t]=function(){var e=arguments;f||h.queue.push(function(){h[t].apply(h,e)})}}(e.pop())}var c,u,l="track",d="TrackPage",p="TrackEvent",l=(e([l+"Event",l+"PageView",l+"Exception",l+"Trace",l+"DependencyData",l+"Metric",l+"PageViewPerformance","start"+d,"stop"+d,"start"+p,"stop"+p,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),h.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4},(g.extensionConfig||{}).ApplicationInsightsAnalytics||{});return!0!==g[L]&&!0!==l[L]&&(e(["_"+(c="onerror")]),u=C[c],C[c]=function(e,t,n,i,a){var o=u&&u(e,t,n,i,a);return!0!==o&&h["_"+c]({message:e,url:t,lineNumber:n,columnNumber:i,error:a,evt:C.event}),o},g.autoExceptionInstrumented=!0),h}(cfg.cfg),(C[E]=n).queue&&0===n.queue.length?(n.queue.push(e),n.trackPageView({})):e();})({
src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag
onInit: function (sdk) {
sdk.addTelemetryInitializer(function (envelope) {
envelope.data = envelope.data || {};
envelope.data.someField = 'This item passed through my telemetry initializer';
});
}, // Once the application insights instance has loaded and initialized this method will be called
// sri: false, // Custom optional value to specify whether fetching the snippet from integrity file and do integrity check
cfg: { // Application Insights Configuration
connectionString: "YOUR_CONNECTION_STRING"
}});
</script>
A telemetriai elemen található nem testre szabott tulajdonságok összegzését az Application Insights adatmodell export című témakörben tekintheti meg.
Tetszőleges számú inicializálót adhat hozzá. A rendszer a hozzáadás sorrendjében hívja meg őket.
Felhőbeli szerepkörnév és felhőbeli szerepkörpéldány hozzáadása
A telemetria-inicializáló használatával állítsa be a ai.cloud.role és ai.cloud.roleInstance címkéket. Ezek a címkék határozzák meg, hogyan jelenik meg az összetevő az Azure Monitor alkalmazástérképében .
appInsights.queue.push(() => {
appInsights.addTelemetryInitializer((envelope) => {
envelope.tags["ai.cloud.role"] = "your role name";
envelope.tags["ai.cloud.roleInstance"] = "your role instance";
});
});
Cookie-k kezelése
A 2.6.0-s verziótól kezdve a Azure-alkalmazás Insights JavaScript SDK példányalapú cookie-kezelést biztosít, amely az inicializálás után letiltható és újra engedélyezhető.
Ha letiltotta a cookie-kat az inicializálás során az disableCookiesUsagecookieCfg.enabled ICookieMgr objektumsetEnabled, újra engedélyezheti őket.
A példányalapú cookie-kezelés a korábbi CoreUtils globális függvényeket disableCookies()váltja fel , setCookie()getCookie()és deleteCookie().
A 2.6.0-s verzióban bevezetett faremegés-fejlesztések előnyeinek kihasználásához javasoljuk, hogy a továbbiakban ne használja a globális függvényeket.
Cookie-konfigurálás
Az ICookieMgrConfig a 2.6.0-ban hozzáadott példányalapú cookie-kezelés cookie-konfigurációja. A megadott lehetőségek lehetővé teszik a cookie-k SDK általi engedélyezését vagy letiltását. Egyéni cookie-tartományokat és elérési utakat is beállíthat, és testre szabhatja a cookie-k beolvasására, beállítására és törlésére szolgáló függvényeket.
Az ICookieMgrConfig beállításai az alábbi táblázatban vannak definiálva.
| Név | Típus | Alapértelmezett | Leírás |
|---|---|---|---|
| engedélyezve | Boolean | igaz | Az SDK jelenlegi példánya ezt a logikai értéket használja annak jelzésére, hogy engedélyezve van-e a cookie-k használata. Ha hamis, a konfiguráció által inicializált SDK-példány nem tárol és nem olvas be adatokat a cookie-kból. |
| tartomány | karakterlánc | null | Egyéni cookie-tartomány. Hasznos, ha meg szeretné osztani az Application Insights-cookie-kat az altartományokban. Ha nincs megadva, a gyökérérték cookieDomain értékét használja. |
| elérési út | karakterlánc | / | Megadja a cookie-hoz használandó elérési utat, ha nincs megadva, a gyökérértékből cookiePath származó bármilyen értéket használ. |
| sütik figyelmen kívül hagyása | karakterlánc[] | Meghatározatlan | Adja meg a figyelmen kívül hagyandó cookie-nev(ek)et, és ez azt eredményezi, hogy az egyező cookie-név soha nem lesz olvasható vagy írható. Előfordulhat, hogy továbbra is explicit módon ki lesznek törölve vagy eltávolítva. A konfigurációban nem kell megismételnie a blockedCookies nevet. (a 2.8.8-as verzió óta) |
| blokkolt sütik | karakterlánc[] | Meghatározatlan | Adja meg a cookie(k) nevét, amely(ek) soha nem kerül(nek) írásra. Megakadályozza a cookie-név létrehozását vagy frissítését, de továbbra is olvashatók, hacsak az ignoreCookies nem tartalmazza őket. Előfordulhat, hogy még mindig törölhetők, vagy explicit módon eltávolíthatók. Ha nincs megadva, az alapértelmezés szerint ugyanarra a listára vonatkozik az ignoreCookiesben. (2.8.8-as verzió óta) |
| sütik lekérése | (name: string) => string |
null | A megnevezett süti értékének lekérdezési függvénye; ha nem adott meg ilyet, akkor a belső süti-elemzést/gyorsítótárazást használja. |
| setCookie (süti beállítása) | (name: string, value: string) => void |
null | A megadott értékkel rendelkező elnevezett cookie beállításának függvénye csak a cookie hozzáadásakor vagy frissítésekor hívható meg. |
| delCookie (süti törlése) | (name: string, value: string) => void |
null | A megadott értékkel rendelkező elnevezett cookie törlésének függvénye a setCookie-tól elválasztva, hogy ne kelljen elemezni az értéket annak megállapításához, hogy a cookie hozzáadása vagy eltávolítása folyamatban van-e. Ha nincs megadva, a belső süti-elemzést / gyorsítótárazást használja. |
Forrástérkép
A forrástérkép használata segít a minimalizált JavaScript-kód hibakeresésében azzal, hogy lehetővé teszi a kivételtelemetria minimalizált hívásveremének visszaalakítását.
- Kompatibilis az összes jelenlegi integrációval a Kivétel részletei panelen
- Támogatja az összes jelenlegi és jövőbeli JavaScript SDK-t, beleértve a Node.JS is, anélkül, hogy SDK-frissítést kellene igényelnie
Blob Storage-fiókra mutató hivatkozás
Az Application Insights támogatja a forrástérképek Azure Storage-fiók blobtárolóba való feltöltését. A forrástérképekkel megszüntetheti a végpontok közötti tranzakció részletei lapon található hívásveremeket. Forrásleképeket is használhat a JavaScript SDK vagy a Node.js SDK által küldött bármely kivétel de-minifikálásához.
Új tárfiók és blobtároló létrehozása
Ha már van tárfiókja vagy blobtárolója, kihagyhatja ezt a lépést.
Hozzon létre egy blobtárolót a tárfiókban. Állítsa a nyilvános hozzáférési szintet privátra, hogy a forrástérképek ne legyenek nyilvánosan elérhetők.
Forrástérképek leküldése a blobtárolóba
A folyamatos üzembehelyezési folyamatot a tárfiókkal integrálhatja úgy, hogy automatikusan feltölti a forrástérképeket a konfigurált blobtárolóba.
A forrástérképeket feltöltheti az Azure Blob Storage-tárolóba ugyanazzal a mappastruktúrával, amellyel lefordították és üzembe helyezték őket. Gyakori használati eset például, hogy egy üzembehelyezési mappa előtagját a verziójával látják el 1.2.3/static/js/main.js. Amikor egy Azure blob tárolón sourcemaps keresztül visszaminifikál, a folyamatos szkript megpróbál lekérni egy forrástérképet, mely sourcemaps/1.2.3/static/js/main.js.map helyen található.
Forrástérképek feltöltése az Azure Pipelineson keresztül (ajánlott)
Ha az Azure Pipelines használatával folyamatosan fejleszti és telepíti az alkalmazást, adjon hozzá egy Azure-fájlmásolási feladatot a folyamathoz a forrástérképek automatikus feltöltéséhez.
Az Application Insights-erőforrás konfigurálása forrástérkép tárfiókkal
Az Application Insights erőforrást két lehetősége van konfigurálni egy forrástérkép tárolási fiókkal.
A végpontok közötti tranzakció részleteinek lapja
A Végpontok közötti tranzakció részletei lapon válassza az Unminify lehetőséget. Konfigurálja az erőforrást, ha még nincs konfigurálva.
- Az Azure Portalon tekintse meg a minimálisra módosított kivétel részleteit.
- Válassza az Unminify (Egységesítés) lehetőséget.
- Ha az erőforrás nincs beállítva, állítsa be.
Tulajdonságok lap
Az Application Insights-erőforráshoz csatolt tárfiók vagy blobtároló konfigurálása vagy módosítása:
Nyissa meg az Application Insights-erőforrás Tulajdonságok lapját.
Válassza a Blob Container forrástérkép módosítása lehetőséget.
Válasszon egy másik blobtárolót forrástérkép-tárolóként.
Válassza az Alkalmazás lehetőséget.
A nem tömörített hívási verem megtekintése
A nem minimalizált hívásverem megtekintéséhez válasszon ki egy Kivétel telemetriai elemet az Azure portálon, keresse meg a hívásveremnek megfelelő forrástérképeket, és húzza a forrástérképeket a hívásverembe az Azure portálon. A forrástérképnek ugyanazzal a névvel kell rendelkeznie, mint egy veremkeret forrásfájljának, de kiterjesztéssel kell rendelkeznie map .
Ha a JavaScript-alkalmazások forrástérkép-támogatásával kapcsolatos problémákat tapasztal, olvassa el a JavaScript-alkalmazások forrástérkép-támogatásának hibaelhárításával foglalkozó témakört.
Faforgácsolás
A fa rázkódás eltávolítja a nem használt kódot a végleges JavaScript-csomagból.
A tree shaking előnyeinek kihasználásához csak az SDK szükséges összetevőit importálja a kódba. Ezzel a nem használt kód nem szerepel az utolsó csomagban, csökkentve annak méretét és a teljesítményt.
Tree Shaking fejlesztései és ajánlásai
A 2.6.0-s verzióban elavulttá tettük és eltávolítottuk ezeknek a statikus segédosztályoknak a belső használatát, hogy növeljük a famegrázó algoritmusok támogatását. Lehetővé teszi, hogy az npm-csomagok biztonságosan eldobják a nem használt kódot.
CoreUtilsEventHelperUtilUrlHelperDateTimeUtilsConnectionStringParser
A függvények most már a modulok legfelső szintű elemekként vannak exportálva, így egyszerűbbé válik a kód átszervezése a hatékonyabb kódfeltérképezés érdekében.
A statikus osztályok az új exportált függvényekre hivatkozó const objektumokra lettek módosítva, és a jövőbeni módosítások a hivatkozások további újrabontása érdekében lesznek tervezve.
Fa remegés elavult funkciók és cserék
Ez a szakasz csak akkor vonatkozik Önre, ha elavult függvényeket használ, és optimalizálni szeretné a csomagméretet. Javasoljuk, hogy a helyettesítő függvények használatával csökkentse a méretet, és támogassa az Internet Explorer összes verzióját.
| Meglévő | Csere |
|---|---|
| CoreUtils | @microsoft/applicationinsights-core-js |
| CoreUtils._canUseCookies | Nincs. Ne használja, mert az összes CoreUtils-referenciát belefoglalja a végleges kódba. Dolgozza át a cookie-kezelést úgy, hogy az appInsights.getCookieMgr().setEnabled(true/false) érték beállítására és appInsights.getCookieMgr().isEnabled() az érték ellenőrzésére szolgáljon. |
| CoreUtils.isTypeof | típusellenőrzés |
| CoreUtils.isUndefined | nincsMeghatározva |
| CoreUtils.nullaVagyNincsDefiniálva | nullVagyNemDefiniált |
| CoreUtils.hasOwnProperty | hasOwnProperty (saját tulajdonság ellenőrzése) |
| CoreUtils.isFunction | isFunction |
| CoreUtils.isObject | isObject (objektum-e) |
| CoreUtils.isDate | isDate |
| CoreUtils.isArray | isArray |
| CoreUtils.isError | isError |
| CoreUtils.isString | isString |
| CoreUtils.isNumber | isNumber |
| CoreUtils.isBoolean | isBoolean |
| CoreUtils.toISOString | toISOString vagy getISOString |
| CoreUtils.arrForEach | arrForEach |
| CoreUtils.arrIndexOf | arrIndexOf |
| CoreUtils.arrMap | arrMap (függetlenül attól, hogy nincs közvetlen fordítása, ez a megnevezés a programozásban használt objektumra utal) |
| CoreUtils.arrReduce | arrReduce |
| CoreUtils.strTrim | strTrim |
| CoreUtils.objCreate | objCreateFn |
| CoreUtils.objKeys | objKeys |
| CoreUtils.objDefineAccessors | objDefineAccessors |
| CoreUtils.addEventHandler | eseménykezelő hozzáadása |
| CoreUtils.dateNow | jelenlegi dátum |
| CoreUtils.isIE | isIE |
| CoreUtils.disableCookies (Sütik letiltása) | disableCookies A hivatkozás vagy azt eredményezi, hogy a CoreUtils visszafelé kompatibilitásra hivatkozik. A süti kezelésének átalakítása a appInsights.getCookieMgr().setEnabled(false) használatához |
| CoreUtils.newGuid | newGuid |
| CoreUtils.perfNow | perfNow |
| CoreUtils.newId | újAzonosító |
| CoreUtils.randomValue (véletlenszerű érték) | véletlenÉrték |
| CoreUtils.random32 (32 bites véletlenszám generátor) | random32 |
| CoreUtils.mwcRandomSeed | mwcRandomSeed |
| CoreUtils.mwcRandom32 | mwcRandom32 |
| CoreUtils.generateW3CId | generateW3CId |
| EventHelper | @microsoft/applicationinsights-core-js |
| EseménySegítő.Csatol | attachEvent |
| EventHelper.AttachEvent | attachEvent |
| EventHelper.Detach | leválasztEsemény |
| EventHelper.DetachEvent | leválasztEsemény |
| Hasznosság | @microsoft/applicationinsights-common-js |
| Util.Nincs meghatározva | strNotSpecified |
| Util.createDomEvent (DOM esemény létrehozása) | createDomEvent |
| Util.tárolásKikapcsolása | Tárolás letiltása |
| Util.isInternalApplicationInsightsEndpoint | If a translation is necessary, it could be something like "belsőAlkalmazásElemzésiVégpont" to reflect a more natural Hungarian phrase, assuming that translation of the technical name is acceptable in the context. |
| Util.canUseLocalStorage (helyi tárhely használata) | utlCanUseLocalStorage |
| Util.getStorage | utlGetLocalStorage (helyi tárolás API) |
| Util.setStorage | utlSetLocalStorage |
| Util.removeStorage (tárolás eltávolítása) | utlRemoveStorage |
| Util.canUseSessionStorage | Képes-e a munkamenet-tárolást használni |
| Util.getSessionStorageKeys | utlGetSessionStorageKeys |
| Util.getSessionStorage | utlGetSessionStorage |
| Util.setSessionStorage (munkamenet-tárhely beállítása) | utlSetSessionStorage |
| Util.removeSessionStorage | utlRemoveSessionStorage |
| Util.disableCookies | disableCookies A hivatkozás vagy azt eredményezi, hogy a CoreUtils visszafelé kompatibilitásra hivatkozik. A süti kezelésének átalakítása a appInsights.getCookieMgr().setEnabled(false) használatához |
| Util.CookieKetHasznalhat | sütik használata engedélyezett A hivatkozás vagy azt eredményezi, hogy a CoreUtils visszafelé kompatibilitásra hivatkozik. A süti kezelésének átalakítása a appInsights.getCookieMgr().isEnabled() használatához |
| Util.megtagadjaSameSiteNone | uaMegtiltjaUgyanazonOldalNélkülit |
| Util.setCookie | coreSetCookie (süti beállítása) A hivatkozások miatt a CoreUtils a visszafelé kompatibilitás érdekében kerül hivatkozásra. A süti kezelésének átalakítása a appInsights.getCookieMgr().set(name: string, value: string) használatához |
| Util.stringToBoolOrDefault | stringToBoolOrDefault |
| Util.getCookie | coreGetCookie A hivatkozások miatt a CoreUtils a visszafelé kompatibilitás érdekében kerül hivatkozásra. A süti kezelésének átalakítása a appInsights.getCookieMgr().get(name: string) használatához |
| Util.deleteCookie | coreDeleteCookie A hivatkozások miatt a CoreUtils a visszafelé kompatibilitás érdekében kerül hivatkozásra. A süti kezelésének átalakítása a appInsights.getCookieMgr().del(name: string, path?: string) használatához |
| Util.trim | strTrim |
| Util.newId | újAzonosító |
| Util.random32 | --- Nincs csere, refaktorálja a kódját a core random32(true) használatához |
| Util.generateW3CId | generateW3CId |
| Util.isArray | isArray |
| Util.isError | isError |
| Util.isDate | isDate |
| Util.toISOStringForIE8 | toISOString |
| Util.getIEVersion | getIEVersion |
| Util.msToTimeSpan | msToTimeSpan |
| Util.isCrossOriginError | kereszt-eredetűhiba |
| Util.dump | objektum kimentése |
| Util.getExceptionName | getExceptionName |
| Util.addEventHandler | attachEvent |
| Util.IsBeaconApiSupported | isBeaconApiTámogatott |
| Util.getExtension | getExtensionByName |
| UrlHelper | @microsoft/applicationinsights-common-js |
| UrlHelper.parseUrl | urlParseUrl |
| UrlHelper.getAbsoluteUrl | urlGetAbsoluteUrl |
| UrlHelper.getPathName | urlGetPathName |
| UrlHelper.getCompeteUrl | urlGetCompleteUrl |
| UrlHelper.parseHost | urlParseHost |
| UrlHelper.parseFullHost | urlParseFullHost |
| DateTimeUtils | @microsoft/applicationinsights-common-js |
| DateTimeUtils.Now | dateTimeUtilsNow |
| DateTimeUtils.GetDuration | dateTimeUtilsDuration |
| ConnectionStringParser | @microsoft/applicationinsights-common-js |
| KapcsolatKarakterláncElemző.parse | parseConnectionString (kapcsolati karakterlánc elemzése) |
Szolgáltatási értesítések
A szolgáltatásértesítések az SDK-ba beépített funkciók, amelyek végrehajtható javaslatokat nyújtanak annak érdekében, hogy a telemetriai folyamatok zavartalanul érkezhessenek az Application Insightsba. Az értesítések kivételüzenetként jelennek meg az Application Insightsban. Biztosítjuk, hogy az értesítések relevánsak legyenek az SDK beállításai alapján, és az ajánlás sürgőssége alapján módosítjuk a beszédességet. Javasoljuk, hogy hagyja be a szolgáltatásértesítéseket, de a featureOptIn konfiguráción keresztül leiratkozhat.
Jelenleg nem küld aktív értesítéseket.
A szolgáltatásértesítéseket a JavaScript SDK kezeli, amely rendszeresen lekérdez egy nyilvános JSON-fájlt az értesítések szabályozásához és frissítéséhez. A JavaScript SDK által végzett lekérdezés letiltásához tiltsa le a featureOptIn módot.
Hibaelhárítás
Tekintse meg a dedikált hibaelhárítási cikket.
Következő lépések
- A gyakori kérdések (GYIK) áttekintéséhez tekintse meg a JavaScript SDK konfigurációjával kapcsolatos gyakori kérdéseket.
- Használat nyomon követése
- Azure-fájlmásolási feladat
- Azure Monitor-adattípusokra vonatkozó referencia és SDK-kód JavaScript SDK-hoz.