Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
JavaScript SDK pro Aplikace Azure Insights poskytuje konfiguraci pro sledování, monitorování a ladění webových aplikací.
Konfigurace sady SDK
Tato konfigurační pole jsou volitelná a výchozí hodnota false, pokud není uvedeno jinak. Následující oddíly seskupují pole podle účelu.
Pokyny k přidání konfigurace sady SDK najdete v tématu Přidání konfigurace sady SDK.
Soubory cookie a úložiště relací
disableCookiesUsage použijte k úplnému zakázání souborů cookie, cookieCfg k úplné konfiguraci souborů cookie podle instance, cookieDomain a cookiePath k omezení rozsahu souborů cookie napříč subdoménami nebo aplikačními branami a namePrefix, sessionCookiePostfix a userCookiePostfix k přizpůsobení názvů souborů cookie a localStorage.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| cookieCfg Ve výchozím nastavení je povolené použití souborů cookie, viz nastavení ICookieCfgConfig pro úplné výchozí hodnoty. |
ICookieCfgConfig [Volitelné] (Od 2.6.0) |
nedefinovaný |
| doména cookie (cookieDomain) Vlastní doména souborů cookie. Je užitečné, pokud chcete sdílet soubory cookie Application Insights napříč subdoménami. (Od verze 2.6.0) Pokud cookieCfg.domain je definována, má přednost před touto hodnotou. |
alias pro cookieCfg.domain[Volitelné] |
null |
| cookiePath Vlastní cesta cookie. Je užitečné, pokud chcete sdílet soubory cookie Application Insights za aplikační bránou. Pokud cookieCfg.path je definováno, má přednost. |
alias pro cookieCfg.path[Volitelné] (Od 2.6.0) |
null |
| zakázatPoužíváníCookies Výchozí hodnota je false. Logická hodnota, která označuje, jestli se má zakázat používání souborů cookie sadou SDK. Pokud je pravda, sada SDK neukládá ani nečte žádná data ze souborů cookie. (Od verze 2.6.0) Pokud cookieCfg.enabled je definována, má přednost. Po inicializaci prostřednictvím core.getCookieMgr().setEnabled(true) je možné znovu povolit použití souborů cookie. |
alias pro cookieCfg.enabled[Volitelné] |
false (nepravda) |
| předpona jména Volitelná hodnota, která se používá jako přípona názvu pro localStorage, a názvu relační cookie. |
řetězec | nedefinovaný |
| sessionCookiePostfix Volitelná hodnota, která se používá jako přípona názvu pro název souboru cookie relace. Pokud není definováno, namePrefix se použije jako postfix pro název relace cookie. |
řetězec | nedefinovaný |
| userCookiePostfix Volitelná hodnota, která se používá jako přípona názvu uživatelského souboru cookie. Pokud není definováno, není k uživatelskému názvu souboru cookie přidána žádná přípona. |
řetězec | nedefinovaný |
Sledování Ajaxu a Fetche
Automatické shromažďování dat pro Ajax a Fetch je rozděleno do pěti oblastí funkcí: přepínače zapnuto/vypnuto (disableAjaxTracking, disableFetchTracking, disableXhr), zachytávání hlaviček požadavků a odpovědí (enableRequestHeaderTracking, enableResponseHeaderTracking, ignoreHeaders, customHeaders), filtrování na základě adresy URL (excludeRequestFromAutoTrackingPatterns), dodatečná vyhledávání window.performance (enableAjaxPerfTracking, ajaxPerfLookupDelay, maxAjaxPerfLookupAttempts, enableAjaxErrorStatusText) a řízení objemu na stránku a obohacení jednotlivých volání (maxAjaxCallsPerView, addRequestContext).
Přepínače automatického shromažďování
Pomocí těchto polí můžete povolit nebo zakázat automatickou kolekci požadavků Ajax a Fetch a zvolit přenos (XHR, Fetch nebo Beacon).
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| zakázatSledováníAjaxu Pokud je to pravda, Ajax volání nejsou automaticky shromažďována. Výchozí hodnota je False. |
Boolean | false (nepravda) |
| deaktivovatSledováníFetch Výchozí nastavení disableFetchTracking je false, což znamená, že je povoleno. Ve verzích starších než 2.8.10 však byla ve výchozím nastavení zakázaná. Při nastavení na true se požadavky na načtení automaticky neshromažďují. Výchozí nastavení se změnilo na truefalse ve verzi 2.8.0. |
Boolean | false (nepravda) |
| disableXhr Nepoužívejte XmlHttpRequest nebo XDomainRequest (pro Internet Explorer < verze 9) jako výchozí. Místo toho se pokuste použít fetch() nebo sendBeacon. Pokud není k dispozici žádný jiný přenos, použije XMLHttpRequest. |
Boolean | false (nepravda) |
| jeApiMajákuZakázané Pokud je false, sada SDK odešle veškerou telemetrii pomocí rozhraní Beacon API . |
Boolean | pravda |
| onunloadDisableBeacon Výchozí hodnota je false. Po zavření panelu odešle sada SDK veškerou zbývající telemetrii pomocí rozhraní Beacon API. |
Boolean | false (nepravda) |
| onunloadDisableFetch Pokud je podpora pro fetch keepalive, nepoužívejte ji k odesílání událostí během procesu odhlašování, může se stále vrátit k fetch() bez keepalive. |
Boolean | false (nepravda) |
Sledování záhlaví
Pomocí těchto polí můžete do telemetrie závislostí zahrnout hlavičky požadavků nebo odpovědí AJAX a Fetch, přidat další hlavičky pro vlastní koncové body nebo odfiltrovat citlivé hlavičky z protokolu.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| povolit sledování hlaviček požadavků Pokud je hodnota true, hlavičky požadavku AJAX &Fetch jsou sledovány, výchozí hodnota je false. Pokud není nakonfigurovaná funkce ignoreHeaders, nejsou zaprotokolovány hlavičky autorizace a klíče X-API. |
Boolean | false (nepravda) |
| povolitSledováníHlavičekOdpovědi Pokud je hodnota true, hlavičky odpovědi požadavku AJAX &Fetch se sledují, výchozí hodnota je false. Pokud funkce ignoreHeaders není nakonfigurovaná, hlavička WWW-Authenticate se nezaprotokoluje. |
Boolean | false (nepravda) |
| ignorovatZáhlaví Záhlaví žádostí a odpovědí Ajax a Fetch budou ignorována v záznamech protokolu. Pokud chcete přepsat nebo zrušit výchozí nastavení, přidejte do konfigurace pole se všemi záhlavími, která se mají vyloučit, nebo prázdné pole. |
řetězec[] | ["Autorizace", "X-API-Key", "WWW-Authenticate"] |
| customHeaders Možnost poskytovat uživateli dodatečné hlavičky při použití vlastního koncového bodu. Vlastní hlavičky se nepřidávají při vypnutí prohlížeče, pokud se používá odesílač beaconů. A přidávání vlastních hlaviček se nepodporuje v IE9 nebo starších verzích. |
[{header: string, value: string}] |
nedefinovaný |
Filtrování adres URL
Pomocí tohoto pole vyloučíte konkrétní adresy URL požadavků z automatického sledování požadavků AJAX a Fetch.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| vyloučitPožadavekZAutomatickýchSledovacíchVzorů Zadejte způsob, jak vyloučit konkrétní trasu z automatického sledování pro požadavek XMLHttpRequest nebo Fetch. Je-li definován požadavek Ajax/fetch a adresa URL požadavku odpovídá vzorům regulárních výrazů, automatické sledování se vypne. Výchozí hodnota není definována. |
string[] | RegExp[] | nedefinovaný |
Zjišťování výkonu
Pomocí těchto polí můžete zahrnout do telemetrie závislostí Ajaxu další časové údaje window.performance, upravit zpoždění vyhledávání a počet opakovaných pokusů a zahrnout text chyby v odpovědi u neúspěšných požadavků Ajax.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| enableAjaxPerfTracking (povolit sledování výkonu Ajaxu) Výchozí hodnota je false. Příznak pro povolení vyhledávání a zahrnutí dodatečných časování z prohlížeče window.performance do hlášených metrik Ajax (XHR a fetch). |
Boolean | false (nepravda) |
| ajaxPerfLookupDelay Výchozí hodnota je 25 ms. Doba čekání před opětovným pokusem o nalezení časování výkonu Windows.performance pro požadavek Ajax; doba je uvedena v milisekundách a předává se přímo do funkce setTimeout(). |
číselné | 25 |
| maximální počet pokusů maxAjaxPerfLookupAttempts Výchozí hodnota je 3. Maximální počet, kolikrát se má hledat časování window.performance (pokud je k dispozici) je povinné. Ne všechny prohlížeče naplňují okno.performance před hlášením konce požadavku XHR. Pro požadavky na načtení se přidá po dokončení. |
číselné | 3 |
| enableAjaxErrorStatusText Výchozí hodnota je false. Pokud je hodnota true, zahrňte logickou hodnotu textu chybových dat odpovědi v události závislosti při neúspěšných požadavcích AJAX. |
Boolean | false (nepravda) |
Ovládání hlasitosti a vylepšení
Pomocí maxAjaxCallsPerView omezíte shromažďování dat Ajax na jedno zobrazení stránky a pomocí addRequestContext obohatíte telemetrii závislostí o funkci zpětného volání na začátku každého volání API.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| maxAjaxCallsPerView Výchozí hodnota 500 – určuje, kolik ajaxových volání se monitoruje na jedno zobrazení stránky. Pokud chcete monitorovat všechna (neomezená) volání Ajax na stránce, nastavte na hodnotu -1. |
číselné | 500 |
| přidat KontextPožadavku Poskytnout způsob, jak na začátku volání rozhraní API rozšířit záznamy závislostí kontextem. Výchozí hodnota není definována. Musíte zkontrolovat, zda xhr existuje, pokud konfigurujete související kontext xhr. Pokud konfigurujete kontext související s fetch request, musíte zkontrolovat, jestli fetch response a fetch existují. V opačném případě možná nebudete dostávat potřebná data. |
(requestContext: IRequestionContext) => {[klíč: řetězec]: jakýkoli} | nedefinovaný |
Distribuované trasování a korelace
Slouží distributedTracingMode k výběru formátu záhlaví W3C, AI nebo AI_AND_W3C. Slouží disableCorrelationHeaders k úplné vypnutí korelace. Pomocí enableCorsCorrelation můžete do požadavků z jiného původu vkládat hlavičky korelace. Slouží appId k nastavení pevné identity korelace. Použijte correlationHeaderDomains, correlationHeaderExcludedDomainsa correlationHeaderExcludePatterns k povoleným nebo blokovým seznamům konkrétních cílových domén nebo vzorů adres URL.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| ID aplikace AppId se používá pro korelaci mezi závislostmi AJAX, ke kterým dochází na straně klienta s požadavky na straně serveru. Když je rozhraní Beacon API povolené, nejde ho použít automaticky, ale můžete ho nastavit ručně v konfiguraci. Výchozí hodnota je null |
řetězec | null |
| korelaceHlavickaDomény Povolení hlaviček korelace pro konkrétní domény |
řetězec[] | nedefinovaný |
| vyloučenéDoményKorelacíHlaviček Zakázání hlaviček korelace pro konkrétní domény |
řetězec[] | nedefinovaný |
| correlationHeaderExcludePatterns Zakázat hlavičky korelace pomocí regulárních výrazů |
regex[] | nedefinovaný |
| zakázat hlavičky korelace Pokud je false, sada SDK přidá do všech požadavků závislostí dvě hlavičky (Request-Id a Request-Context), aby je korelovala s odpovídajícími požadavky na straně serveru. Výchozí hodnota je False. |
Boolean | false (nepravda) |
| režim distribuovaného sledování Nastaví režim distribuovaného trasování. Pokud je nastavený režim AI_AND_W3C nebo režim W3C, vygenerují se hlavičky kontextu trasování W3C (traceparent/tracestate) a zahrnou se do všech odchozích požadavků. AI_AND_W3C je poskytována kvůli zajištění kompatibility se staršími instrumentovanými službami Application Insights. |
číselná nebo DistributedTracingModes |
DistributedTracing Modes.AI_AND_W3C |
| enableCorsCorrelation Pokud je pravda, sada SDK přidá do všech požadavků CORS dvě hlavičky (Request-Id a Request-Context), aby korelovala odchozí závislosti AJAX s odpovídajícími požadavky na straně serveru. Výchozí hodnota je false |
Boolean | false (nepravda) |
Zobrazení stránek a sledování tras
Slouží enableAutoRouteTracking ke sledování změn tras SPA. Použijte autoTrackPageVisitTime k zaznamenání doby strávené na stránce pro předchozí zobrazení. Použijte isBrowserLinkTrackingEnabled ke sledování požadavků Browser Link. Pomocí overridePageViewDuration vypočítáte dobu trvání zobrazení stránky z volání trackPageView namísto rozhraní API Navigation Timing.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| automatickySledovatČasNávštěvyStránky Pokud ano, v zobrazení stránky se čas zobrazení předchozí instrumentované stránky sleduje a odesílá jako telemetrie a pro aktuální zobrazení stránky se spustí nový časovač. Odešle se jako vlastní metrika pojmenovaná PageVisitTime v milliseconds a vypočítá se pomocí funkce Date now() (pokud je k dispozici), a pokud není k dispozici (v IE8 nebo méně), použije se (new Date()).getTime(). Výchozí hodnota je False. |
Boolean | false (nepravda) |
| povolitAutomatickéSledováníTrasy Automaticky sledovat změny tras v jednostránkové aplikaci (SPA). Pokud je pravda, každá změna trasy odešle nové zobrazení Stránky do Application Insights. Změny trasování hash ( example.com/foo#bar) se také zaznamenávají jako nové zobrazení stránky.Poznámka: Pokud toto pole povolíte, nepovolujte history objekt pro konfiguraci směrovače React, protože získáte více událostí zobrazení stránky. |
Boolean | false (nepravda) |
| Following the assumption that it should remain in English due to its technical nature and usage in programming or software settings:
cs-CZ: isBrowserLinkTrackingEnabled Výchozí hodnota je False. Pokud je pravda, sada SDK sleduje všechny žádosti o propojení prohlížeče. |
Boolean | false (nepravda) |
| overridePageViewDuration Pokud je pravda, výchozí chování trackPageView se změní na záznam konce intervalu doby trvání zobrazení stránky při volání trackPageView. Pokud pro trackPageView není k dispozici hodnota false a žádná vlastní doba trvání, vypočítá se výkon zobrazení stránky pomocí rozhraní API pro časování navigace. Výchozí hodnota je False. |
Boolean | false (nepravda) |
Sledování výjimek
Umožňuje disableExceptionTracking vyjádřit výslovný nesouhlas s automatickým shromažďováním výjimek a enableUnhandledPromiseRejectionTracking zahrnout neošetřené odmítnutí slibů jako chyby JavaScriptu.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| vypnutíSledováníVýjimek Je-li nastavena na hodnotu true, SDK automaticky neshromažďuje výjimky. Výchozí hodnota je False. |
Boolean | false (nepravda) |
| povolit sledování neošetřených zamítnutí příslibu Je-li tato možnost povolena, sada SDK automaticky shromažďuje neošetřená odmítnutí promis jako chyby JavaScriptu. Pokud je disableExceptionTracking true (nesledovat výjimky), hodnota konfigurace se ignoruje a neošetřené odmítnutí slibů se neohlásí. |
Boolean | false (nepravda) |
Vzorkování, dávkování a úložiště
Pomocí samplingPercentage nastavíte pevnou četnost vzorkování, pomocí maxBatchInterval a maxBatchSizeInBytes vyladíte chování dávkového odesílání, pomocí enableSessionStorageBuffer a isStorageUseDisabled určíte, zda SDK ukládá neodeslanou telemetrii do úložiště relace nebo místního úložiště, pomocí eventsLimitInMem omezíte velikost vyrovnávací paměti, pomocí isRetryDisabled zakážete opakování pokusů při přechodných selháních, pomocí disableFlushOnBeforeUnload přeskočíte vyprázdnění při opuštění stránky a disableTelemetry slouží jako globální vypínač.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| deaktivovatFlushPřiBeforeUnload Výchozí hodnota je false. Pokud je tato hodnota nastavena na true, metoda flush se při vyvolání události onBeforeUnload nezavolá. |
Boolean | false (nepravda) |
| zakázat telemetrii Pokud je pravda, sada SDK neshromažďuje ani neodesílá telemetrii. Výchozí hodnota je False. |
Boolean | false (nepravda) |
| enableSessionStorageBuffer Výchozí hodnota true. Pokud je hodnota pravdivá, uloží se vyrovnávací paměť s veškerou neodeslanou telemetrií v úložišti relace. Buffer se obnoví při načtení stránky. |
Boolean | pravda |
| eventsLimitInMem Počet událostí, které je možné uchovávat v paměti před tím, než sada SDK začne odstraňovat události, když nepoužíváte úložiště relací (výchozí nastavení). |
Číslo | 10 000 |
| jeZakázánoOpětovnéPokoušení Výchozí hodnota je false. Pokud je hodnota false, opakujte pokus při kódu 206 (částečný úspěch), 408 (časový limit vypršel), 429 (příliš mnoho požadavků), 500 (vnitřní chyba serveru), 503 (služba není k dispozici) a 0 (bez připojení, pouze pokud je to zjištěno). |
Boolean | false (nepravda) |
| jePoužitíÚložištěZakázáno Pokud je pravda, sada SDK neukládá ani nečte žádná data z místního úložiště a úložiště relací. Výchozí hodnota je False. |
Boolean | false (nepravda) |
| maxBatchInterval Jak dlouho shromažďovat telemetrická data před odesláním (v milisekundách). |
číselné | 15000 |
| maximálníVelikostDávkyVBajtech Maximální velikost dávky telemetrie Pokud dávka překročí tento limit, okamžitě se odešle a spustí se nová dávka. |
číselné | 10 000 |
| procento vzorkování Procento odeslaných událostí Výchozí hodnota je 100, což znamená, že se odesílají všechny události. Nastavte ho, pokud chcete zachovat datový limit pro rozsáhlé aplikace. |
číselné | 100 |
Protokolování a ladění
Pomocí loggingLevelConsole a loggingLevelTelemetry můžete směrovat interní chyby sady SDK do konzole nebo do telemetrie. Slouží enableDebug k vyvolání vnitřních chyb jako výjimek během vývoje. Pomocí diagnosticLogInterval vyladíte interní dotazovač logů. Slouží disableDataLossAnalysis k přeskočení kontrol vyrovnávací paměti při spuštění. Pomocí disableIkeyDeprecationMessage potlačíte upozornění na zastarání instrumentačního klíče.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| diagnosticLogInterval (interní) Interval dotazování (v ms) pro interní frontu protokolování |
číselné | 10 000 |
| zakázatAnalýzuZtrátyDat Pokud má hodnotu false, kontrolují se při spuštění interní vyrovnávací paměti odesílatele telemetrických dat pro položky, které ještě nebyly odeslány. |
Boolean | pravda |
| disableIkeyDeprecationMessage Zakažte chybovou zprávu o zastaralosti klíče instrumentace. Pokud je pravda, chybové zprávy se neodesílají. |
Boolean | pravda |
| enableDebug Pokud je pravda, vyvolá se interní ladicí data jako výjimka místo protokolování, a to bez ohledu na nastavení protokolování sady SDK. Výchozí hodnota je False. Poznámka: Povolením tohoto nastavení dojde při každém výskytu vnitřní chyby k vyřazení telemetrie. Může být užitečné při rychlé identifikaci problémů s konfigurací nebo používáním sady SDK. Pokud při ladění nechcete ztratit telemetrii, zvažte použití loggingLevelConsole nebo loggingLevelTelemetry místo enableDebug. |
Boolean | false (nepravda) |
| úroveň logování konzole Zapisuje na konzoli interní chyby Application Insights. 0: vypnuto, 1: Pouze kritické chyby, 2: Vše (chyby a upozornění) |
číselné | 0 |
| telemetrie úrovně protokolování Odesílá interní chyby z Application Insights jako telemetrická data. 0: vypnuto, 1: Pouze kritické chyby, 2: Vše (chyby a upozornění) |
číselné | 1 |
Správce výkonu
Pomocí enablePerfMgr emitujte lokální perfEvents z instrumentovaných cest kódu. Pomocí createPerfMgr zadejte vlastní továrnu IPerfManager. Pomocí perfEvtsSendAll určíte, zda se spustí všechny události perfEvent, nebo pouze nadřazené události.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| createPerfMgr Funkce zpětného volání, která je volána k vytvoření instance IPerfManager, když je to potřeba a enablePerfMgr je povolený, umožňuje přepsat výchozí vytvoření PerfManager() bez nutnosti setPerfMgr() po inicializaci. |
(jádro: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager | nedefinovaný |
| enablePerfMgr Pokud je tato možnost povolená (true), vytvoří místní perfEvents pro kód, který byl instrumentován k generování perfEvents (prostřednictvím pomocné rutiny doPerf()). Dá se použít k identifikaci problémů s výkonem v sadě SDK na základě vašeho využití nebo volitelně v rámci vašeho vlastního instrumentovaného kódu. |
Boolean | false (nepravda) |
| perfEvtsSendAll Pokud je enablePerfMgr povoleno a IPerfManager spustí funkci INotificationManager.perfEvent(), tento příznak určuje, zda je událost spuštěna (a odeslána všem posluchačům) pro všechny události (true) nebo pouze pro rodičovské události (false <výchozí>). Nadřazený objekt IPerfEvent je událost, kdy v okamžiku vytvoření události stále neběží žádná jiná vlastnost IPerfEvent a její nadřazená vlastnost není null nebo není definována. Od verze 2.5.7 |
Boolean | false (nepravda) |
Identifikátory a životnost relace
Umožňuje accountId seskupit uživatele do účtů, idLength nastavit vygenerovanou délku sessionExpirationMs náhodného ID pro maximální dobu trvání relace a sessionRenewalMs časový limit nečinnosti, který ukončí relaci.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| ID účtu Volitelné ID účtu, pokud vaše aplikace seskupí uživatele do účtů. Žádné mezery, čárky, středníky, rovná se nebo svislé čáry |
řetězec | null |
| idLength Určuje výchozí délku použitou k vygenerování nové náhodné relace a ID uživatelů. Výchozí hodnota je 22, předchozí výchozí hodnota byla 5 (v2.5.8 nebo menší), pokud potřebujete zachovat předchozí maximální délku nastavenou na hodnotu 5. |
číselné | 22 |
| vypršeníPlatnostiRelaceMs Relace se zaprotokoluje, pokud po tuto dobu pokračuje v milisekundách. Výchozí hodnota je 24 hodin |
číselné | 86400000 |
| obnovení relace v milisekundách Relace se zaprotokoluje, pokud je uživatel po tuto dobu v milisekundách neaktivní. Výchozí hodnota je 30 minut. |
číselné | 1800000 |
Další nastavení
Používá featureOptIn se k vyjádření souhlasu s funkcemi preview, throttleMgrCfg ke konfiguraci omezování, disableInstrumentationKeyValidation k obejití kontrol klíčů příjmu dat, convertUndefined k nahrazení výchozí hodnoty nedefinovaných polí a sdkExtension k předponě ai.internal.sdkVersion značky pro rozšíření podřízené sady SDK.
| Pole Konfigurace | Typ hodnoty | Výchozí hodnota |
|---|---|---|
| převéstNaNeurčeno Zadejte uživateli možnost převést nedefinované pole na uživatelem definovanou hodnotu. |
any |
nedefinovaný |
| zakázatOvěřováníInstrumentačníhoKlíče Pokud je hodnota true, je kontrola ověření instrumentačního klíče vynechána. Výchozí hodnotou je false. |
Boolean | false (nepravda) |
| featureOptIn Nastavení podrobností o přihlášení k funkcím. Toto konfigurační pole je k dispozici pouze ve verzi 3.0.3 a novější. |
IFeatureOptIn | nedefinovaný |
| SdkExtension Nastaví název rozšíření sady SDK. Jsou povoleny pouze abecední znaky. Název rozšíření se přidá jako předpona značky ai.internal.sdkVersion (například ext_javascript:2.0.0). Výchozí hodnota je null. |
řetězec | null |
| throttleMgrCfg Nastavte konfiguraci škrcení Mgr podle klíče. Toto konfigurační pole je k dispozici pouze ve verzi 3.0.3 a novější. |
{[key: number]: IThrottleMgrConfig} |
nedefinovaný |
Distribuované trasování
Moderní architektury cloudových a mikroslužeb umožňují jednoduché a nezávisle nasaditelné služby, které snižují náklady a zvyšují dostupnost a propustnost. Celkově to ale ztěžuje pochopení a ladění systémů. Distribuované trasování tento problém řeší tím, že poskytuje nástroj pro profilování výkonu, který funguje jako zásobníky volání v architekturách cloudu a mikroslužeb.
Azure Monitor poskytuje dvě prostředí pro využívání distribuovaných dat trasování: zobrazení diagnostiky transakcí pro jednu transakci nebo požadavek a zobrazení mapy aplikace , které ukazuje, jak systémy komunikují.
Application Insights může monitorovat jednotlivé komponenty samostatně a zjišťovat, která komponenta zodpovídá za selhání nebo snížení výkonu pomocí distribuované korelace telemetrie. Tento článek vysvětluje datový model, techniky šíření kontextu, protokoly a implementaci taktik korelace na různých jazycích a platformách používaných application Insights.
Povolte distribuované trasování pomocí Application Insights buď prostřednictvím automatické instrumentace, nebo pomocí SDK.
Podporované Azure Monitor instrumentace OpenTelemetry a sada JavaScript SDK generují distribuovaná data trasování pro běžné architektury a knihovny.
Při použití nakonfigurované podporované instrumentace se informace o trasování automaticky shromažďují pro běžné frameworky, knihovny a technologie.
Libovolnou technologii lze také sledovat ručně vytvořením vlastních rozsahů.
Datový model pro korelaci telemetrie
Application Insights definuje datový model pro distribuovanou korelaci telemetrie. Chcete-li přidružit telemetrii k logické operaci, má každá položka telemetrie kontextové pole s názvem operation_Id. Každý telemetrický údaj v distribuovaném trasování sdílí tento identifikátor. I když tedy ztratíte telemetrii z jedné vrstvy, můžete i nadále přidružit telemetrii hlášenou jinými komponentami.
Distribuovaná logická operace se obvykle skládá ze sady menších operací, které jsou požadavky zpracovávané jednou z komponent.
Žádost o telemetrii definuje tyto operace. Každá položka telemetrie požadavku má vlastní id , která ji jednoznačně a globálně identifikuje. A všechny položky telemetrie (například trasování a výjimky), které jsou přidružené k požadavku, by měly nastavit operation_parentId na hodnotu požadavku id.
Telemetrie závislostí představuje každou odchozí operaci, například volání HTTP do jiné komponenty. Definuje také vlastní id, který je globálně jedinečný. Žádost o telemetrii, iniciovaná tímto voláním závislosti, používá id jako operation_parentId.
Můžete vytvořit zobrazení distribuované logické operace pomocí operation_Id, operation_parentId a request.id s dependency.id. Tato pole také definují kauzální pořadí volání telemetrie.
V prostředí mikroslužeb mohou stopy ze součástí směřovat do různých položek úložiště. Každá komponenta může mít v Application Insights vlastní připojovací řetězec. Pokud chcete získat telemetrii pro logickou operaci, Application Insights dotazuje data z každé položky úložiště.
Pokud je počet položek úložiště velký, potřebujete nápovědu, kam se podívat dál. Datový model Application Insights definuje dvě pole pro vyřešení tohoto problému: request.source a dependency.target. První pole identifikuje komponentu, která iniciovala požadavek na závislost. Druhé pole určuje, která komponenta vrátila odpověď volání závislosti.
Informace o dotazování z několika různorodých instancí najdete v tématu Dotazování dat v pracovních prostorech, aplikacích a prostředcích služby Log Analytics ve službě Azure Monitor.
Example
Podívejme se na příklad. Aplikace s názvem Stock Prices (Ceny akcií) zobrazuje aktuální tržní cenu akcií pomocí externího rozhraní API s názvem Akcie. Aplikace Stock Prices má stránku s názvem Stock page, kterou klient webový prohlížeč otevře pomocí GET /Home/Stock. Aplikace odesílá dotaz na rozhraní API akcií pomocí volání HTTP GET /api/stock/value.
Výslednou telemetrii můžete analyzovat spuštěním dotazu:
(requests | union dependencies | union pageViews)
| where operation_Id == "STYz"
| project timestamp, itemType, name, id, operation_ParentId, operation_Id
Ve výsledcích všechny položky telemetrie sdílejí kořen operation_Id. Při volání Ajax ze stránky se k telemetrii závislostí přiřadí nové jedinečné ID (qJSXU) a ID objektu pageView se použije jako operation_ParentId. Požadavek serveru pak použije ID Ajax jako operation_ParentId.
| typ položky | název | ID | operation_ParentId | operation_Id |
|---|---|---|---|---|
| pageView | Stránka s akciemi | STYz |
STYz |
|
| závislost | GET /Home/Stock | qJSXU |
STYz |
STYz |
| žádost | Dostaňte se do Domů/Zásoby | KqKwlrSt9PA= |
qJSXU |
STYz |
| závislost | GET /api/stock/value | bBrf2L7mm2g= |
KqKwlrSt9PA= |
STYz |
Při volání GET /api/stock/value do externí služby potřebujete znát identitu tohoto serveru, abyste mohli pole správně nastavit dependency.target . Pokud externí služba nepodporuje monitorování, target nastaví se na název hostitele služby. Příklad: stock-prices-api.com. Pokud se ale služba identifikuje vrácením předdefinované hlavičky HTTP, obsahuje identitu služby, target která službě Application Insights umožňuje sestavit distribuované trasování dotazováním telemetrie z této služby.
Hlavičky korelace pomocí W3C TraceContext
Application Insights přechází na W3C Trace-Context, který definuje:
-
traceparent: Nese globálně jedinečné ID operace a jedinečný identifikátor volání. -
tracestate: Přenáší kontext trasování specifické pro systém.
Podporovaná instrumentace používá pro distribuované trasování protokol W3C Trace Context.
Protokol HTTP korelace, označovaný také jako ID požadavku, je zastaralý. Tento protokol definuje dvě hlavičky:
-
Request-Id: Přenáší globálně jedinečné ID volání. -
Correlation-Context: Nese kolekci párů klíč-hodnota vlastností distribuovaného trasování.
Application Insights také používá kontext korelace k naplnění polí, jako jsou dependency.target a request.source, pokud je tento kontext k dispozici.
Datové modely W3C Trace-Context a Application Insights se mapují následujícím způsobem:
| Application Insights | W3C TraceContext |
|---|---|
Id z Request a Dependency |
parent-id |
Operation_Id |
trace-id |
Operation_ParentId |
parent-id nadřazeného rozsahu tohoto rozsahu. Toto pole musí být prázdné, pokud se jedná o kořenové rozpětí. |
Další informace najdete v datovém modelu telemetrie Application Insights.
Povolení podpory distribuovaného trasování W3C
Tato funkce je ve výchozím nastavení povolená pro JavaScript a hlavičky se automaticky zahrnou, když je doména hostitelské stránky stejná jako doména, do které se požadavky odesílají (například hostitelská stránka je example.com a požadavky Ajax se odesílají).example.com Pokud chcete změnit režim distribuovaného trasování, použijte distributedTracingMode konfigurační pole. Výchozí hodnota, AI_AND_W3C, zajišťuje zpětnou kompatibilitu se všemi staršími službami vybavenými instrumentací Application Insights.
-
Přidejte následující konfiguraci:
distributedTracingMode: DistributedTracingModes.W3C Nastavení pomocí skriptu pro JavaScript (Web) SDK
Přidejte následující konfiguraci:
distributedTracingMode: 2 // DistributedTracingModes.W3C
Pokud požadavky XMLHttpRequest nebo Fetch Ajax přejdou na jiného hostitele domény, včetně subdomén, hlavičky korelace se ve výchozím nastavení nezahrnou. Chcete-li tuto funkci povolit, nastavte enableCorsCorrelation konfigurační pole na truehodnotu . Pokud nastavíte hodnotu enableCorsCorrelationtrue, všechny požadavky XMLHttpRequest a Fetch Ajax zahrnují hlavičky korelace. V důsledku toho platí, že pokud aplikace na serveru, na který požadavek cílí, nepodporuje hlavičku traceparent, požadavek může selhat. Toto selhání závisí na tom, jestli prohlížeč a verze můžou požadavek ověřit na základě toho, které hlavičky server přijímá. Konfigurační pole můžete použít correlationHeaderExcludedDomains k vyloučení domény serveru z injektáže hlaviček korelace mezi komponentou. Můžete například použít correlationHeaderExcludedDomains: ['*.auth0.com'] k vyloučení hlaviček korelace z požadavků odeslaných zprostředkovateli identity Auth0.
Důležité
Pokud chcete zobrazit všechny konfigurace potřebné k povolení korelace, prohlédněte si dokumentaci k korelaci JavaScriptu.
Filtrování a předběžné zpracování telemetrie
U webových aplikací JavaScriptu použijte inicializátory telemetrie k filtrování, úpravě nebo rozšiřování telemetrie před odesláním.
- Vraťte se
falsez inicializátoru, aby před odesláním vyhodili položku telemetrie. - Přidání nebo úprava polí v položce telemetrie za účelem obohacení telemetrie o hodnoty, které jsou užitečné pro filtrování a analýzu.
- Pokud potřebujete statistické vzorkování místo explicitního filtrování, použijte konfiguraci vzorkování sady SDK ke snížení objemu telemetrie.
Výstraha
Filtrování telemetrie může zkosit statistiky portálu a může znesnadnit sledování souvisejících položek. Upřednostněte vzorkování, pokud potřebujete snížit objem, aniž byste explicitně vyloučili konkrétní telemetrii.
Webové aplikace v JavaScriptu
Pokud chcete filtrovat telemetrii z webových aplikací JavaScriptu, použijte ITelemetryInitializer.
Vytvořte funkci zpětného volání inicializátoru telemetrie. Funkce zpětného volání přebírá
ITelemetryItemjako parametr, což je událost, která se zpracovává. Pokud zpětné volání vrátífalse, položka telemetrie se vyfiltruje.var filteringFunction = (envelope) => { if (envelope.data.someField === 'tobefilteredout') { return false; } return true; };Přidejte funkci zpětného volání svého inicializátoru telemetrie:
appInsights.addTelemetryInitializer(filteringFunction);
Inicializátory telemetrie JavaScriptu
Inicializátory telemetrie se spouští před odesláním telemetrické položky v JavaScriptu. Použijte je k přidání, úpravě nebo vyřazení telemetrie prohlížeče. Vrácení false z inicializátoru vynechá položku.
K cílenému rozšiřování nebo filtrování použijte inicializátory telemetrie. Vzorkování použijte, pokud potřebujete snížit objem, aniž byste explicitně vyloučili konkrétní telemetrii.
Inicializátory telemetrie JavaScriptu
V případě potřeby vložte inicializátor telemetrie JavaScriptu. Další informace o inicializátorech telemetrie pro sadu Application Insights JavaScript SDK najdete v tématu Inicializátory telemetrie.
Vložte inicializátor telemetrie přidáním funkce zpětného onInit volání do konfigurace zavaděče sady JavaScript (Web) SDK:
<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>
Souhrn nestandardních vlastností dostupných u položky telemetrie najdete v tématu Application Insights Export Data Model.
Můžete přidat libovolný počet inicializátorů. Volají se v pořadí, ve kterém je přidáte.
Přidejte název cloudové role a instanci cloudové role.
K nastavení ai.cloud.role a ai.cloud.roleInstance značek použijte inicializátor telemetrie. Tyto značky definují, jak se vaše komponenta zobrazuje v mapě aplikace ve službě Azure Monitor.
appInsights.queue.push(() => {
appInsights.addTelemetryInitializer((envelope) => {
envelope.tags["ai.cloud.role"] = "your role name";
envelope.tags["ai.cloud.roleInstance"] = "your role instance";
});
});
Správa souborů cookie
Počínaje verzí 2.6.0 poskytuje sada Aplikace Azure Insights JavaScript SDK správu souborů cookie založenou na instanci, kterou můžete po inicializaci zakázat a znovu povolit.
Pokud soubory cookie zakážete během inicializace pomocí disableCookiesUsage konfigurace nebo cookieCfg.enabled konfigurace, můžete je znovu povolit pomocí setEnabled funkce objektu ICookieMgr.
Správa souborů cookie založená na instanci nahrazuje předchozí globální funkce CoreUtils , disableCookies()setCookie(), getCookie()a deleteCookie().
Pokud chcete využít vylepšení stromového zatřesení zavedená ve verzi 2.6.0, přestaňte používat globální funkce.
Konfigurace souborů cookie
ICookieMgrConfig je konfigurace souborů cookie pro správu souborů cookie na základě instancí přidaná ve verzi 2.6.0. Možnosti, které poskytuje, umožňují povolit nebo zakázat používání souborů cookie sadou SDK. Můžete také nastavit vlastní domény a cesty souborů cookie a přizpůsobit funkce pro načítání, nastavení a odstraňování souborů cookie.
Následující tabulka definuje ICookieMgrConfig možnosti.
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| povoleno | Boolean | pravda | Aktuální instance sady SDK používá tuto logickou hodnotu k označení, jestli je povolené použití souborů cookie. Pokud je false, instance sady SDK inicializovaná touto konfigurací neukládá ani nečte žádná data ze souborů cookie. |
| doména | řetězec | null | Vlastní doména souborů cookie. Je užitečné, pokud chcete sdílet soubory cookie Application Insights napříč subdoménami. Pokud není zadaný, použije hodnotu z kořenové cookieDomain hodnoty. |
| cesta | řetězec | / | Určuje cestu, která se má použít pro soubor cookie. Pokud není zadána, použije se libovolná hodnota z kořenové hodnoty cookiePath. |
| ignorovat cookies | řetězec[] | nedefinovaný | Zadejte názvy souborů cookie, které chcete ignorovat. Způsobí, že se žádný odpovídající název souboru cookie nikdy nečte ani nezapíše. Stále je možné je explicitně vyprázdnit nebo odstranit. Název blockedCookies nemusíte v konfiguraci opakovat. (od verze 2.8.8) |
| blokovanéSouboryCookies | řetězec[] | nedefinovaný | Zadejte názvy souborů cookie, které se nikdy nezapisují. Brání vytváření nebo aktualizaci názvu souboru cookie, ale mohou být stále čtené, pokud nejsou zahrnuty také v ignoreCookiessouboru . Dají se přesto vymazat nebo odstranit explicitně. Pokud není zadaný, nastaví se ve výchozím nastavení na stejný seznam v ignoreCookiessouboru . (Od verze 2.8.8) |
| getCookie | (name: string) => string |
null | Funkce, která načte pojmenovanou hodnotu souboru cookie. Pokud není k dispozici, sada SDK používá interní analýzu a ukládání souborů cookie do mezipaměti. |
| setCookie | (name: string, value: string) => void |
null | Funkce pro nastavení pojmenovaného souboru cookie se zadanou hodnotou. Volá se pouze při přidávání nebo aktualizaci souboru cookie. |
| delCookie | (name: string, value: string) => void |
null | Funkce pro odstranění pojmenovaného souboru cookie se zadanou hodnotou Tato funkce je oddělena od setCookie, aby nebylo nutné analyzovat hodnotu při určování, zda se soubor cookie přidává, nebo odebírá. Pokud není k dispozici, sada SDK používá interní analýzu a ukládání souborů cookie do mezipaměti. |
Zdrojová mapa
Podpora map zdrojů vám pomáhá ladit minifikovaný kód JavaScriptu tím, že deminifikuje minifikovaný zásobník volání v telemetrii výjimek.
- Kompatibilní se všemi aktuálními integracemi na panelu Podrobnosti o výjimce
- Podporuje všechny aktuální a budoucí sady JavaScript SDK, včetně Node.js, bez nutnosti upgradu sady SDK.
Propojení s účtem Blob Storage
Application Insights podporuje nahrávání zdrojových map do kontejneru objektů blob účtu Azure Storage. Použijte zdrojové mapy k deminifikaci zásobníků volání nalezených na stránce Podrobnosti transakce end-to-end. Pomocí zdrojových map můžete také rozminifikovat každou výjimku odeslanou prostřednictvím JavaScript SDK nebo Node.js SDK.
Vytvoření nového účtu úložiště a blob kontejneru
Pokud už máte existující účet úložiště nebo kontejner objektů blob, můžete tento krok přeskočit.
V účtu úložiště vytvořte kontejner objektů BLOB Nastavte úroveň veřejného přístupu na Privátní , abyste měli jistotu, že vaše zdrojové mapy nejsou veřejně přístupné.
Přesuňte své zdrojové mapy do blob kontejneru
Integrujte kanál průběžného nasazování s účtem úložiště tím, že ho nakonfigurujete tak, aby automaticky nahrál zdrojové mapy do nakonfigurovaného kontejneru objektů blob.
Zdrojové mapy můžete nahrát do kontejneru služby Azure Blob Storage se stejnou strukturou složek, se kterou byly zkompilovány a nasazeny. Běžným případem použití je předpona složky nasazení s její verzí, 1.2.3/static/js/main.jsnapříklad . Při rozbalování prostřednictvím Azure blob kontejneru nazvaného sourcemaps, se pipeline pokusí načíst zdrojovou mapu umístěnou na sourcemaps/1.2.3/static/js/main.js.map.
Nahrání zdrojových map přes Azure Pipelines (doporučeno)
Pokud k průběžnému sestavování a nasazování aplikace používáte Azure Pipelines, přidejte do kanálu úlohu kopírování souborů Azure, která automaticky nahraje zdrojové mapy.
Nakonfigurujte prostředek Application Insights pomocí účtu úložiště pro zdrojové mapy
Máte dvě možnosti konfigurace prostředku Application Insights pomocí účtu úložiště zdrojové mapy.
Karta Podrobnosti o transakci od začátku do konce
Na kartě Podrobnosti o end-to-end transakci vyberte Unminify. Nakonfigurujte svůj prostředek, pokud není nastavený.
- Na webu Azure Portal zobrazte podrobnosti o výjimce, která je minifikovaná.
- Vyberte Unminify( Unminify).
- Pokud váš prostředek není nakonfigurovaný, nakonfigurujte ho.
Karta Vlastnosti
Chcete-li konfigurovat nebo změnit účet úložiště nebo kontejner blobů, který je propojený s prostředkem Application Insights:
Přejděte na kartu Vlastnosti prostředku Application Insights.
Vyberte Změnit kontejner objektů blob zdrojové mapy.
Jako kontejner zdrojové mapy vyberte jiný kontejner objektů blob.
Vyberte Použít.
Zobrazení neminifikovaného zásobníku volání
Pokud chcete zobrazit neminifikovaný zásobník volání, vyberte na portálu Azure položku Telemetrie výjimek, vyhledejte zdrojové mapy, které odpovídají zásobníku volání, a přetáhněte zdrojové mapy do zásobníku volání na portálu Azure Portal. Zdrojová mapa musí mít stejný název jako zdrojový soubor rámce zásobníku, ale s příponou map .
Pokud dojde k problémům, které zahrnují podporu mapování zdrojů pro aplikace JavaScriptu, přečtěte si téma Řešení potíží s podporou mapování zdrojů pro aplikace JavaScript.
Strom se zatřese
Třepání stromu odebere nepoužívaný kód z konečné sady JavaScriptu.
Pokud chcete využít třepání stromu, naimportujte do kódu pouze nezbytné součásti sady SDK. Tím vyloučíte z konečné sady nepoužívaný kód, který zmenší jeho velikost a zlepší výkon.
Vylepšení a doporučení pro roztřesení stromu
Ve verzi 2.6.0 sada SDK označila interní používání těchto statických pomocných tříd jako zastaralé a odstranila je, aby zlepšila podporu algoritmů pro odstraňování nepoužívaného kódu. Tato změna umožňuje balíčkům npm bezpečně odstranit nepoužívaný kód.
CoreUtilsEventHelperUtilUrlHelperDateTimeUtilsConnectionStringParser
Funkce se teď exportují z modulů na nejvyšší úrovni, což usnadňuje refaktoring kódu pro efektivnější tree shaking.
Statické třídy jsou nyní const objekty, které odkazují na nové exportované funkce.
Optimalizace odstraněním zastaralých funkcí a jejich nahrazení
Tato část platí jenom v případě, že používáte zastaralé funkce a chcete optimalizovat velikost balíčku. Pokud chcete zmenšit velikost a podporovat všechny verze Internet Explorer, použijte náhradní funkce.
| Existující | Náhrada |
|---|---|
| CoreUtils | @microsoft/applicationinsights-core-js |
| CoreUtils._canUseCookies | Žádný Tuto funkci nepoužívejte, protože způsobuje zahrnutí všech odkazů CoreUtils do konečného kódu. Refaktorujte zpracování souborů cookie tak, aby se použila appInsights.getCookieMgr().setEnabled(true/false) k nastavení hodnoty a appInsights.getCookieMgr().isEnabled() ke kontrole hodnoty. |
| CoreUtils.isTypeof | jeTypem |
| CoreUtils.isUndefined | není definováno |
| CoreUtils.isNullOrUndefined - Tato funkce kontroluje, zda je hodnota 'null' nebo 'undefined'. | jeNullNeboNedefinováno |
| CoreUtils.hasOwnProperty | hasOwnProperty (kontroluje, zda objekt obsahuje konkrétní vlastnost) |
| CoreUtils.isFunction | isFunction |
| CoreUtils.isObject | isObject |
| CoreUtils.isDate | isDate |
| CoreUtils.isArray | isArray |
| CoreUtils.isError | isError |
| CoreUtils.isString | isString |
| CoreUtils.isNumber | isNumber |
| CoreUtils.isBoolean | isBoolean |
| CoreUtils.toISOString | toISOString nebo getISOString |
| CoreUtils.arrForEach | arrForEach |
| CoreUtils.arrIndexOf | arrIndexOf |
| CoreUtils.arrMap | arrMap |
| CoreUtils.arrReduce | arrReduce |
| CoreUtils.strTrim | strTrim |
| CoreUtils.objCreate | objCreateFn (funkce pro vytvoření objektu) |
| CoreUtils.objKeys | objKeys |
| CoreUtils.objDefineAccessors | objDefineAccessors |
| CoreUtils.addEventHandler | addEventHandler |
| CoreUtils.dateNow | datumNyní |
| CoreUtils.isIE | isIE (Internet Explorer) |
| CoreUtils.disableCookies | disableCookies Odkaz na kteroukoli z těchto funkcí způsobí, že bude kvůli zpětné kompatibilitě odkazováno také na CoreUtils. Upravit zpracování souborů cookie, aby používalo appInsights.getCookieMgr().setEnabled(false). |
| CoreUtils.newGuid | newGuid |
| CoreUtils.perfNow | perfNow |
| CoreUtils.newId | novéID |
| CoreUtils.randomValue | randomValue |
| CoreUtils.random32 | random32 |
| CoreUtils.mwcRandomSeed | mwcRandomSeed |
| CoreUtils.mwcRandom32 | mwcRandom32 |
| CoreUtils.generateW3CId | vygenerovatW3CId |
| EventHelper | @microsoft/applicationinsights-core-js |
| EventHelper.Attach | připojit událost |
| EventHelper.AttachEvent | připojit událost |
| EventHelper.Detach | detachEvent |
| EventHelper.DetachEvent | detachEvent |
| Pomocné | @microsoft/applicationinsights-common-js |
| Util.Neurčeno | StrNotSpecified |
| Util.createDomEvent | createDomEvent |
| Util.zakázatÚložiště | utlDisableStorage |
| Util.isInternalApplicationInsightsEndpoint | isInternalApplicationInsightsEndpoint |
| Util.canUseLocalStorage | utlCanUseLocalStorage |
| Util.getStorage | utlGetLocalStorage |
| Util.setStorage | utlSetLocalStorage |
| Util.removeStorage | utlRemoveStorage |
| Util.canUseSessionStorage | utlMůžePoužívatSessionStorage |
| Util.getSessionStorageKeys | utlGetSessionStorageKeys |
| Util.getSessionStorage | utlGetSessionStorage |
| Util.setSessionStorage | utlSetSessionStorage |
| Util.removeSessionStorage | utlRemoveSessionStorage |
| Util.disableCookies | disableCookies Odkazování buď způsobí, že CoreUtils budou použity k zajištění zpětné kompatibility. Upravit zpracování souborů cookie, aby používalo appInsights.getCookieMgr().setEnabled(false). |
| Util.canUseCookies | canUseCookies Odkazování buď způsobí, že CoreUtils budou použity k zajištění zpětné kompatibility. Upravit zpracování souborů cookie, aby používalo appInsights.getCookieMgr().isEnabled(). |
| Util.disallowsSameSiteNone | uaDisallowsSameSiteNone |
| Util.setCookie | coreSetCookie Odkazování způsobí, že nástroje CoreUtils budou použity pro zpětnou kompatibilitu. Upravit zpracování souborů cookie, aby používalo appInsights.getCookieMgr().set(name: string, value: string). |
| Util.stringToBoolOrDefault | stringToBoolOrDefault |
| Util.getCookie | coreGetCookie Odkazování způsobí, že nástroje CoreUtils budou použity pro zpětnou kompatibilitu. Upravit zpracování souborů cookie, aby používalo appInsights.getCookieMgr().get(name: string). |
| Util.deleteCookie | coreDeleteCookie Odkazování způsobí, že nástroje CoreUtils budou použity pro zpětnou kompatibilitu. Upravit zpracování souborů cookie, aby používalo appInsights.getCookieMgr().del(name: string, path?: string). |
| Util.trim | strTrim |
| Util.newId | novéID |
| Util.random32 | --- Nepoužívejte náhrady, refaktorujte svůj kód, aby používal základní funkci random32(true) |
| Util.generateW3CId | vygenerovatW3CId |
| Util.isArray | isArray |
| Util.isError | isError |
| Util.isDate | isDate |
| Util.toISOStringForIE8 | toISOString |
| Util.getIEVersion | getIEVersion |
| Util.msToTimeSpan | msToTimeSpan |
| Util.isCrossOriginError | isCrossOriginError |
| Util.dump | dumpObj |
| Util.getExceptionName | getExceptionName |
| Util.addEventHandler | připojit událost |
| Util.IsBeaconApiSupported | isBeaconApiSupported |
| Util.getExtension | getExtensionByName |
| UrlHelper | @microsoft/applicationinsights-common-js |
| UrlHelper.parseUrl | urlParseUrl |
| UrlHelper.získatAbsolutníUrl | urlGetAbsoluteUrl |
| UrlHelper.getPathName (získat název cesty) | urlGetPathName |
| UrlHelper.getCompeteUrl | urlGetCompleteUrl |
| UrlHelper.parseHost (metoda pro analýzu hostitele) | urlParseHost |
| UrlHelper.parseFullHost | urlParseFullHost |
| DateTimeUtils | @microsoft/applicationinsights-common-js |
| DateTimeUtils.Now | dateTimeUtilsNyní |
| DateTimeUtils.GetDuration | dateTimeUtilsDuration |
| ConnectionStringParser | @microsoft/applicationinsights-common-js |
| ConnectionStringParser.parse | parseConnectionString |
Oznámení služby
Sada SDK obsahuje oznámení služeb, která poskytují užitečná doporučení, která vám pomůžou zajistit nepřerušované toky telemetrie do Application Insights. Oznámení se zobrazí jako zpráva o výjimce v Application Insights. Sada SDK zajišťuje, že oznámení jsou pro vás relevantní na základě nastavení sady SDK a upraví úroveň podrobností na základě naléhavosti doporučení. Nechte oznámení o službách zapnutá, ale můžete se odhlásit prostřednictvím featureOptIn konfigurace.
V současné době nejsou odesílána žádná aktivní oznámení.
JavaScriptové SDK spravuje servisní oznámení a pravidelně kontroluje veřejný soubor JSON, aby tato oznámení řídilo a aktualizovalo. Pokud chcete zakázat dotazování prováděné pomocí JavaScript SDK, vypněte režim featureOptIn.
Řešení problému
Projděte si vyhrazený článek o řešení potíží.
Další kroky
- Nejčastější dotazy k sadě JavaScript SDK najdete v nejčastějších dotazech k konfiguraci sady JavaScript SDK.
- Sledujte využití.
- Úloha kopírování souborů Azure.
- Referenční informace k datovým typům služby Azure Monitor a kód sady SDK pro javascriptovou sadu SDK