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


Microsoft Azure Monitor Application Insights JavaScript SDK-konfiguráció

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.

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 ITelemetryProcessor implementá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 ITelemetryInitializer megvaló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.

  1. 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 a false visszaadá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;
    };
    
  2. 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";
});
});

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.

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

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.

Képernyőkép a hívásverem megszüntetésének lehetőségének kiválasztásáról egy tárfiók csatolásával.

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

  1. Hozzon létre egy új tárfiókot.

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

    Képernyőkép a tároló hozzáférési szintjének privátra állítását bemutató képernyőképről.

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

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.

Képernyőkép egy Azure-fájlmásolási feladatnak a folyamathoz való hozzáadásáról a forrástérképek Azure Blob Storage-ba való 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.

  1. Az Azure Portalon tekintse meg a minimálisra módosított kivétel részleteit.
  2. Válassza az Unminify (Egységesítés) lehetőséget.
  3. 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:

  1. Nyissa meg az Application Insights-erőforrás Tulajdonságok lapját.

  2. Válassza a Blob Container forrástérkép módosítása lehetőséget.

  3. Válasszon egy másik blobtárolót forrástérkép-tárolóként.

  4. Válassza az Alkalmazás lehetőséget.

    Képernyőkép a kiválasztott Azure Blob-tároló újrakonfigurálását bemutató képernyőképről a Tulajdonságok panelen.

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.

Az unminify funkciót bemutató animáció.

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.

  • CoreUtils
  • EventHelper
  • Util
  • UrlHelper
  • DateTimeUtils
  • ConnectionStringParser

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