Dela via


Mått i Application Insights

Application Insights stöder tre olika typer av mått: standard (föraggregering), loggbaserade och anpassade mått. Var och en ger ett unikt värde för övervakning av programmets hälsa, diagnostik och analys. Utvecklare som instrumenterar program kan bestämma vilken typ av mått som passar bäst för ett visst scenario. Beslut baseras på programmets storlek, förväntad mängd telemetri och affärskrav för måttprecision och aviseringar. Den här artikeln förklarar skillnaden mellan alla måtttyper som stöds.

Standardmått

Standardmått i Application Insights är fördefinierade mått som samlas in och övervakas automatiskt av tjänsten. Dessa mått omfattar ett brett utbud av prestanda- och användningsindikatorer, till exempel CPU-användning, minnesförbrukning, begärandefrekvens och svarstider. Standardmått ger en omfattande översikt över programmets hälsa och prestanda utan att det krävs någon ytterligare konfiguration. Standardmått föraggregeras under samlingen och lagras som en tidsserie på en specialiserad lagringsplats med endast nyckeldimensioner, vilket ger dem bättre prestanda vid frågetillfället. Detta gör standardmått till det bästa valet för nästan realtidsaviseringar för måttdimensioner och mer dynamiska instrumentpaneler.

Loggbaserade mått

Loggbaserade mått i Application Insights är ett frågetidskoncept som representeras som en tidsserie ovanpå programmets loggdata. De underliggande loggarna är inte föraggregerade vid insamlings- eller lagringstiden och behåller alla egenskaper för varje loggpost. Den här kvarhållningen gör det möjligt att använda loggegenskaper som dimensioner på loggbaserade mått vid frågetillfället för filtrering av måttdiagram och måttdelning, vilket ger loggbaserade mått ett överlägset analytiskt och diagnostiskt värde. Tekniker för minskning av telemetrivolymer som sampling och telemetrifiltrering, som ofta används för att övervaka program som genererar stora mängder telemetri, påverkar dock antalet insamlade loggposter och minskar därför noggrannheten för loggbaserade mått.

Anpassade mått (förhandsversion)

Med anpassade mått i Application Insights kan du definiera och spåra specifika mått som är unika för ditt program. Dessa mått kan skapas genom att instrumentera koden för att skicka anpassade telemetridata till Application Insights. Anpassade mått ger flexibiliteten att övervaka alla aspekter av ditt program som inte omfattas av standardmått, så att du kan få djupare insikter om programmets beteende och prestanda.

Mer information finns i Anpassade mått i Azure Monitor (förhandsversion).

Kommentar

Application Insights innehåller också en funktion som kallas Live Metrics-ström, vilket möjliggör övervakning i nära realtid av dina webbprogram och inte lagrar några telemetridata.

Jämförelse av mått

Funktion Standardmått Loggbaserade mått Anpassade mått
Datakälla Föraggregerade tidsseriedata som samlats in under körning. Härleds från loggdata med kusto-frågor. Användardefinierade mått som samlas in via Application Insights SDK eller API.
Granularitet Fasta intervall (1 minut). Beror på själva loggdatans kornighet. Flexibel kornighet baserat på användardefinierade mått.
Noggrannhet Hög, påverkas inte av loggsampling. Kan påverkas av sampling och filtrering. Hög noggrannhet, särskilt när du använder föraggregerade metoder som GetMetric.
Kostnad Ingår i prissättningen för Application Insights. Baserat på loggdatainmatning och frågekostnader. Se Prismodell och kvarhållning.
Konfiguration Automatiskt tillgänglig med minimal konfiguration. Kräv konfiguration av loggfrågor för att extrahera önskade mått från loggdata. Kräver anpassad implementering och konfiguration i kod.
Frågeprestanda Snabb på grund av föraggregering. Långsammare eftersom det handlar om att köra frågor mot loggdata. Beror på datavolym och frågekomplexitet.
Storage Lagras som tidsseriedata i Azure Monitor-måttlagret. Lagras som loggar på Log Analytics-arbetsytan. Lagras i både Log Analytics och Azure Monitor-måttarkivet.
Aviseringar Stöder realtidsaviseringar. Möjliggör komplexa aviseringsscenarier baserat på detaljerade loggdata. Flexibel avisering baserat på användardefinierade mått.
Tjänstgräns Omfattas av Application Insights-gränser. Omfattas av begränsningar för Log Analytics-arbetsytor. Begränsas av kvoten för kostnadsfria mått och kostnaden för ytterligare dimensioner.
Användningsfall Realtidsövervakning, prestandainstrumentpaneler och snabba insikter. Detaljerad diagnostik, felsökning och djupgående analys. Skräddarsydda prestandaindikatorer och affärsspecifika mått.
Exempel CPU-användning, minnesanvändning, varaktighet för begäran. Antal begäranden, undantagsspårningar, beroendeanrop. Anpassade programspecifika mått som användarengagemang, funktionsanvändning.

Föraggregering av mått

OpenTelemetry SDK:er och nyare Application Insights SDK:er (klassiskt API) föraggregerar mått under samlingen för att minska mängden data som skickas från SDK:n till telemetrikanalslutpunkten. Den här processen gäller standardmått som skickas som standard, så noggrannheten påverkas inte av sampling eller filtrering. Det gäller även anpassade mått som skickas med hjälp av OpenTelemetry API eller GetMetric och TrackValue, vilket resulterar i mindre datainmatning och lägre kostnad. Om din version av Application Insights SDK stöder GetMetric och TrackValue är det den bästa metoden för att skicka anpassade mått.

För SDK:er som inte implementerar föraggregering (dvs. äldre versioner av Application Insights SDK:er eller för webbläsarinstrumentation) fyller Application Insights-serverdelen fortfarande de nya måtten genom att aggregera de händelser som tas emot av Application Insights telemetrikanalslutpunkt. För anpassade mått kan du använda metoden trackMetric . Även om du inte drar nytta av den minskade mängden data som överförs via kabeln kan du fortfarande använda de föraggregerade måtten och få bättre prestanda och stöd för den nästan realtidsdimensionella aviseringen med SDK:er som inte föraggregerar mått under samlingen.

Telemetrikanalens slutpunkt föraggregerar händelser före inmatningssampling. Därför påverkar inmatningssampling aldrig noggrannheten för föraggregerade mått, oavsett vilken SDK-version du använder med ditt program.

Följande tabeller visar en lista över föraggregeringar.

Föraggregering av mått med Azure Monitor OpenTelemetry Distro

Aktuell produktions-SDK Föraggregering av standardmått Föraggregering av anpassade mått
ASP.NET Core SDK SDK via OpenTelemetry API
.NET (via exportören) SDK SDK via OpenTelemetry API
Java (3.x) SDK SDK via OpenTelemetry API
Java-inbyggt SDK SDK via OpenTelemetry API
Node.js SDK SDK via OpenTelemetry API
Python SDK SDK via OpenTelemetry API

Föraggregering av mått med Application Insights SDK (klassiskt API)

Aktuell produktions-SDK Föraggregering av standardmått Föraggregering av anpassade mått
.NET Core och .NET Framework SDK (V2.13.1+) SDK (V2.7.2+) via GetMetric
Telemetrikanalslutpunkt via TrackMetric
Java (2.x) Slutpunkt för telemetrikanal Telemetrikanalslutpunkt via TrackMetric
JavaScript (webbläsare) Slutpunkt för telemetrikanal Telemetrikanalslutpunkt via TrackMetric
Node.js Slutpunkt för telemetrikanal Telemetrikanalslutpunkt via TrackMetric
Python Slutpunkt för telemetrikanal SDK via OpenCensus.stats (pensionerad)
Telemetrikanalslutpunkt via TrackMetric

Varning

Föraggregering av mått med autoinstrumentation

Med automatisk instrumentering läggs SDK:t automatiskt till i programkoden och kan inte anpassas. För anpassade mått krävs manuell instrumentering.

Aktuell produktions-SDK Föraggregering av standardmått Föraggregering av anpassade mått
ASP.NET Core SDK 1 Stöds inte
ASP.NET SDK 2 Stöds inte
Java SDK Stöds 3
Node.js SDK Stöds inte
Python SDK Stöds inte

Fotnoter

Anpassade måttdimensioner och föraggregering

Alla mått som du skickar med hjälp av API-anropen OpenTelemetry, trackMetric eller GetMetric och TrackValue lagras automatiskt i både måttarkivet och loggarna. Dessa mått finns i tabellen customMetrics i Application Insights och i Metrics Explorer under namnområdet För anpassat mått med namnet azure.applicationinsights. Även om den loggbaserade versionen av ditt anpassade mått alltid behåller alla dimensioner lagras den föraggregerade versionen av måttet som standard utan dimensioner. Att behålla dimensioner för anpassade mått är en förhandsversionsfunktion som kan aktiveras från fliken Användning och uppskattad kostnad genom att välja Med dimensioner under Skicka anpassade mått till Azure Metric Store.

Skärmbild som visar användning och uppskattade kostnader.

Kvoter

Föraggregerade mått lagras som tidsserier i Azure Monitor. Azure Monitor-kvoter för anpassade mått gäller.

Kommentar

Att gå över kvoten kan få oavsiktliga konsekvenser. Azure Monitor kan bli otillförlitligt i din prenumeration eller region. Information om hur du undviker att överskrida kvoten finns i Designbegränsningar och överväganden.

Varför är insamling av anpassade måttdimensioner inaktiverad som standard?

Samlingen med anpassade måttdimensioner är inaktiverad som standard eftersom lagring av anpassade mått med dimensioner i framtiden debiteras separat från Application Insights. Lagringen av de icke-dimensionella anpassade måtten är fortfarande kostnadsfri (upp till en kvot). Du kan lära dig mer om kommande ändringar av prismodellen på vår officiella prissida.

Skapa diagram och utforska mått

Använd Azure Monitor Metrics Explorer för att rita diagram från föraggregerade, loggbaserade och anpassade mått och för att skapa instrumentpaneler med diagram. När du har valt den Application Insights-resurs som du vill använda använder du namnområdesväljaren för att växla mellan mått.

Skärmbild som visar måttnamnområdet.

Prismodeller för Application Insights-mått

Inmatning av mått i Application Insights, oavsett om de är loggbaserade eller föraggregerade, genererar kostnader baserat på storleken på inmatade data. Mer information finns i Prissättning i Azure Log Analytics. Dina anpassade mått, inklusive alla dess dimensioner, lagras alltid i Application Insights-loggarkivet. Dessutom vidarebefordras en föraggregerad version av dina anpassade mått utan dimensioner till måttarkivet som standard.

Om du väljer alternativet Aktivera aviseringar för anpassade måttdimensioner för att lagra alla dimensioner av de föraggregerade måtten i måttarkivet kan extra kostnader genereras baserat på anpassade måttpriser.

Tillgängliga mått

I följande avsnitt visas mått med sammansättningar och dimensioner som stöds. Informationen om loggbaserade mått innehåller de underliggande Kusto-frågeinstruktionerna.

Tillgänglighetsmått

Med mått i kategorin Tillgänglighet kan du se hälsotillståndet för ditt webbprogram enligt vad som observerats från platser runt om i världen. Konfigurera tillgänglighetstesterna så att de börjar använda mått från den här kategorin.

Tillgänglighet (availabilityResults/availabilityPercentage)

Måttet Tillgänglighet visar procentandelen av webbtestkörningarna som inte identifierade några problem. Det lägsta möjliga värdet är 0, vilket anger att alla webbtestkörningar har misslyckats. Värdet 100 innebär att alla webbtestkörningar klarade valideringskriterierna.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Procent Gmsn Run location, Test name

Varaktighet för tillgänglighetstest (availabilityResults/duration)

Måttet för varaktighet för tillgänglighetstest visar hur lång tid det tog för webbtestet att köras. För webbtester i flera steg återspeglar måttet den totala körningstiden för alla steg.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Run location, , Test nameTest result

Tillgänglighetstester (availabilityResults/count)

Måttet Tillgänglighetstester visar antalet webbtester som körs av Azure Monitor.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Run location, , Test nameTest result

Webbläsarmått

Webbläsarmått samlas in av Application Insights JavaScript SDK från verkliga slutanvändarens webbläsare. De ger bra insikter om användarnas upplevelse av din webbapp. Webbläsarmått samplas vanligtvis inte, vilket innebär att de ger högre precision för användningssiffrorna jämfört med mått på serversidan som kan skeva genom sampling.

Kommentar

För att samla in webbläsarmått måste ditt program instrumenteras med Application Insights JavaScript SDK.

Inläsningstid för webbläsarsidan (browserTimings/totalDuration)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Ingen

Tid för klientbearbetning (browserTiming/processingDuration)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Ingen

Tid för nätverksanslutning för sidinläsning (browserTimings/networkDuration)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Ingen

Ta emot svarstid (browserTimings/receiveDuration)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Ingen

Skicka begärandetid (browserTimings/sendDuration)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Ingen

Felmått

Måtten i Fel visar problem med bearbetning av begäranden, beroendeanrop och undantag som genereras.

Webbläsarfel (undantag/webbläsare)

Det här måttet visar antalet undantag som genereras från programkoden som körs i webbläsaren. Endast undantag som spåras med ett trackException() Application Insights API-anrop ingår i måttet.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role name

Beroendeanropsfel (beroenden/misslyckade)

Antalet misslyckade beroendeanrop.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role instance, Cloud role name, Dependency performance, Dependency type, Is traffic synthetic, , , Result codeTarget of dependency call

Undantag (undantag/antal)

Varje gång du loggar ett undantag till Application Insights anropas metoden trackException() för SDK:n. Måttet Undantag visar antalet loggade undantag.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role instance, , Cloud role nameDevice type

Misslyckade begäranden (begäranden/misslyckade)

Antalet spårade serverbegäranden som har markerats som misslyckade. Som standard markerar Application Insights SDK automatiskt varje serverbegäran som returnerade HTTP-svarskoden 5xx eller 4xx som en misslyckad begäran. Du kan anpassa den här logiken genom att ändra lyckade egenskaper för telemetriobjekt för begäran i en anpassad telemetriinitierare.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role instance, Cloud role name, Is synthetic traffic, , , Request performanceResult code

Server-undantag (undantag/server)

Det här måttet visar antalet serverfel.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role instance, Cloud role name

Prestandaräknare

Använd mått i kategorin Prestandaräknare för att komma åt systemprestandaräknare som samlas in av Application Insights.

Tillgängligt minne (performanceCounters/availableMemory)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Megabyte/Gigabyte (databeroende) Genomsnittlig, Max, Min Cloud role instance

Undantagsfrekvens (performanceCounters/exceptionRate)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Genomsnittlig, Max, Min Cloud role instance

Körningstid för HTTP-begäran (performanceCounters/requestExecutionTime)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Cloud role instance

HTTP-begärandefrekvens (performanceCounters/requestsPerSecond)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Förfrågningar per sekund Genomsnittlig, Max, Min Cloud role instance

HTTP-begäranden i programkön (performanceCounters/requestsInQueue)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Genomsnittlig, Max, Min Cloud role instance

Process-CPU (performanceCounters/processCpuPercentage)

Måttet visar hur mycket av den totala processorkapaciteten som förbrukas av den process som är värd för din övervakade app.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Procent Genomsnittlig, Max, Min Cloud role instance

Kommentar

Måttintervallet är mellan 0 och 100 * n, där n är antalet tillgängliga CPU-kärnor. Måttvärdet på 200 % kan till exempel representera full användning av två CPU-kärnor eller en halv användning av 4 CPU-kärnor och så vidare. Process-CPU Normalized är ett alternativt mått som samlas in av många SDK:er som representerar samma värde men delar det med antalet tillgängliga CPU-kärnor. Därför är intervallet för måttet Process CPU Normalized 0 till 100.

Process-I/O-hastighet (performanceCounters/processIOBytesPerSecond)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Byte per sekund Genomsnitt, Min, Max Cloud role instance

Bearbeta privata byte (performanceCounters/processPrivateBytes)

Mängden ledigt minne som den övervakade processen allokerade för sina data.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Byte Genomsnitt, Min, Max Cloud role instance

Processortid (performanceCounters/processorCpuPercentage)

CPU-förbrukning av alla processer som körs på den övervakade serverinstansen.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Procent Genomsnitt, Min, Max Cloud role instance

Kommentar

Måttet för processortid är inte tillgängligt för de program som finns i Azure App Services. Använd måttet Bearbeta CPU för att spåra CPU-användningen av webbprogram som finns i App Services.

Servermått

Beroendeanrop (beroenden/antal)

Det här måttet är i förhållande till antalet beroendeanrop.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role instance, Cloud role name, Dependency performance, Dependency type, Is traffic synthetic, , Result code, , Successful callTarget of a dependency call

Beroendevaraktighet (beroenden/varaktighet)

Det här måttet refererar till varaktigheten för beroendeanrop.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Cloud role instance, Cloud role name, Dependency performance, Dependency type, Is traffic synthetic, , Result code, , Successful callTarget of a dependency call

Frekvens för serverbegäran (begäranden/hastighet)

Det här måttet visar antalet inkommande serverbegäranden som togs emot av webbappen.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal per sekund Gmsn Cloud role instance, Cloud role name, Is traffic synthetic, , , Request performance Result codeSuccessful request

Serverbegäranden (begäranden/antal)

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role instance, Cloud role name, Is traffic synthetic, , , Request performance Result codeSuccessful request

Serversvarstid (begäranden/varaktighet)

Det här måttet återspeglar den tid det tog för servrarna att bearbeta inkommande begäranden.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Cloud role instance, Cloud role name, Is traffic synthetic, , , Request performance Result codeSuccessful request

Användningsstatistik

Inläsningstid för sidvisning (pageViews/varaktighet)

Det här måttet refererar till hur lång tid det tog för PageView-händelser att läsas in.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Millisekunder Genomsnittlig, Max, Min Cloud role name, Is traffic synthetic

Sidvisningar (pageViews/count)

Antalet PageView-händelser som loggats med Api:et TrackPageView() Application Insights.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role name, Is traffic synthetic

Spårningar (spårningar/antal)

Antalet spårningsinstruktioner som loggats med Api-anropet TrackTrace() Application Insights.

Måttenhet Sammansättningar som stöds Dimensioner som stöds
Antal Antal Cloud role instance, Cloud role name, , Is traffic syntheticSeverity level

Anpassade mått

Gäller inte för standardmått.

Få åtkomst till loggbaserade mått direkt med Application Insights REST API

Application Insights REST API möjliggör programmatisk hämtning av loggbaserade mått. Den har också en valfri parameter ai.include-query-payload som när den läggs till i en frågesträng uppmanar API:et att returnera inte bara tidsseriedata utan även den Kusto-frågespråk-instruktion (KQL) som används för att hämta dem. Den här parametern kan vara särskilt fördelaktig för användare som vill förstå anslutningen mellan råhändelser i Log Analytics och det resulterande loggbaserade måttet.

Om du vill komma åt dina data direkt skickar du parametern ai.include-query-payload till Application Insights-API:et i en fråga med hjälp av KQL.

Kommentar

För att hämta den underliggande loggfrågan DEMO_APP och DEMO_KEYbehöver inte ersättas. Om du bara vill hämta KQL-instruktionen och inte tidsseriedata för ditt eget program kan du kopiera och klistra in den direkt i webbläsarens sökfält.

api.applicationinsights.io/v1/apps/DEMO_APP/metrics/users/authenticated?api_key=DEMO_KEY&prefer=ai.include-query-payload

Följande är ett exempel på en returnerad KQL-instruktion för måttet "Autentiserade användare". (I det här exemplet "users/authenticated" är mått-ID:t.)

output
{
    "value": {
        "start": "2024-06-21T09:14:25.450Z",
        "end": "2024-06-21T21:14:25.450Z",
        "users/authenticated": {
            "unique": 0
        }
    },
    "@ai.query": "union (traces | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (requests | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (pageViews | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (dependencies | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (customEvents | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (availabilityResults | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (exceptions | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (customMetrics | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (browserTimings | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)) | where notempty(user_AuthenticatedId) | summarize ['users/authenticated_unique'] = dcount(user_AuthenticatedId)"
}

Nästa steg