Identifiera loggbaserade mått
Med Application Insights-loggbaserade mått kan du analysera hälsotillståndet för dina övervakade appar, skapa kraftfulla instrumentpaneler och konfigurera aviseringar. Det finns två typer av mått:
- Loggbaserade mått bakom scenen översätts till Kusto-frågor från lagrade händelser.
- Standardmått lagras som föraggregerade tidsserier .
Eftersom standardmått föraggregeras under samlingen har de bättre prestanda vid frågetillfället. Standardmått är ett bättre val för instrumentpaneler och i realtidsaviseringar. Loggbaserade mått har fler dimensioner, vilket gör dem till det överlägsna alternativet för dataanalys och ad hoc-diagnostik. Använd namnområdesväljaren för att växla mellan loggbaserade och standardmått i Metrics Explorer.
Loggbaserade mått
Utvecklare kan använda SDK för att skicka händelser manuellt (genom att skriva kod som uttryckligen anropar SDK) eller så kan de förlita sig på automatisk insamling av händelser från automatisk instrumentering. I båda fallen lagrar Application Insights-serverdelen alla insamlade händelser som loggar, och Application Insights-bladen i Azure Portal fungera som ett analys- och diagnostikverktyg för att visualisera händelsebaserade data från loggar.
Att använda loggar för att behålla en fullständig uppsättning händelser kan ge bra analys- och diagnostikvärde. Du kan till exempel få ett exakt antal begäranden till en viss URL med antalet distinkta användare som gjorde dessa anrop. Eller så kan du få detaljerade diagnostikspårningar, inklusive undantag och beroendeanrop för alla användarsessioner. Att ha den här typen av information kan avsevärt förbättra insynen i programmets hälsa och användning, vilket gör det möjligt att minska den tid som krävs för att diagnostisera problem med en app.
Samtidigt kan insamling av en fullständig uppsättning händelser vara opraktiskt (eller till och med omöjligt) för program som genererar en stor mängd telemetri. I situationer där händelsevolymen är för hög implementerar Application Insights flera tekniker för minskning av telemetrivolymer, till exempel sampling och filtrering som minskar antalet insamlade och lagrade händelser. Tyvärr minskar sänkningen av antalet lagrade händelser också noggrannheten för de mått som i bakgrunden måste utföra frågetidsaggregeringar av de händelser som lagras i loggar.
Föraggregerade mått
De föraggregerade måtten lagras inte som enskilda händelser med många egenskaper. I stället lagras de som föraggregerade tidsserier och endast med nyckeldimensioner. Detta gör de nya måtten överlägsna vid frågetillfället: hämtning av data sker snabbare och kräver mindre beräkningskraft. Detta möjliggör nya scenarier, till exempel aviseringar i nära realtid om måttdimensioner, mer dynamiska instrumentpaneler med mera.
Viktigt!
Både loggbaserade och föraggregerade mått samexisterar i Application Insights. För att särskilja de två, i Application Insights UX kallas de föraggregerade måtten nu "Standardmått (förhandsversion)", medan de traditionella måtten från händelserna har bytt namn till "Log-baserade mått".
De nyare SDK:erna (Application Insights 2.7 SDK eller senare för .NET) föraggregerar mått under samlingen. Detta gäller standardmått som skickas som standard så att noggrannheten inte påverkas av sampling eller filtrering. Det gäller även anpassade mått som skickas med GetMetric, vilket resulterar i mindre datainmatning och lägre kostnad.
För de SDK:er som inte implementerar föraggregering fyller Application Insights-serverdelen fortfarande de nya måtten genom att aggregera de händelser som tas emot av Application Insights-händelsesamlingens slutpunkt. Ä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.
Det är värt att nämna att samlingens slutpunkt föraggregerar händelser före inmatningssampling, vilket innebär att inmatningssampling aldrig påverkar noggrannheten för föraggregerade mått, oavsett vilken SDK-version du använder med ditt program.