Microsoft Azure Monitor Application Insights JavaScript SDK-konfiguration

Azure Application Insights JavaScript SDK tillhandahåller konfiguration för spårning, övervakning och felsökning av dina webbprogram.

SDK-konfiguration

De här konfigurationsfälten är valfria och standardvärdet false om inget annat anges. I följande avsnitt grupperas fälten efter syfte.

Anvisningar om hur du lägger till SDK-konfiguration finns i Lägga till SDK-konfiguration.

Cookies och sessionslagring

Använd disableCookiesUsage för att inaktivera cookies helt, cookieCfg för fullständig instansbaserad cookiekonfiguration cookieDomain och cookiePath för att begränsa cookies mellan underdomäner eller programgatewayer, och namePrefix, sessionCookiePostfixoch userCookiePostfix för att anpassa cookie- och localStorage-namn.

Konfigurationsfält Värdetyp Standardvärdet
cookieCfg

Som standard är cookie-användning aktiverad, se inställningarna i ICookieCfgConfig för fullständiga standardinställningar.
ICookieCfgConfig
[Valfritt]
(Sedan 2.6.0)
odefinierad
cookie-domän

Anpassad cookiedomän. Det är användbart om du vill dela Application Insights-cookies mellan underdomäner.
(Sedan v2.6.0) Om cookieCfg.domain definieras har det företräde framför det här värdet.
alias för cookieCfg.domain
[Valfritt]
NULL
cookiePath

Anpassad cookiesökväg. Det är användbart om du vill dela Application Insights-cookies bakom en programgateway.
Om cookieCfg.path har definierats har det företräde.
alias för cookieCfg.path
[Valfritt]
(Sedan 2.6.0)
NULL
inaktiveraCookiesAnvändning

Standard falskt. Ett booleskt värde som anger om du vill inaktivera användningen av cookies av SDK:et. Om det är sant lagrar eller läser inte SDK:t några data från cookies.
(Sedan v2.6.0) Om cookieCfg.enabled definieras har det företräde. Cookieanvändning kan återaktiveras efter initiering via core.getCookieMgr().setEnabled(true).
alias för cookieCfg.enabled
[Valfritt]
falskt
namnPrefix

Ett valfritt värde som används som namnpostfix för localStorage och sessionscookienamn.
sträng odefinierad
sessionCookiePostfix

Ett valfritt värde som används som efterstavelse för sessionscookiens namn. Om det är odefinierat används namePrefix som namnpostfix för sessionscookienamn.
sträng odefinierad
userCookiePostfix

Ett valfritt värde som används som namnpostfix för användarens cookienamn. Om det är odefinierat läggs inget postfix till på användarens cookienamn.
sträng odefinierad

Spårning av Ajax och Fetch

Ajax- och Fetch-automatisk insamling är grupperad i fem funktionsområden: på/av-växlar (disableAjaxTracking, disableFetchTracking, disableXhr), insamling av huvuden för begäran och svar (enableRequestHeaderTracking, enableResponseHeaderTracking, ignoreHeaders, customHeaders), URL-baserad filtrering (excludeRequestFromAutoTrackingPatterns), extra window.performance-sökningar (enableAjaxPerfTracking, ajaxPerfLookupDelay, maxAjaxPerfLookupAttempts, enableAjaxErrorStatusText) och volymkontroll per sida samt berikning per anrop (maxAjaxCallsPerView, addRequestContext).

Reglage för automatisk insamling

Använd dessa fält för att aktivera eller inaktivera automatisk insamling av Ajax- och Fetch-begäranden och för att välja transport (XHR, Fetch eller Beacon).

Konfigurationsfält Värdetyp Standardvärdet
inaktiveraAjaxSpårning

Om det är sant hämtas inte Ajax-anrop automatiskt. Standardvärdet är falskt.
booleskt falskt
inaktiveraHämtningsspårning

Standardinställningen för disableFetchTracking är false, vilket innebär att den är aktiverad. Men i versioner före 2.8.10 inaktiverades den som standard. När värdet trueär inställt på samlas inte Fetch-begäranden in automatiskt. Standardinställningen ändrades från true till false i version 2.8.0.
booleskt falskt
inaktiveraXhr

Använd inte XMLHttpRequest eller XDomainRequest (för Internet Explorer < version 9) som standard i stället för att försöka använda fetch() eller sendBeacon. Om ingen annan transport är tillgänglig använder den XMLHttpRequest
booleskt falskt
ärBeaconApiInaktiverad

Om det är falskt skickar SDK:n all telemetri med hjälp av Beacon-API:et
booleskt sann
onunloadDisableBeacon

Standard falskt. när fliken stängs skickar SDK:n all återstående telemetri med hjälp av Beacon-API:et
booleskt falskt
onunloadDisableFetch

Om hämtning av keepalive stöds ska det inte användas för att skicka händelser under avlastning, kan den ändå återgå till fetch() utan keepalive.
booleskt falskt

Rubrikspårning

Använd de här fälten om du vill inkludera AJAX- och Fetch-begärande- eller svarshuvuden i beroendetelemetri, ange extra rubriker på anpassade slutpunkter eller filtrera känsliga huvuden från loggen.

Konfigurationsfält Värdetyp Standardvärdet
aktiveraBegäranRubrikSpårning

Om sant, spåras AJAX- och Fetch-begärandehuvuden, annars är standardvärdet falskt. Om ignoreHeaders inte har konfigurerats loggas inte auktoriserings- och X-API-key-huvuden.
booleskt falskt
aktiveraSpårningAvSvarsheader

Om det är sant spåras SVARshuvuden för AJAX och Fetch-begäran. Standardvärdet är falskt. Om ignoreHeaders inte har konfigurerats loggas inte WWW-Authenticate-huvudet.
booleskt falskt
"ignoreHeaders"

AJAX & Hämta begärande- och svarshuvuden som ska ignoreras i loggdata. Om du vill åsidosätta eller ta bort standardvärdet lägger du till en matris med alla rubriker som ska undantas eller en tom matris i konfigurationen.
sträng[] ["Behörighet", "X-API-Nyckel", "WWW-Autentisering"]
customHeaders

Möjligheten för användaren att ange extra rubriker när du använder en anpassad slutpunkt. customHeaders läggs inte till när webbläsaren stängs av när beacon-sändare används. Och att lägga till anpassade rubriker stöds inte på IE9 eller tidigare.
[{header: string, value: string}] odefinierad

URL-filtrering

Använd det här fältet om du vill undanta specifika URL:er för begäranden från automatisk Ajax- och Fetch-spårning.

Konfigurationsfält Värdetyp Standardvärdet
uteslut begäran från automatiska spårningsmönster

Ange ett sätt att undanta en specifik väg från automatisk spårning för XMLHttpRequest- eller Fetch-begäran. Om det definieras inaktiveras automatisk spårning för en Ajax-/hämtningsbegäran om att begärande-URL:en matchar regex-mönstren. Standardvärdet är odefinierat.
string[] | RegExp[] odefinierad

Sökningar efter prestanda

Använd de här fälten för att inkludera extra window.performance tidsinställningar för Ajax-beroendetelemetri, justera uppslagsfördröjningen och antalet återförsök och inkludera svarsfeltext på misslyckade AJAX-begäranden.

Konfigurationsfält Värdetyp Standardvärdet
enableAjaxPerfTracking

Standard falskt. Flagga för att aktivera sökning och inkludering av ytterligare prestandatider för webbläsarfönster i de rapporterade Ajax-måtten (XHR och hämtning).
booleskt falskt
ajaxPerfLookupDelay

Standardinställningen är 25 ms. Hur lång tid det tar att vänta innan du försöker igen för att hitta tidsinställningar för windows.performance för en Ajax-begäran, tiden är i millisekunder och skickas direkt till setTimeout().
numerisk 25
maxAjaxPerfLookupAttempts

Standard är 3. Det maximala antalet gånger som krävs för att kontrollera tidsinställningar för window.performance (om tillgängligt). Alla webbläsare fyller inte i window.performance innan de rapporterar slutet av XHR-begäran. För hämtningsbegäranden läggs den till när den är klar.
numerisk 3
enableAjaxErrorStatusText (aktivera Ajax-felstatusmeddelandetext)

Standard falskt. Om sant, inkludera data om svarsfel och text boolesk inom beroendehändelsen vid misslyckade AJAX-begäranden.
booleskt falskt

Volymkontroll och berikning

Använd maxAjaxCallsPerView för att begränsa Ajax-samlingen per sida och addRequestContext för att utöka beroendetelemetri med ett återanrop i början av varje API-anrop.

Konfigurationsfält Värdetyp Standardvärdet
maxAjaxCallsPerView

Standard 500 – styr hur många Ajax-anrop som övervakas per sidvy. Ange till -1 för att övervaka alla (obegränsade) Ajax-anrop på sidan.
numerisk 500
LäggTillRequestContext

Ge ett sätt att utöka beroendeloggar med kontext i början av ett API-anrop. Standardvärdet är odefinierat. Du måste kontrollera om xhr finns när du konfigurerar kontext relaterad till xhr. Du måste kontrollera om fetch request och fetch response finns om du konfigurerar fetch relaterad kontext. Annars kanske du inte får de data du behöver.
(requestContext: IRequestionContext) => {[key: string]: any} odefinierad

Distribuerad spårning och korrelation

Använd distributedTracingMode för att välja W3C, AI eller AI_AND_W3C rubrikformat. Använd disableCorrelationHeaders för att inaktivera korrelation helt. Använd enableCorsCorrelation för att mata in korrelationsrubriker på begäranden mellan ursprung. Använd appId för att ange en fast korrelationsidentitet. Använd correlationHeaderDomains, correlationHeaderExcludedDomainsoch correlationHeaderExcludePatterns för att tillåta eller blockera specifika måldomäner eller URL-mönster.

Konfigurationsfält Värdetyp Standardvärdet
app-ID

AppId används för korrelationen mellan AJAX-beroenden som sker på klientsidan med begäranden på serversidan. När Beacon API är aktiverat kan det inte användas automatiskt, men kan anges manuellt i konfigurationen. Standardvärdet är null
sträng NULL
korrelationsrubrikdomäner

Aktivera korrelationshuvuden för specifika domäner
sträng[] odefinierad
korrelationshuvudexkluderade domäner

Inaktivera korrelationshuvuden för specifika domäner
sträng[] odefinierad
korrelationshuvuduteslutningsmönster

Stäng av korrelationshuvuden med reguljära uttryck
regex[] odefinierad
inaktiveraKorrelationshuvuden

Om det är falskt lägger SDK:t till två huvuden ("Request-Id" och "Request-Context") till alla beroendebegäranden för att korrelera dem med motsvarande begäranden på serversidan. Standardvärdet är falskt.
booleskt falskt
distribuerad spårningsläge

Anger det distribuerade spårningsläget. Om AI_AND_W3C läge eller W3C-läge har angetts genereras W3C-kontextrubriker (traceparent/tracestate) och inkluderas i alla utgående begäranden. AI_AND_W3C tillhandahålls för backkompatibilitet med alla äldre Application Insights-instrumenterade tjänster.
numerisk eller DistributedTracingModes DistributedTracing Modes.AI_AND_W3C
aktiveraCorsCorrelation

Om det är sant lägger SDK:t till två huvuden ("Request-Id" och "Request-Context") till alla CORS-begäranden för att korrelera utgående AJAX-beroenden med motsvarande begäranden på serversidan. Standardvärdet är falskt
booleskt falskt

Sidvisningar och vägspårning

Använd enableAutoRouteTracking för att spåra SPA-vägändringar. Använd autoTrackPageVisitTime för att registrera tid på sidan för föregående vy. Använd isBrowserLinkTrackingEnabled för att spåra Webbläsarlänk-begäranden. Använd overridePageViewDuration för att beräkna sidvisningsvaraktighet från trackPageView anrop i stället för API:et för navigeringstid.

Konfigurationsfält Värdetyp Standardvärdet
autoTrackPageVisitTime (automatisk spårning av sidbesökstid)

Om det är sant, spåras den tidigare instrumenterade sidans visningstid i en sidvy och skickas som telemetri, och en ny timer startas för den aktuella sidan. Det skickas som ett anpassat mått med namnet PageVisitTime i milliseconds och beräknas via funktionen Date now() (om tillgängligt) och återgår till (nytt datum()).getTime() om now() inte är tillgänglig (IE8 eller mindre). Standardvärdet är falskt.
booleskt falskt
aktivera automatisk ruttningsspårning

Spåra routningsändringar automatiskt i ensidesprogram (SPA). Om det är sant skickar varje vägändring en ny sidvisning till Application Insights. Ändringar av hash-väg (example.com/foo#bar) registreras också som nya sidvyer.
Obs! Om du aktiverar det här fältet aktiverar history du inte objektet för React-routerkonfigurationen eftersom du får flera sidvisningshändelser.
booleskt falskt
ärWebbläsarLänkSpårningAktiverad

Standardvärdet är falskt. Om det är sant spårar SDK:et alla Browser Link-begäranden .
booleskt falskt
åsidosättSidvisningsVaraktighet

Om det är sant ändras standardbeteendet för trackPageView så att varaktighetsintervallet för vyns slut registreras när trackPageView anropas. Om *false* och ingen anpassad varaktighet anges för *trackPageView* beräknas sidvisningsprestandan med hjälp av Navigation Timing API. Standardvärdet är falskt.
booleskt falskt

Undantagsspårning

Använd disableExceptionTracking för att välja bort automatisk undantagssamling och enableUnhandledPromiseRejectionTracking inkludera ohanterade löftesavslag som JavaScript-fel.

Konfigurationsfält Värdetyp Standardvärdet
disableExceptionTracking (inaktivera undantagsspårning)

Om det är sant samlar SDK inte in undantag automatiskt. Standardvärdet är falskt.
booleskt falskt
aktiveraSpårningAvOhanteradePromiseAvslag

Om det är sant samlar SDK automatiskt in ohanterade löftesavslag som ett JavaScript-fel. När disableExceptionTracking är sant (spåra inte undantag) ignoreras konfigurationsvärdet och ohanterade löftesavslag rapporteras inte.
booleskt falskt

Sampling, batchbearbetning och lagring

Använd samplingPercentage för att ange den fasta samplingsfrekvensen maxBatchInterval och maxBatchSizeInBytes för att justera batchsändningsbeteendet enableSessionStorageBuffer och isStorageUseDisabled för att styra om SDK:t bevarar oentlig telemetri i session eller lokal lagring, eventsLimitInMem för att begränsa minnesintern buffert, isRetryDisabled inaktivera återförsök vid tillfälliga fel, disableFlushOnBeforeUnload hoppa över tömningen på sidan och disableTelemetry som en global avstängningsknapp.

Konfigurationsfält Värdetyp Standardvärdet
inaktiveraFlushVidFörAvslutandeLaddning

Standard falskt. Om värdet är true anropas inte metoden flush när händelsen onBeforeUnload utlöses.
booleskt falskt
avaktivera telemetri

Om det är sant samlar inte SDK:t in eller skickar telemetri. Standardvärdet är falskt.
booleskt falskt
aktiveraSessionslagringsBuffert

Förval: sant. Om sant lagras bufferten med all osänd telemetri i lagring för sessioner. Bufferten återställs vid sidinläsning.
booleskt sann
eventsLimitInMem (begränsning av händelser i minnet)

Antalet händelser som kan sparas i minnet innan SDK:et börjar släppa händelser när du inte använder Sessionslagring (standard).
Nummer 10 000
ärOmförsökInaktiverad

Standard falskt. Om det är falskt försöker du igen 206 (delvis lyckat), 408 (timeout), 429 (för många begäranden), 500 (internt serverfel), 503 (tjänsten är inte tillgänglig) och 0 (offline, endast om det identifieras).
booleskt falskt
Är lagringsanvändning inaktiverad

Om det är sant lagrar eller läser SDK inte några data från lokal lagring och sessionslagring. Standardvärdet är falskt.
booleskt falskt
maxBatchInterval (max maximal batchintervall)

Hur länge telemetri ska samlas i batchar innan den skickas (millisekunder).
numerisk 15000
maxBatchSizeInBytes

Maximal storlek på telemetrisats. Om en batch överskrider den här gränsen skickas den omedelbart och en ny batch startas.
numerisk 10 000
urvalsprocent

Procentandel av händelser som skickas. Standardvärdet är 100, vilket innebär att alla händelser skickas. Ange det om du vill behålla datataket för storskaliga program.
numerisk 100

Loggning och felsökning

Använd loggingLevelConsole och loggingLevelTelemetry för att dirigera interna SDK-fel till konsolen eller till telemetri. Använd enableDebug för att utlösa interna fel som undantag under utvecklingen. Använd diagnosticLogInterval för att justera den interna loggsökaren. Använd disableDataLossAnalysis för att hoppa över startbuffertkontroller. Använd disableIkeyDeprecationMessage för att ignorera utfasningsmeddelandet för instrumentationsnyckeln.

Konfigurationsfält Värdetyp Standardvärdet
diagnosticLogInterval

(internt) Avsökningsintervall (i ms) för intern loggningskö
numerisk 10 000
inaktiveraDataförlustanalys

Om det är falskt kontrolleras interna telemetrisändarbuffertar vid start för objekt som ännu inte har skickats.
booleskt sann
Avaktivera Ikey Föråldringsmeddelande

Inaktivera felmeddelande om utfasning av instrumentationsnyckel. Om sant skickas inte felmeddelanden.
booleskt sann
aktivera felsökning

Om det är sant genereras interna felsökningsdata som ett undantag i stället för att loggas, oavsett SDK-loggningsinställningar. Standardvärdet är falskt.
Obs! Om du aktiverar den här inställningen blir telemetrin borttagen när ett internt fel inträffar. Det kan vara användbart för att snabbt identifiera problem med din konfiguration eller användning av SDK. Om du inte vill förlora telemetri vid felsökning kan du överväga att använda loggingLevelConsole eller loggingLevelTelemetry i stället för enableDebug.
booleskt falskt
loggningsnivåkonsol

Loggar interna Application Insights-fel till konsolen.
0: av,
1: Endast kritiska fel,
2: Allt (fel och varningar)
numerisk 0
loggningsNivåTelemetri

Skickar interna Application Insights-fel som telemetridata.
0: av,
1: Endast kritiska fel,
2: Allt (fel och varningar)
numerisk 1

Prestandahanterare

Använd enablePerfMgr för att skicka ut lokal perfEvents från instrumenterade kodsökvägar. Använd createPerfMgr för att ange en anpassad IPerfManager fabrik. Använd perfEvtsSendAll för att styra om alla perfEvent triggas eller endast överordnade händelser.

Konfigurationsfält Värdetyp Standardvärdet
createPerfMgr

Återanropsfunktionen som anropas för att skapa en IPerfManager-instans när det behövs och enablePerfMgr är aktiverad gör att du kan åsidosätta standardskapandet av en PerfManager() utan att behöva göra setPerfMgr() det efter initieringen.
(kärna: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager odefinierad
enablePerfMgr

När det är aktiverat (sant) skapas lokala perfEvents för kod som har instrumenterats för att generera perfEvents (via doPerf()-hjälpen). Den kan användas för att identifiera prestandaproblem i SDK:t baserat på din användning eller eventuellt i din egen instrumenterade kod.
booleskt falskt
perfEvtsSendAll

När enablePerfMgr är aktiverat och IPerfManager utlöser en INotificationManager.perfEvent() avgör den här flaggan om en händelse utlöses (och skickas till alla lyssnare) för alla händelser (sant) eller endast för "överordnade" händelser (falskt <standardvärde>).
En överordnad IPerfEvent är en händelse där ingen annan IPerfEvent fortfarande körs när händelsen skapas och dess överordnade egenskap inte är null eller odefinierad. Sedan v2.5.7
booleskt falskt

Identifierare och sessionslivslängd

Använd accountId för att gruppera användare i konton, idLength för att ange den genererade slumpmässiga ID-längden, sessionExpirationMs för maximal sessionsvaraktighet och sessionRenewalMs för tidsgränsen för inaktivitet som avslutar en session.

Konfigurationsfält Värdetyp Standardvärdet
konto-ID

Ett valfritt konto-ID om appen grupperar användare till konton. Inga blanksteg, kommatecken, semikolon, likhetstecken eller lodräta staplar
sträng NULL
idLängd

Identifierar standardlängden som används för att generera nya slumpmässiga sessioner och användar-ID:n. Standardvärdet är 22, tidigare standardvärde var 5 (v2.5.8 eller mindre), om du behöver behålla den tidigare maximala längden och ange värdet till 5.
numerisk 22
sessionUtgångMs

En session loggas om den fortsätter under den här tiden i millisekunder. Standardvärdet är 24 timmar
numerisk 86400000
sessionFörnyelseMs

En session loggas om användaren är inaktiv under den här tiden i millisekunder. Standardvärdet är 30 minuter
numerisk 1800000

Andra inställningar

Använd featureOptIn för att välja förhandsgranskningsfunktioner, throttleMgrCfg för att konfigurera begränsning, disableInstrumentationKeyValidation kringgå inmatningsnyckelkontroller, convertUndefined ersätta ett standardvärde för odefinierade fält och sdkExtension för att prefixa taggen ai.internal.sdkVersion för underordnade SDK-tillägg.

Konfigurationsfält Värdetyp Standardvärdet
konvertera odefinierad

Ge användaren ett alternativ för att konvertera odefinierat fält till användardefinierat värde.
any odefinierad
InactivateInstrumenteringsnyckelvalidering

Om sant är, kringgås instrumenteringsnyckelns verifieringskontroll. Standardvärdet är "falsk".
booleskt falskt
featureOptIn

Ange information om att välja funktion.

Det här konfigurationsfältet är endast tillgängligt i version 3.0.3 och senare.
IFeatureOptIn odefinierad
sdkExtension

Anger SDK-tilläggets namn. Endast alfabetiska tecken tillåts. Tilläggsnamnet läggs till som ett prefix till taggen "ai.internal.sdkVersion" (till exempel "ext_javascript:2.0.0"). Standardvärdet är null.
sträng NULL
throttleMgrCfg

Ange konfiguration för begränsarehanteraren med hjälp av nyckel.

Det här konfigurationsfältet är endast tillgängligt i version 3.0.3 och senare.
{[key: number]: IThrottleMgrConfig} odefinierad

Distribuerad spårning

Moderna moln - och mikrotjänstarkitekturer har aktiverat enkla, oberoende distributionsbara tjänster som minskar kostnaderna samtidigt som tillgängligheten och dataflödet ökar. Det har dock gjort det svårare att resonera kring och felsöka övergripande system. Distribuerad spårning löser det här problemet genom att tillhandahålla en prestandaprofilerare som fungerar som anropsstackar för moln- och mikrotjänstarkitekturer.

Azure Monitor tillhandahåller två funktioner för användning av distribuerade spårningsdata: transaktionsdiagnostikvyn för en enskild transaktion/begäran och programkartvyn för att visa hur system interagerar.

Application Insights kan övervaka varje komponent separat och identifiera vilken komponent som är ansvarig för fel eller prestandaförsämring med hjälp av distribuerad telemetrikorrelation. Den här artikeln förklarar datamodellen, tekniker för kontextspridning, protokoll och implementering av korrelationstaktik på olika språk och plattformar som används av Application Insights.

Aktivera distribuerad spårning via Application Insights med autoinstrumentation eller SDK:er

Stöd för Azure Monitor OpenTelemetry-instrumentation och JavaScript SDK genererar distribuerade spårningsdata för vanliga ramverk och bibliotek.

När stödd instrumentation är konfigurerad samlas spårningsinformation automatiskt in för vanliga ramverk, bibliotek och tekniker.

Alla tekniker kan också spåras manuellt genom att skapa anpassade intervall.

Datamodell för telemetrikorrelation

Application Insights definierar en datamodell för distribuerad telemetrikorrelation. Om du vill associera telemetri med en logisk åtgärd har varje telemetriobjekt ett kontextfält med namnet operation_Id. Varje telemetriobjekt i den distribuerade spårningen delar den här identifieraren. Så även om du förlorar telemetri från ett enda lager kan du fortfarande associera telemetri som rapporterats av andra komponenter.

En distribuerad logisk åtgärd består vanligtvis av en uppsättning mindre åtgärder som är begäranden som bearbetas av en av komponenterna. Telemetri för begäran definierar dessa åtgärder. Varje telemetriobjekt för begäran har ett eget id objekt som identifierar det unikt och globalt. Och alla telemetriobjekt (till exempel spårningar och undantag) som är associerade med begäran bör ange operation_parentId till värdet av begäran id.

Beroendetelemetri representerar varje utgående åtgärd, till exempel ett HTTP-anrop till en annan komponent. Den definierar också sin egen id, som är globalt unik. Telemetri för begäran, initierad av detta beroendekall, utnyttjar detta id som sin operation_parentId.

Du kan skapa en vy över den distribuerade logiska åtgärden med hjälp av operation_Id, operation_parentId och request.id tillsammans med dependency.id. Dessa fält definierar också kausalitetsordningen för telemetrianrop.

I en mikrotjänstmiljö kan spårningar från komponenter gå till olika lagringsobjekt. Varje komponent kan ha en egen anslutningssträng i Application Insights. För att få telemetri för den logiska åtgärden frågar Application Insights data från varje lagringsobjekt.

När antalet lagringsobjekt är stort behöver du en ledtråd om var du ska titta härnäst. Application Insights-datamodellen definierar två fält för att lösa det här problemet: request.source och dependency.target. Det första fältet identifierar komponenten som initierade beroendebegäran. Det andra fältet identifierar vilken komponent som returnerade svaret från beroendeanropet.

För information om hur du frågar från flera olika instanser hänvisas till 'Fråga efter data mellan Log Analytics-arbetsytor, program och resurser i Azure Monitor'.

Example

Nu ska vi titta på ett exempel. Ett program med namnet Aktiekurser visar det aktuella marknadspriset för en aktie med hjälp av ett externt API som heter Stock. Programmet Aktiekurser har en sida med namnet Aktiesida som klientens webbläsare öppnar med hjälp av GET /Home/Stock. Programmet frågar lager-API:et med hjälp av HTTP-anropet GET /api/stock/value.

Du kan analysera den resulterande telemetrin genom att köra en fråga:

(requests | union dependencies | union pageViews)
| where operation_Id == "STYz"
| project timestamp, itemType, name, id, operation_ParentId, operation_Id

I resultatet delar alla telemetriobjekt roten operation_Id. När ett Ajax-anrop görs från sidan tilldelas ett nytt unikt ID (qJSXU) till beroendetelemetrin och ID:t för pageView används som operation_ParentId. Serverbegäran använder sedan Ajax-ID:t som operation_ParentId.

objekttyp name ID-nummer operation_ParentId operation_Id
sidvisning Lagersida STYz STYz
beroende GET /Hem/Lager qJSXU STYz STYz
request GET Hem/Lager KqKwlrSt9PA= qJSXU STYz
beroende GET /api/stock/value (hämta /api/lager/värde) bBrf2L7mm2g= KqKwlrSt9PA= STYz

När anropet GET /api/stock/value görs till en extern tjänst måste du känna till serverns identitet så att du kan ange fältet dependency.target på rätt sätt. När den externa tjänsten inte stöder övervakning target ställs den in på tjänstens värdnamn. Ett exempel är stock-prices-api.com. Men om tjänsten identifierar sig genom att returnera ett fördefinierat HTTP-huvud innehåller target den tjänstidentitet som gör att Application Insights kan skapa en distribuerad spårning genom att fråga telemetri från den tjänsten.

Korrelationshuvuden med W3C TraceContext

Application Insights övergår till W3C Trace-Context, som definierar:

  • traceparent: Bär det globalt unika åtgärds-ID:t och den unika identifieraren för anropet.
  • tracestate: Bär systemspecifik spårningskontext.

Instrumentation som stöds använder protokollet W3C Trace Context för distribuerad spårning.

HTTP-korrelationsprotokollet, även kallat Request-Id, är inaktuellt. Det här protokollet definierar två huvuden:

  • Request-Id: Bär det globalt unika ID:t för anropet.
  • Correlation-Context: Innehåller samlingen namn-värdepar för de distribuerade spårningsegenskaperna.

Application Insights använder även korrelationskontext för att fylla i fält som dependency.target och request.source när kontexten är tillgänglig.

Datamodellerna W3C Trace-Context och Application Insights mappar på följande sätt:

Programinsikter W3C TraceContext
Id av Request och Dependency parent-id
Operation_Id trace-id
Operation_ParentId överordnat ID för det här spannets överordnade spann. Det här fältet måste vara tomt om det är ett rotspan.

Mer information finns i Application Insights telemetridatamodell.

Aktivera stöd för distribuerad spårning i W3C

Den här funktionen är aktiverad som standard för JavaScript och rubrikerna inkluderas automatiskt när värdsidedomänen är samma som domänen som begäranden skickas till (till exempel är example.com värdsidan och Ajax-begäranden skickas till example.com). Om du vill ändra det distribuerade spårningsläget använder du konfigurationsfältetdistributedTracingMode. Standardvärdet, AI_AND_W3C, ger bakåtkompatibilitet med alla äldre tjänster som instrumenterats av Application Insights.

Om XMLHttpRequest- eller Fetch Ajax-begäranden går till en annan domänvärd, inklusive underdomäner, inkluderas inte korrelationsrubrikerna som standard. Om du vill aktivera den här funktionen anger du konfigurationsfältetenableCorsCorrelation till true. Om du anger enableCorsCorrelation till trueinnehåller alla XMLHttpRequest- och Fetch Ajax-begäranden korrelationsrubrikerna. Det innebär att om programmet på servern som anropas av begäran inte stöder huvudet traceparent, kan begäran misslyckas. Det här felet beror på om webbläsaren och versionen kan verifiera begäran baserat på vilka huvuden servern accepterar. Du kan använda konfigurationsfältetcorrelationHeaderExcludedDomains för att undanta serverns domän från korskomponentens korrelationshuvudinmatning. Du kan till exempel använda correlationHeaderExcludedDomains: ['*.auth0.com'] för att undanta korrelationshuvuden från begäranden som skickas till identitetsprovidern Auth0.

Viktigt!

Information om hur du ser alla konfigurationer som krävs för att aktivera korrelation finns i JavaScript-korrelationsdokumentationen.

Filtrera och förbearbeta telemetri

För JavaScript-webbprogram använder du telemetriinitierare för att filtrera, ändra eller berika telemetri innan den skickas.

  • Returnera false från en initierare för att släppa ett telemetriobjekt innan det skickas.
  • Lägg till eller ändra fält på telemetriobjektet för att berika telemetri med värden som är användbara för filtrering och analys.
  • Använd SDK-samplingskonfigurationen för att minska telemetrivolymen när du behöver statistisk sampling i stället för explicit filtrering.

Varning

Filtrering av telemetri kan förvränga portalstatistiken och göra det svårare att följa relaterade objekt. Välj sampling när du behöver minska volymen utan att uttryckligen exkludera specifik telemetri.

JavaScript-webbapplikationer

Om du vill filtrera telemetri från JavaScript-webbprogram använder du ITelemetryInitializer.

  1. Skapa en telemetriinitieringsåteranropsfunktion. Återanropsfunktionen tar ITelemetryItem som en parameter, vilket är den händelse som bearbetas. Om motringningen returnerar falsefiltreras telemetriobjektet bort.

    var filteringFunction = (envelope) => {
      if (envelope.data.someField === 'tobefilteredout') {
        return false;
      }
      return true;
    };
    
  2. Lägg till din telemetriinitierares återanrop:

    appInsights.addTelemetryInitializer(filteringFunction);
    

JavaScript-telemetriinitierare

Telemetriinitierare körs innan ett JavaScript-telemetriobjekt skickas. Använd dem för att lägga till, ändra eller släppa webbläsartelemetri. Att returnera false från en initialiserare gör att objektet förbises.

Använd telemetriinitierare för riktad berikning eller filtrering. Använd sampling när du behöver minska volymen utan att uttryckligen exkludera specifik telemetri.

JavaScript-telemetriinitierare

Infoga en JavaScript-telemetriinitierare om det behövs. Mer information om telemetriinitieringarna för Application Insights JavaScript SDK finns i Telemetriinitierare.

Infoga en telemetriinitierare genom att lägga till återanropsfunktionen onInit i JavaScript-SDK-inläsningsskriptkonfigurationen (Web) :

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

En sammanfattning av de icke-anpassade egenskaper som är tillgängliga för telemetriobjektet finns i Application Insights Exportera datamodell.

Du kan lägga till så många initierare som du vill. De anropas i den ordning du lägger till dem.

Lägga till ett molnrollnamn och en molnrollinstans

Använd en telemetriinitierare för att ange taggarna ai.cloud.role och ai.cloud.roleInstance . De här taggarna definierar hur din komponent visas i programkartan i Azure Monitor.

appInsights.queue.push(() => {
appInsights.addTelemetryInitializer((envelope) => {
  envelope.tags["ai.cloud.role"] = "your role name";
  envelope.tags["ai.cloud.roleInstance"] = "your role instance";
});
});

Från och med version 2.6.0 tillhandahåller Azure Application Insights JavaScript SDK instansbaserad cookiehantering som du kan inaktivera och återaktivera efter initieringen.

Om du inaktiverar cookies under initieringen med hjälp disableCookiesUsage av konfigurationerna eller cookieCfg.enabled kan du återaktivera dem med hjälp setEnabled av funktionen för ICookieMgr-objektet.

Den instansbaserade cookiehanteringen ersätter de tidigare globala CoreUtils-funktionerna disableCookies()i , setCookie(), getCookie()och deleteCookie().

Sluta använda de globala funktionerna för att dra nytta av de trädskakande förbättringar som introducerades i version 2.6.0.

ICookieMgrConfig är en cookiekonfiguration för instansbaserad cookiehantering som lagts till i version 2.6.0. Med de alternativ som anges kan du aktivera eller inaktivera användningen av cookies av SDK:t. Du kan också ange anpassade cookiedomäner och sökvägar och anpassa funktionerna för att hämta, ställa in och ta bort cookies.

I följande tabell definieras ICookieMgrConfig alternativen.

Namn Typ Standardvärde beskrivning
aktiverad booleskt sann Den aktuella instansen av SDK använder det här booleska värdet för att ange om användningen av cookies är aktiverad. Om det är falskt lagrar eller läser inte instansen av SDK:t som initieras av den här konfigurationen några data från cookies.
domän sträng NULL Anpassad cookiedomän. Det är användbart om du vill dela Application Insights-cookies mellan underdomäner. Om det inte anges använder du värdet från rotvärdet cookieDomain .
väg sträng / Anger sökvägen som ska användas för cookien. Om det inte anges använder du valfritt värde från rotvärdet cookiePath .
ignorera cookies sträng[] odefinierad Ange de cookienamn som ska ignoreras. Det gör att ett matchande cookienamn aldrig läs- eller skrivs. De kan fortfarande rensas eller tas bort uttryckligen. Du behöver inte upprepa namnet i konfigurationen blockedCookies . (sedan v2.8.8)
blockerade cookies sträng[] odefinierad Ange de cookienamn som aldrig ska skrivas. Det förhindrar att du skapar eller uppdaterar något cookienamn, men de kan fortfarande läsas om de inte också ingår i ignoreCookies. De kan fortfarande uttryckligen rensas eller tas bort. Om den inte anges är den standard för samma lista i ignoreCookies. (Sedan v2.8.8)
getCookie (name: string) => string NULL Funktion för att hämta det namngivna cookievärdet. Om det inte anges använder SDK:t den interna cookieparsingen och cachelagringen.
sättCookie (name: string, value: string) => void NULL Funktion för att ange den namngivna cookien med det angivna värdet. Anropas endast när du lägger till eller uppdaterar en cookie.
delCookie (name: string, value: string) => void NULL Funktion för att ta bort den namngivna cookien med det angivna värdet. Den här funktionen separeras från setCookie för att undvika behovet av att parsa värdet för att avgöra om cookien läggs till eller tas bort. Om det inte anges använder SDK:t den interna cookieparsingen och cachelagringen.

Källkarta

Stöd för källmappning hjälper dig att felsöka minifierad JavaScript-kod genom att avminifiera den minifierade anropsstacken i telemetri för undantag.

  • Kompatibel med alla aktuella integreringar på panelen Undantagsinformation
  • Stöder alla aktuella och framtida JavaScript-SDK:er, inklusive Node.js, utan att behöva uppgradera SDK

Application Insights stöder uppladdning av källkartor till din Azure Storage blobcontainer. Använd källkartor för att avminifiera anropsstackar som finns på sidan Information om transaktioner från början till slut. Du kan också använda källkartor för att minimera alla undantag som skickas av JavaScript SDK eller Node.js SDK.

Skärmbild som visar hur du väljer alternativet för att avminifiera en anropsstack genom att länka med ett lagringskonto.

Skapa ett nytt lagringskonto och en blobcontainer

Om du redan har ett befintligt lagringskonto eller en blobcontainer kan du hoppa över det här steget.

  1. Skapa ett nytt lagringskonto.

  2. Skapa en blobcontainer i ditt lagringskonto. Ange Offentlig åtkomstnivå till Privat för att säkerställa att källkartningarna inte är offentligt tillgängliga.

    Skärmbild som visar hur du ställer in åtkomstnivån för containern till Privat.

Skicka källkartor till din blobcontainer

Integrera pipelinen för kontinuerlig distribution med ditt lagringskonto genom att konfigurera den för att automatiskt ladda upp källkartor till den konfigurerade blobcontainern.

Du kan ladda upp källkartor till din Azure Blob Storage-container med samma mappstruktur som de kompilerades och distribuerades med. Ett vanligt användningsfall är att prefixa en distributionsmapp med dess version, till exempel 1.2.3/static/js/main.js. När du avminifierar via en Azure-blobcontainer med namnet sourcemapsförsöker pipelinen hämta en källkarta som finns på sourcemaps/1.2.3/static/js/main.js.map.

Om du använder Azure-pipelines för att kontinuerligt skapa och distribuera ditt program lägger du till en Azure-filkopieringsuppgift i pipelinen för att automatiskt ladda upp källkartor.

Skärmbild som visar hur du lägger till en Azure-filkopieringsaktivitet i pipelinen för att ladda upp källkartor till Azure Blob Storage.

Konfigurera Application Insights-resursen med ett källmappningslagringskonto

Du har två alternativ för att konfigurera application insights-resursen med ett lagringskonto för källkarta.

Fliken med ända-till-ända transaktionsdetaljer

På fliken Helomfattande transaktionsinformation väljer du Avminifiera. Konfigurera resursen om den är okonfigurerad.

  1. I Azure Portal visar du information om ett undantag som har minimerats.
  2. Välj Avminifiera.
  3. Om resursen inte har konfigurerats konfigurerar du den.
Egenskapsfliken

Så här konfigurerar eller ändrar du lagringskontot eller blobcontainern som är länkad till din Application Insights-resurs:

  1. Gå till fliken Egenskaper för Application Insights-resursen.

  2. Välj Ändra källkarta blob-container.

  3. Välj en annan blobcontainer som källmappningscontainer.

  4. Välj Använd.

    Skärmbild som visar hur du konfigurerar om den valda Azure-blobcontainern i fönstret Egenskaper.

Visa den oförminsterade anropsstacken

Om du vill visa den oförminsterade anropsstacken väljer du ett undantagstelemetriobjekt i Azure portalen, letar upp källkartor som matchar anropsstacken och drar och släpper källkartningarna till anropsstacken i Azure portalen. Källkartan måste ha samma namn som källfilen för en stackram, men med ett map tillägg.

Om det uppstår problem med stöd för källkartor för JavaScript-program kan du läsa Felsöka stöd för källkartor för JavaScript-program.

Animering som visar funktionen för avminifiering.

Trädskakningar

Trädskakning tar bort oanvänd kod från det slutliga JavaScript-paketet.

Om du vill dra nytta av trädskakning importerar du bara de nödvändiga komponenterna i SDK:n till koden. Genom att göra detta utesluter du oanvänd kod från det slutliga paketet, vilket minskar dess storlek och förbättrar prestandan.

Förbättringar och rekommendationer för trädskakning

I version 2.6.0 har SDK:t föråldrat och tagit bort den interna användningen av dessa statiska hjälpklasser för att förbättra stödet för trädskakningsalgoritmer. Med den här ändringen kan npm-paket på ett säkert sätt släppa oanvänd kod.

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

Funktionerna exporteras nu som toppnivårötter från modulerna, vilket gör det enklare att omstrukturera koden för bättre trädskakning.

De statiska klasserna är nu const-objekt som refererar till de nya exporterade funktionerna.

Eliminering av inaktuella funktioner och deras ersättningar

Det här avsnittet gäller endast om du använder de inaktuella funktionerna och vill optimera paketstorleken. Använd ersättningsfunktionerna för att minska storleken och stödja alla versioner av Internet Explorer.

Befintlig Ersättning
CoreUtils @microsoft/applicationinsights-core-js
CoreUtils._canUseCookies Inga. Använd inte den här funktionen eftersom den gör att alla CoreUtils-referenser inkluderas i den slutliga koden.
Omstrukturera din cookiehantering för att använda appInsights.getCookieMgr().setEnabled(true/false) för att ange värdet och appInsights.getCookieMgr().isEnabled() för att kontrollera värdet.
CoreUtils.isTypeof isTypeof
CoreUtils.isUndefined ärOdefinierad
(if translation is deemed necessary for understanding) CoreUtils.ärNollEllerOdefinierad ärNullEllerOdefinierad
CoreUtils.hasOwnProperty hasOwnProperty
CoreUtils.isFunction ärFunktion
CoreUtils.ärEttObjekt ärObjekt
CoreUtils.isDate isDate
CoreUtils.isArray isArray
CoreUtils.isError ärFel
CoreUtils.isString isString
CoreUtils.isNumber ärNummer
CoreUtils.isBoolean isBoolean
CoreUtils.toISOString toISOString eller getISOString
CoreUtils.arrForEach arrForEach
CoreUtils.arrIndexOf - Hitta indexet på ett element i en array arrIndexOf-funktion
CoreUtils.arrMap arrMap
CoreUtils.arrReduce arrReduce
CoreUtils.strTrim strTrim
CoreUtils.objCreate objCreateFn
CoreUtils.objKeys objKeys
CoreUtils.objDefineAccessors objDefineAccessors
CoreUtils.addEventHandler (en funktion för hantering av händelser) addEventHandler
CoreUtils.dateNow aktuellt datum
CoreUtils.isIE isIE
CoreUtils.disableCookies disableCookies
Om någon av funktionerna refereras kommer CoreUtils också att refereras för bakåtkompatibilitet.
Omstrukturera din cookiehantering för att använda appInsights.getCookieMgr().setEnabled(false)
CoreUtils.newGuid nyGuid
CoreUtils.perfNow perfNow
CoreUtils.newId nyttId
CoreUtils.randomValue slumpmässigt värde
CoreUtils.random32 random32
CoreUtils.mwcRandomSeed mwcRandomSeed
CoreUtils.mwcRandom32 mwcRandom32
CoreUtils.genereraW3C-ID generateW3CId
EventHelper @microsoft/applicationinsights-core-js
EventHelper.Attach bifoga händelse
EventHelper.AttachEvent bifoga händelse
EventHelper.Detach koppla bort händelse
EventHelper.DetachEvent koppla bort händelse
Util @microsoft/applicationinsights-common-js
Util.NotSpecified strEjSpecificerad
Util.skapaDomHändelse skapaDomHändelse
Util.inaktiveraLagring inaktiveraLagring (utlDisableStorage)
Util.isInternalApplicationInsightsEndpoint isInternaApplicationInsightsSlutpunkt
Util.canUseLocalStorage utlCanUseLocalStorage
Util.getStorage utlGetLocalStorage
Util.setStorage UtlSetLocalStorage
Util.removeStorage utlRemoveStorage
Util.canUseSessionStorage utlCanUseSessionStorage
Util.getSessionStorageKeys utlGetSessionStorageKeys
Util.getSessionStorage utlGetSessionStorage
Util.setSessionStorage utlSetSessionStorage
Util.removeSessionStorage utlRemoveSessionStorage
Util.disableCookies disableCookies
Om du refererar till någon av dem kommer CoreUtils att refereras för att upprätthålla bakåtkompatibilitet.
Omstrukturera din cookiehantering för att använda appInsights.getCookieMgr().setEnabled(false)
Util.kanAnvändaKakor canUseCookies
Om du refererar till någon av dem kommer CoreUtils att refereras för att upprätthålla bakåtkompatibilitet.
Omstrukturera din cookiehantering för att använda appInsights.getCookieMgr().isEnabled()
Util.disallowsSameSiteNone (förbjuder SameSite=None) uaDisallowsSameSiteNone
Util.setCookie coreSetCookie
Referenser gör att CoreUtils refereras till för bakåtkompatibilitet.
Omstrukturera din cookiehantering för att använda appInsights.getCookieMgr().set(name: string, value: string)
Util.stringTillBoolEllerStandardvärde strängTillBoolEllerStandardvärde
Util.getCookie coreGetCookie
Referenser gör att CoreUtils refereras till för bakåtkompatibilitet.
Omstrukturera din cookiehantering för att använda appInsights.getCookieMgr().get(name: string)
Util.deleteCookie coreDeleteCookie
Referenser gör att CoreUtils refereras till för bakåtkompatibilitet.
Omstrukturera din cookiehantering för att använda appInsights.getCookieMgr().del(name: string, path?: string)
Util.trim strTrim
Util.nyttId nyttId
Util.random32 ---
Ingen ersättning, omstrukturera koden för att använda core random32(true)
Util.generateW3CId generateW3CId
Util.isArray isArray
Util.isError ärFel
Util.isDate isDate
Util.toISOStringForIE8 toISOString
Util.getIEVersion getIEVersion
Util.msToTimeSpan msToTimeSpan
Util.isCrossOriginError ärCrossOriginFel
Util.dump dumpObj
Util.getExceptionName getExceptionName
Util.addEventHandler bifoga händelse
Util.IsBeaconApiSupported ärBeaconApiStödd
Util.getExtension getExtensionByName
UrlHelper @microsoft/applicationinsights-common-js
UrlHelper.parseUrl urlParseUrl
UrlHelper.getAbsolutUrl urlGetAbsoluteUrl
UrlHelper.getPathName urlGetPathName
UrlHelper.getCompeteUrl urlGetCompleteUrl
UrlHelper.parseHost urlParseHost
UrlHelper.parseFullHost urlParseFullHost
DateTimeUtils @microsoft/applicationinsights-common-js
DateTimeUtils.Now dateTimeUtilsNow
DateTimeUtils.GetDuration dateTimeUtilsDuration
ConnectionStringParser @microsoft/applicationinsights-common-js
ConnectionStringParser.parse analysera anslutningssträng

Tjänstmeddelanden

SDK:n innehåller tjänstmeddelanden som ger konkreta rekommendationer om åtgärder för att säkerställa att dina telemetridata flödar utan avbrott till Application Insights. Du ser meddelandena som ett undantagsmeddelande i Application Insights. SDK:n ser till att meddelanden är relevanta för dig baserat på dina SDK-inställningar och justerar verbositeten baserat på hur brådskande rekommendationen är. Behåll tjänstaviseringar på, men du kan välja bort via konfigurationen featureOptIn .

För närvarande skickas inga aktiva meddelanden.

JavaScript SDK hanterar tjänstmeddelanden och avsöker regelbundet en offentlig JSON-fil för att kontrollera och uppdatera dessa meddelanden. Inaktivera funktionsvalsläge för att inaktivera avsökningen som görs av JavaScript SDK.

Felsökning

Se den dedikerade felsökningsartikeln.

Nästa steg