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.
Sada JavaScript SDK pro Aplikace Azure lication 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.
Pokyny k přidání konfigurace sady SDK najdete v tématu Přidání konfigurace sady SDK.
| Název | Typ | Výchozí |
|---|---|---|
| ID účtu Volitelné ID účtu, pokud vaše aplikace seskupí uživatele do účtů. Žádné mezery, čárky, středníky, rovná se nebo svislé pruhy |
řetězec | null |
| přidat KontextPožadavku Poskytuje způsob, jak rozšířit protokoly závislostí s kontextem na začátku volání rozhraní API. Výchozí hodnota není definována. Pokud konfigurujete xhr související kontext, musíte zkontrolovat, jestli xhr existuje. Pokud konfigurujete fetch request související kontext, musíte zkontrolovat, jestli fetch response existujefetch. V opačném případě možná nebudete dostávat potřebná data. |
(requestContext: IRequestionContext) => {[klíč: řetězec]: any} | nedefinovaný |
| ajaxPerfLookupDelay Výchozí hodnota je 25 ms. Doba čekání před opětovným spuštěním hledání časování windows.performance pro požadavek Ajax, doba je v milisekundách a předává se přímo do setTimeout(). |
numerické | 25 |
| 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 |
| 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 vrátí se do (nové datum()).getTime() if now() is unavailable (IE8 or less). Výchozí hodnota je False. |
Boolean | false (nepravda) |
| převéstNaNeurčeno Zadejte uživateli možnost převést nedefinované pole na uživatelem definovanou hodnotu. |
any |
nedefinovaný |
| 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 k souboru 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 |
| 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ázání hlaviček korelace pomocí regulárních výrazů |
regex[] | nedefinovaný |
| 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ý |
| customHeaders Možnost, aby uživatel při použití vlastního koncového bodu poskytoval další hlavičky. Při vypnutí prohlížeče se při použití odesílatele signálu nepřidávají vlastní hlavičky. A přidávání vlastních hlaviček se nepodporuje v IE9 nebo starších verzích. |
[{header: string, value: string}] |
nedefinovaný |
| diagnosticLogInterval (interní) Interval dotazování (v ms) pro interní frontu protokolování |
numerické | 10 000 |
| zakázatSledováníAjaxu Pokud je pravda, volání Ajax nejsou automatickycollectována. Výchozí hodnota je False. |
Boolean | false (nepravda) |
| zakázatPoužíváníCookies Výchozí 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) |
| 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) |
| zakázatAnalýzuZtrátyDat Pokud je false, interní vyrovnávací paměti odesílatele telemetrie se kontrolují při spuštění pro položky, které ještě nebyly odeslány. |
Boolean | pravda |
| vypnutíSledováníVýjimek Pokud je pravda, výjimky nejsou automatickycollectovány. 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í se truepožadavky na načtení automaticky neshromažďuje. Výchozí nastavení se změnilo na truefalse ve verzi 2.8.0. |
Boolean | false (nepravda) |
| deaktivovatFlushPřiBeforeUnload Výchozí false. Pokud je true, metoda flush není volána při triggerech událostí onBeforeUnload |
Boolean | false (nepravda) |
| disableIkeyDeprecationMessage Zakažte chybovou zprávu o vyřazení klíče instrumentace. Pokud je pravda, chybové zprávy se neodesílají. |
Boolean | pravda |
| 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) |
| zakázat telemetrii Pokud je pravda, telemetrie se neshromažďuje ani neodesílají. Výchozí hodnota je False. |
Boolean | false (nepravda) |
| disableXhr Nepoužívejte xmlHttpRequest nebo XDomainRequest (pro Internet Explorer < verze 9) ve výchozím nastavení pokus o použití fetch() nebo sendBeacon. Pokud není k dispozici žádný jiný přenos, použije XMLHttpRequest. |
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 |
| enableAjaxErrorStatusText Výchozí false. Pokud je hodnota true, uveďte logickou hodnotu textu chyb odpovědi v události závislostí na neúspěšných požadavcích AJAX. |
Boolean | false (nepravda) |
| enableAjaxPerfTracking (povolit sledování výkonu Ajaxu) Výchozí false. Příznak pro povolení vyhledávání a zahrnutí dodatečných časování window.performance prohlížeče v hlášených metrikách Ajax (XHR a načtení). |
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 tras hash ( example.com/foo#bar) se také zaznamenávají jako nová zobrazení stránek.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) |
| 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) |
| 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) |
| enablePerfMgr Pokud je tato možnost povolená (true), vytvoří místní nástroje perfEvents pro kód, který byl instrumentován k generování funkcí 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) |
| 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) |
| enableSessionStorageBuffer Výchozí hodnota true. Pokud je hodnota true, uloží se vyrovnávací paměť se všemi neodeznanými telemetrií v úložišti relací. Vyrovnávací paměť se obnoví při načítání stránky. |
Boolean | pravda |
| povolit sledování neošetřených zamítnutí příslibu Pokud je pravda, neošetřené odmítnutí slibů se automaticky přepojí jako chyba 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) |
| 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 |
| 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. Pokud je definovaný požadavek Ajax / fetch, že adresa URL požadavku odpovídá vzorům regulárních výrazů, automatické sledování je vypnuté. Výchozí hodnota není definována. |
string[] | RegExp[] | nedefinovaný |
| featureOptIn Nastavení podrobností o výslovném souhlasu s funkcí Toto konfigurační pole je k dispozici pouze ve verzi 3.0.3 a novější. |
IFeatureOptIn | nedefinovaný |
| 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, měli byste nastavit hodnotu na 5. |
numerické | 22 |
| ignorovatZáhlaví Ajax & Fetch request and response headers to be ignored in log data. 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"] |
| jeApiMajákuZakázané Pokud je false, sada SDK odešle veškerou telemetrii pomocí rozhraní Api signálu . |
Boolean | pravda |
| 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) |
| jeZakázánoOpětovnéPokoušení Výchozí false. Pokud je false, zkuste to znovu 206 (částečný úspěch), 408 (vypršení časového limitu), 429 (příliš mnoho požadavků), 500 (vnitřní chyba serveru), 503 (služba není k dispozici) a 0 (offline, jenom pokud je 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) |
| úroveň logování konzole Zaznamená do konzoly interní chyby Application Insights. 0: vypnuto, 1: Pouze kritické chyby, 2: Vše (chyby a upozornění) |
numerické | 0 |
| telemetrie úrovně protokolování Odesílá interní chyby Application Insights jako telemetrii. 0: vypnuto, 1: Pouze kritické chyby, 2: Vše (chyby a upozornění) |
numerické | 0 |
| maxAjaxCallsPerView Výchozí 500 – určuje, kolik volání Ajax se monitoruje na zobrazení stránky. Pokud chcete monitorovat všechna (neomezená) volání Ajax na stránce, nastavte na hodnotu -1. |
numerické | 500 |
| 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 načtení požadavků se po dokončení přidá. |
numerické | 3 |
| maxBatchInterval Jak dlouho dávkové telemetrie před odesláním (milisekundy) |
numerické | 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. |
numerické | 10 000 |
| 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ý |
| onunloadDisableBeacon Výchozí false. po zavření karty sada SDK odešle veškerou zbývající telemetrii pomocí rozhraní Beacon API. |
Boolean | false (nepravda) |
| onunloadDisableFetch Pokud se funkce keepalive fetch podporuje, nepoužívejte ji k odesílání událostí během uvolnění, může se stále vrátit k načtení () bez zachování |
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) |
| perfEvtsSendAll Pokud je povoleno enablePerfMgr a IPerfManager aktivuje INotificationManager.perfEvent() tento příznak určuje, jestli je událost aktivována (a odeslána všem naslouchacím procesům) pro všechny události (true) nebo pouze pro nadřazené 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) |
| vzorkováníPercentage 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. |
numerické | 100 |
| 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 |
| 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 oprava názvu souboru cookie relace. |
řetězec | nedefinovaný |
| vypršeníPlatnostiRelaceMs Relace se zaprotokoluje, pokud po tuto dobu pokračovala v milisekundách. Výchozí hodnota je 24 hodin |
numerické | 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. |
numerické | 1800000 |
| throttleMgrCfg Nastavte konfiguraci omezení mgr podle klíče. Toto konfigurační pole je k dispozici pouze ve verzi 3.0.3 a novější. |
{[key: number]: IThrottleMgrConfig} |
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á oprava. |
řetězec | 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.
Agenti a sady SDK Application Insights pro .NET, .NET Core, Java, Node.jsa JavaScript podporují distribuované trasování nativně.
Se správně nainstalovanou a nakonfigurovanou sadou Application Insights SDK se informace o trasování automaticky shromažďují pro oblíbené architektury, knihovny a technologie automatickými kolektory závislostí součástí sady SDK. Úplný seznam podporovaných technologií je k dispozici v dokumentaci k automatickému sběru závislostí.
Libovolnou technologii lze také sledovat ručně pomocí volání TrackDependency v TelemetryClient.
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.
Nejnovější verze sady Application Insights SDK podporuje protokol Trace-Context, ale možná se k němu budete muset přihlásit. (Zpětnou kompatibilitu s předchozím korelačním protokolem podporovaným sadou Application Insights SDK se udržuje.)
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é definuje rozšíření pro protokol HTTP korelace. Používá páry název-hodnota Request-Context k přenosu kolekce vlastností používaných bezprostředním volajícím nebo volaným. Aplikace Insights SDK používá tuto hlavičku k nastavení polí dependency.target a request.source.
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, na kterou se požadavky odesílají (například hostující 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. AI_AND_W3C je poskytována ve výchozím nastavení pro zpětnou kompatibilitu se staršími službami instrumentovanými 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 se požadavky XMLHttpRequest nebo Fetch Ajax posílají jinému hostiteli 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 se může stát, že pokud aplikace na volaném serveru nepodporuje hlavičku traceparent , může požadavek selhat v závislosti na tom, jestli prohlížeč nebo verze může požadavek ověřit na základě toho, které hlavičky server přijme. 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
Před odesláním ze sady SDK můžete napsat kód pro filtrování, úpravu nebo rozšiřování telemetrie. Zpracování zahrnuje data odesílaná ze standardních modulů telemetrie, jako je například shromažďování požadavků HTTP a kolekce závislostí.
Filtrování může upravit nebo zahodit telemetrii před jejím odesláním ze sady SDK pomocí implementace
ITelemetryProcessor. Můžete například snížit objem telemetrie vyloučením požadavků z robotů. Na rozdíl od vzorkování máte úplnou kontrolu nad tím, co se odesílá nebo zahodí, ale ovlivňuje všechny metriky založené na agregovaných protokolech. V závislosti na tom, jak položky zahodíte, můžete také ztratit možnost přecházet mezi souvisejícími položkami.Přidejte nebo upravte vlastnosti do jakékoli telemetrie odeslané z vaší aplikace implementací
ITelemetryInitializer. Můžete například přidat počítané hodnoty nebo čísla verzí, podle kterých chcete filtrovat data na portálu.Vzorkování snižuje objem telemetrie, aniž by to ovlivnilo vaše statistiky. Udržuje související datové body pohromadě, abyste mezi nimi mohli přecházet při diagnostice problému. V rámci portálu se celkové počty násobí, aby bylo kompenzováno odběr vzorků.
Poznámka:
Rozhraní API sady SDK slouží k odesílání vlastních událostí a metrik.
Filtering
Tato technika poskytuje přímou kontrolu nad tím, co je součástí nebo vyloučeno z datového proudu telemetrie. Filtrování je možné použít k vyřazení položek telemetrie odesílaných do Application Insights. Filtrování můžete použít s vzorkováním nebo samostatně.
Pokud chcete filtrovat telemetrii, napíšete procesor telemetrie a zaregistrujete ho v TelemetryConfiguration. Veškerá telemetrie prochází vaším procesorem. Můžete ho vypustit z datového proudu nebo ho předat dalšímu procesoru v řetězci. Zahrnuje se telemetrie ze standardních modulů, jako je kolektor požadavků HTTP a kolektor závislostí a telemetrie, kterou jste sledovali sami. Můžete například filtrovat telemetrii týkající se požadavků od robotů nebo úspěšných volání na závislosti.
Výstraha
Filtrování telemetrie odeslané ze sady SDK pomocí procesorů může zkosit statistiky, které vidíte na portálu, a ztížit sledování souvisejících položek.
Místo toho zvažte použití vzorkování.
Webové aplikace v JavaScriptu
Telemetrii můžete filtrovat z webových aplikací JavaScriptu pomocí 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á. Vrácenímfalsez tohoto callbacku se položka telemetrie 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);
ITelemetryProcessor a ITelemetryInitializer
Jaký je rozdíl mezi procesory telemetrie a inicializátory telemetrie?
- Existují určité společné rysy v tom, co s nimi můžete dělat. Obojí se dá použít k přidání nebo úpravě vlastností telemetrie, i když pro tento účel doporučujeme používat inicializátory.
- Inicializátory telemetrie se vždy spouštějí před procesory telemetrie.
- Inicializátory telemetrie mohou být volány více než jednou. Podle konvence nenastavují žádnou vlastnost, která už byla nastavena.
- Procesory telemetrie umožňují zcela nahradit nebo zahodit položku telemetrie.
- Pro každou položku telemetrie se volají všechny zaregistrované inicializátory telemetrie. V případě procesorů telemetrie sada SDK zaručuje volání prvního procesoru telemetrie. Zda je zbytek procesorů volán, je rozhodováno předchozími telemetrickými procesory.
- Pomocí inicializátorů telemetrie můžete rozšířit telemetrii o více vlastností nebo přepsat existující. Pomocí procesoru telemetrie můžete vyfiltrovat telemetrii.
Přidání nebo úprava vlastností
Inicializátory telemetrie slouží k obohacení telemetrie o další informace nebo k přepsání vlastností telemetrie nastavených standardními moduly telemetrie.
Application Insights pro webový balíček například shromažďuje telemetrická data o požadavcích HTTP. Ve výchozím nastavení označí všechny požadavky s kódem odpovědi >=400 jako neúspěšné. Pokud místo toho chcete zacházet s 400 jako s úspěchem, můžete poskytnout inicializátor telemetrie, který nastaví vlastnost úspěchu.
Pokud zadáte inicializátor telemetrie, volá se při každém zavolání jakékoli metody Track*(). Tento inicializátor zahrnuje Track() metody, které jsou volány standardními moduly telemetrie. Podle konvence tyto moduly nenastavují žádnou vlastnost, která byla již nastavena inicializátorem. Inicializátory telemetrie se volají před voláním procesorů telemetrie, takže všechny rozšiřování provedené inicializátory jsou viditelné pro procesory.
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 volání onInit v konfiguraci skriptu 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ů. Jsou volány v pořadí, v jakém byly přidány.
Přidání názvu cloudové role a instance 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 lication Insights JavaScript SDK správu souborů cookie založenou na instancích, kterou je možné po inicializaci zakázat a znovu povolit.
Pokud jste během inicializace zakázali soubory cookie pomocí disableCookiesUsage konfigurace, cookieCfg.enabled 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, doporučujeme už používat globální funkce.
Konfigurace souborů cookie
ICookieMgrConfig je konfigurace souborů cookie pro správu souborů cookie založenou na instanci přidanou ve verzi 2.6.0. Dostupné možnosti 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.
Možnosti ICookieMgrConfig jsou definovány v následující tabulce.
| 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í zadaná, použije žádnou hodnotu z kořenové cookiePath hodnoty. |
| ignorovat cookies | řetězec[] | nedefinovaný | Zadejte názvy souborů cookie, které se mají ignorovat, způsobí, že se žádný odpovídající název souboru cookie nikdy nečte nebo zapíše. Mohou být stále explicitně vymazány nebo odstraněny. Název v konfiguraci nemusíte opakovat blockedCookies . (od verze 2.8.8) |
| blokovanéSouboryCookies | řetězec[] | nedefinovaný | Zadejte názvy souborů cookie, které se nikdy nezapisují. Zabrání vytváření nebo aktualizaci názvu souboru cookie, ale může být přečteno, pokud nejsou zahrnuty také v ignoreCookies. Můžou být i tak explicitně vymazány nebo odstraněny. Pokud není zadaný, nastaví se ve výchozím nastavení stejný seznam v ignoreCookies. (Od verze 2.8.8) |
| getCookie | (name: string) => string |
null | Funkce pro načtení pojmenované hodnoty cookie, pokud není k dispozici, používá interní parsování souborů cookie / ukládání do mezipaměti. |
| setCookie | (name: string, value: string) => void |
null | Funkce pro nastavení pojmenovaného souboru cookie se zadanou hodnotou volala 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 oddělenou od setCookie, aby se zabránilo nutnosti parsovat hodnotu, aby bylo možné určit, zda se soubor cookie přidává nebo odebírá. Pokud ho nezadáte, použije interní analýzu a ukládání do mezipaměti. |
Zdrojová mapa
Podpora zdrojových map pomáhá ladit minifikovaný javascriptový kód s možností sjednocení minifikovaného balíčku volání telemetrie 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. Pomocí zdrojových map můžete sjednotit zásobníky volání nalezené na stránce s podrobnostmi o celé transakci. Pomocí zdrojových map můžete také sjednotit všechny výjimky odeslané sadou JavaScript SDK nebo sadou Node.js SDK.
Vytvoření nového účtu úložiště a kontejneru objektů blob
Pokud už máte existující účet úložiště nebo kontejner objektů blob, můžete tento krok přeskočit.
Vytvořte nový účet úložiště.
Vytvořte v účtu úložiště 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é.
Nasdílení zdrojových map do kontejneru objektů blob
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 sjednocení prostřednictvím kontejneru objektů blob Azure, který se nazývá sourcemaps, se kanál pokusí načíst zdrojovou mapu umístěnou na sourcemaps/1.2.3/static/js/main.js.mapadrese .
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.
Konfigurace prostředku Application Insights pomocí účtu úložiště zdrojové mapy
Máte dvě možnosti konfigurace prostředku Application Insights pomocí účtu úložiště zdrojové mapy.
Karta Podrobnosti o celé transakci
Na kartě Podrobnosti o celé transakci vyberte Unminify. Nakonfigurujte prostředek, pokud není nakonfigurovaný.
- 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
Konfigurace nebo změna účtu úložiště nebo kontejneru objektů 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 mapování zdroje.
Jako kontejner zdrojové mapy vyberte jiný kontejner objektů blob.
Vyberte Použít.
Zobrazení neminifikovanéhoacku volání
Pokud chcete zobrazit neminifikovaný zásobník volání, vyberte na webu Azure Portal 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 webu 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 eliminuje nepoužitý 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 se nepoužitý kód nezahrne do konečné sady, zmenšuje jeho velikost a zlepšuje výkon.
Vylepšení a doporučení pro roztřesení stromu
Ve verzi 2.6.0 jsme zastaralí a odebrali interní použití těchto statických pomocných tříd, abychom zlepšili podporu algoritmů pro zatřesení stromu. Umožňuje bezpečným vyřazením nepoužívaného kódu balíčky npm.
CoreUtilsEventHelperUtilUrlHelperDateTimeUtilsConnectionStringParser
Funkce se teď exportují jako kořeny nejvyšší úrovně z modulů, což usnadňuje refaktoring kódu pro lepší zatřesení stromem.
Statické třídy byly změněny na objekty const, které odkazují na nové exportované funkce, a budoucí změny se plánují na další refaktoring odkazů.
Strom se zatřese zastaralou funkcí a nahrazení
Tato část se vztahuje jenom na vás, pokud používáte zastaralé funkce a chcete optimalizovat velikost balíčku. Ke zmenšení velikosti a podpoře všech verzí aplikace Internet Explorer doporučujeme používat náhradní funkce.
| Existující | Náhrada |
|---|---|
| CoreUtils | @microsoft/applicationinsights-core-js |
| CoreUtils._canUseCookies | Nezaokrouhlovat. Nepoužívejte, protože to způsobí, že všechny odkazy CoreUtils budou zahrnuty 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 Odkazování buď způsobí, že coreUtils bude odkazován na zpětnou kompatibilitu. Refaktoring zpracování souborů cookie tak, aby používal 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 | odpojení odtachEvent |
| EventHelper.DetachEvent | odpojení odtachEvent |
| 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 bude odkazován na zpětnou kompatibilitu. Refaktoring zpracování souborů cookie tak, aby používal appInsights.getCookieMgr().setEnabled(false) |
| Util.canUseCookies | canUseCookies Odkazování buď způsobí, že coreUtils bude odkazován na zpětnou kompatibilitu. Refaktoring zpracování souborů cookie tak, aby používal appInsights.getCookieMgr().isEnabled() |
| Util.disallowsSameSiteNone | uaDisallowsSameSiteNone |
| Util.setCookie | coreSetCookie Odkazování způsobí, že nástroje CoreUtils budou odkazovány na zpětnou kompatibilitu. Refaktoring zpracování souborů cookie tak, aby používal appInsights.getCookieMgr().set(name: string, value: string) |
| Util.stringToBoolOrDefault | stringToBoolOrDefault |
| Util.getCookie | coreGetCookie Odkazování způsobí, že nástroje CoreUtils budou odkazovány na zpětnou kompatibilitu. Refaktoring zpracování souborů cookie tak, aby používal appInsights.getCookieMgr().get(name: string) |
| Util.deleteCookie | coreDeleteCookie Odkazování způsobí, že nástroje CoreUtils budou odkazovány na zpětnou kompatibilitu. Refaktoring zpracování souborů cookie tak, aby používal appInsights.getCookieMgr().del(name: string, path?: string) |
| Util.trim | strTrim |
| Util.newId | novéID |
| Util.random32 | --- Žádné nahrazení, refaktoring kódu tak, aby používal jádro 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
Oznámení o službách jsou funkce integrovaná do sady SDK, která poskytují užitečná doporučení, která vám pomůžou zajistit nepřerušované toky telemetrie do Application Insights. Oznámení můžete zobrazit jako zprávu o výjimce v Application Insights. Zajišťujeme, aby oznámení byla relevantní pro vás na základě nastavení sady SDK, a na základě naléhavosti doporučení upravíme podrobnosti. Doporučujeme nechat oznámení služby zapnutá, ale můžete se odhlásit prostřednictvím featureOptIn konfigurace.
V současné době se odesílají žádná aktivní oznámení.
Oznámení služby spravuje javascriptová sada SDK, která pravidelně dotazuje veřejný soubor JSON, aby tato oznámení ovládala a aktualizovala. Pokud chcete zakázat dotazování provedené sadou JavaScript SDK, zakaž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.
- Sledování 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