Implementera Application Insights

Fullbordad

Den här lektionen ger praktisk vägledning för att implementera Application Insights i dina program, som täcker hela arbetsflödet från installation till pågående övervakning och optimering.

Övervaka: Upprätta kontinuerlig synlighet

När du har installerat Application Insights i din app konfigurerar du webbtester för tillgänglighet för att övervaka ditt program från externa perspektiv. Implementera sedan dessa övervakningsmetoder:

Konfigurera instrumentpaneler för teamets synlighet

Skapa en instrumentpanel för ditt teamrum för att hålla ett öga på kritiska mått:

Viktiga mått som ska visas:

  • Belastningsmått: Antal förfrågningar per tidsenhet, samtidiga användare, genomströmning
  • Responstid: Percentiler för svarstid (50:e, 95:e, 99:e)
  • Beroendeprestanda: Databasfrågetider, svarstider för API-anrop, cacheträffar
  • Mått på klientsidan: Sidinläsningstider, AJAX-anropsprestanda
  • Felfrekvenser: Misslyckade begäranden, undantag, beroendefel

Bästa praxis för instrumentpaneler:

  • Uppdatera i realtid under utrullningar
  • Visa på bildskärmar i teamens områden
  • Hälsoindikatorer för färgkod (grön/gul/röd)
  • Inkludera SLA-efterlevnadsmått
  • Visa trender över tid tillsammans med aktuella värden

Identifiera prestandaproblem

Identifiera vilka som är de långsammaste och mest misslyckade begärandena:

  • Sortera förfrågningar efter responstid för att identifiera flaskhalsar
  • Identifiera begäranden med högsta felfrekvens
  • Korrelera långsamma begäranden med beroenden
  • Spåra prestandaregression mellan distributioner
  • Prioritera optimering baserat på användarpåverkan

Verifiera distributioner med Live Stream

Titta på Live Stream när du distribuerar en ny version:

  • Få omedelbar information om eventuell försämring
  • Övervaka felfrekvenser i realtid (1 sekunds uppdatering)
  • Se misslyckade begäranden när de inträffar
  • Spåra beroendefel
  • Verifiera prestanda innan du slutför distributionen

Identifiera, diagnostisera: Snabb problemlösning

När du får en avisering eller upptäcker ett problem tillhandahåller Application Insights omfattande diagnostikfunktioner:

Utvärdera användarpåverkan

Avgör hur många användare som påverkas:

  • Frågetelemetri för det berörda antalet användare
  • Identifiera geografisk fördelning av påverkan
  • Avgöra om problemet påverkar alla användare eller specifika segment
  • Beräkna affärspåverkan (förlorade intäkter, övergivna transaktioner)
  • Prioritera lösning baserat på allvarlighetsgrad för användarpåverkan

Exempel på KQL-fråga:

requests
| where timestamp > ago(1h)
| where success == false
| summarize AffectedUsers = dcount(user_Id), FailedRequests = count() by resultCode

Korrelera fel med undantag, beroendeanrop och spårningar:

  • Operations-ID-länkning: All telemetri som hör till en begäran delar ett operations-ID
  • Transaktionsvy från slutpunkt till slutpunkt: Se fullständigt flöde för begäranden mellan tjänster
  • Undantagskorrelation: Länka undantag till de begäranden som utlöste dem
  • Beroendeanalys: Identifiera vilken underordnad tjänst som orsakade felet
  • Loggkorrelation: Visa programloggar i kontexten för den misslyckade begäran

Arbetsflöde för undersökning:

  1. Börja med misslyckad begäran i diagnostiksökningen
  2. Visa all relaterad telemetri med åtgärds-ID
  3. Granska beroendeanrop för att identifiera långsamma/misslyckade tjänster
  4. Granska undantagsinformation och stackspårningar
  5. Kontrollera programloggarna för ytterligare kontext

Djupgående diagnostikverktyg

Granska profiler, ögonblicksbilder, stackdumpar och spårningsloggar:

Profiler:

  • Se prestandauppdelning på kodnivå
  • Identifiera vilka metoder som förbrukats mest
  • Hitta ineffektiva algoritmer eller frågor

Felsökning av ögonblicksbilder:

  • Avbilda minnesögonblicksbilder från produktion
  • Visa lokala variabelvärden vid undantagstillfället
  • Felsöka utan att återskapa lokalt

Stackdumpar:

  • Fullständig stackspårning för varje undantag
  • Navigera från undantag till källkod
  • Förstå anropskedja som leder till fel

Spårningsloggar:

  • Programloggar som är korrelerade med begäranden
  • Sökloggar mellan distribuerade tjänster
  • Filtrera efter allvarlighetsgrad, tidsintervall, anpassade egenskaper

Bygg, Mät, Lär: Data-driven utveckling

Mät effektiviteten för varje ny funktion som du distribuerar med en strukturerad, datadriven metod:

Planera mätningsstrategi

Planera för att mäta hur kunder använder nya UX- eller affärsfunktioner:

Före utveckling:

  • Definiera framgångsmått (implementeringsfrekvens, konverteringsfrekvens, engagemang)
  • Identifiera viktiga användaråtgärder som ska spåras
  • Fastställa segmenteringsvillkor (användartyp, geografi, enhet)
  • Upprätta baslinjemått för jämförelse
  • Ange mål för funktionsframgång

Måttdimensioner:

  • Adoption: Vilken procentandel av användarna provar den nya funktionen?
  • Engagemang: Hur ofta interagerar användarna med det?
  • Fullbordande: Slutför användarna arbetsflödet?
  • Prestanda: Fungerar funktionen bra?
  • Belåtenhet: Är användarna framgångsrika och nöjda?

Implementera anpassad telemetri

Skriv anpassad telemetri i koden för att samla in affärsspecifika händelser:

Anpassade händelser:

telemetryClient.TrackEvent("FeatureUsed",
    properties: new Dictionary<string, string> {
        {"FeatureName", "AdvancedSearch"},
        {"UserTier", "Premium"}
    },
    metrics: new Dictionary<string, double> {
        {"SearchResultCount", 42},
        {"SearchDurationMs", 150}
    });

Anpassade mått:

telemetryClient.TrackMetric("CartValue", orderTotal);
telemetryClient.TrackMetric("ItemsInCart", itemCount);

Metodtips för instrumentering:

  • Använd konsekventa namngivningskonventioner
  • Lägga till relevanta egenskaper för segmentering
  • Inkludera tidsstämplar för tidsanalys
  • Spåra inte personligt identifierbar information (PII)
  • Håll telemetrin lätt (undvik hög kardinalitet)

Fatta datadrivna beslut

Basera nästa utvecklingscykel på hårda bevis från din telemetri:

Analysarbetsflöde:

  1. Jämför mått: Funktionsprestanda jämfört med baslinje
  2. Segmentanalys: Prestanda i olika användargrupper
  3. Trattanalys: Bortfallspunkter i flerstegsflöden
  4. Kohortanalys: Kvarhållning av användare som har antagit funktionen
  5. Effektanalys: Korrelation med affärsresultat

Beslutsramverk:

Om måtten överskrider målen:

  • Investera i att utöka funktionen
  • Tillämpa utbildningar på liknande funktioner
  • Överväg att göra funktionen mer framträdande

Om måtten uppfyller målen:

  • Underhålla och övervaka
  • Stegvisa förbättringar baserat på feedback
  • Flytta resurser till andra prioriteringar

Om mått presterar under förväntan:

  • Analysera varför (användbarhet, upptäckbarhet, värdeförslag)
  • Förbättringar av A/B-tester
  • Överväg utfasning om ingen väg mot resultat

Exempelscenario: Ny rekommendationsmotor visar 60% införande men endast 15% konvertering (målet var 25%). Analysen visar att rekommendationerna är korrekta, men användargränssnittet är förvirrande. Nästa sprint fokuserar på UX-förbättringar i stället för algoritmförbättringar.

Kom igång: Implementeringsmetoder

Application Insights är en av de många tjänster som finns i Microsoft Azure och telemetri skickas dit för analys och presentation.

Förutsättningar

Innan du börjar behöver du en prenumeration på Microsoft Azure:

Prenumerationsalternativ:

  • Kostnadsfri registrering: Inget kreditkort krävs för den kostnadsfria utvärderingsversionen
  • Pay-as-you-go: Betala endast för det du använder
  • Enterprise-avtal: Förhandlade priser för organisationer
  • Azure for Students: Kostnadsfria krediter för studenter

Prisöverväganden: Om du väljer den grundläggande prisplanen för Application Insights debiteras du inte förrän ditt program har vuxit till stor användning:

  • Kostnadsfri nivå: Första inmatningen på 5 GB/månad ingår
  • Betala per GB: Utöver den kostnadsfria nivån betalar du endast för data som matas in
  • Åtagandenivåer: Rabatter för förutsägbar användning

Organisationsåtkomst: Om din organisation redan har en prenumeration kan de lägga till ditt Microsoft-konto i den. Kontakta Azure-administratören om du vill ha åtkomst.

Implementeringsmetoder

Det finns flera sätt att komma igång på. Börja med det som fungerar bäst för dig. Du kan lägga till de andra senare.

Metod 1: Körningsinstrumentation

Instrumentera webbappen på servern utan kodändringar:

fördelar:

  • Undviker alla uppdateringar av koden: Ingen omkompilering eller omdistribution behövs
  • Omedelbar övervakning: Börja samla in telemetri inom några minuter
  • Inga SDK-beroenden: Inga ändringar i programberoenden
  • Produktionsklar: Säkert för befintliga produktionsprogram

Krav:

  • Administratörsåtkomst till servern: Krävs för att installera övervakningsagenten
  • Stödda plattformar endast: Inte alla plattformar stöder körtidsinstrumentation

Plattformar som stöds:

IIS lokalt eller på en virtuell dator:

  • Windows Server med IIS 7.5 eller senare
  • ASP.NET program (Framework eller Core)
  • Installerar Statusövervakaren eller Application Insights-agenten
  • Automatiskt instrumenterar programvaran utan kodändringar

Azure-webbapp eller virtuell dator:

  • Aktivera Application Insights via Azure-portalen
  • Integrering med ett klick för Azure App Service
  • VM-tillägg för virtuella Azure-datorer
  • Automatisk instrumentering utan kodändringar

J2EE:

  • Java-program som körs på Tomcat, JBoss eller WebLogic
  • Agentbaserad instrumentation
  • Samlar in begäranden, beroenden, undantag
  • Fungerar med Spring Boot, Jakarta EE

Metod 2: SDK-integrering under utveckling

Lägg till Application Insights i koden för fullständig kontroll och anpassning:

fördelar:

  • Anpassad telemetri: Skriva affärsspecifika händelser och mått
  • Fullständig kontroll: Konfigurera sampling, filtrering, processorer
  • Alla plattformar: Inte begränsat till webbprogram
  • Lokal felsökning: Testa telemetri under utveckling

Krav:

  • Källkodsåtkomst: Ändra och kompilera om programmet
  • SDK-integrering: Lägga till NuGet/Maven/npm-paket
  • Utvecklingstid: Inledande installation och testning krävs

Plattformar som stöds:

Visual Studio (ASP.NET):

  • Visual Studio 2013 uppdatering 2 eller senare
  • Installation av NuGet-paket
  • Automatisk instrumentering + anpassad telemetri
  • IntelliSense för telemetri-API:er

Java:

  • Maven- eller Gradle-beroende
  • Stöd för automatisk konfiguration av Spring Boot
  • Jakarta EE- och Micronaut-ramverk
  • Manuell instrumentering för anpassade händelser

Node.js:

  • Installation av npm-paket
  • Stöd för Express, Koa, Hapi framework
  • Automatisk beroendespårning
  • Anpassad händelse- och måttspårning

Andra plattformar:

  • Python (Flask, Django)
  • Ruby (Rails, Sinatra)
  • PHP (Laravel, Symfony)
  • Go, Rust och fler community-SDK:er

Instrumentering på klientsidan

Instrumentera dina webbsidor för omfattande övervakning:

JavaScript SDK-funktioner:

  • Sidvisningar: Spåra navigering i SPA:er
  • AJAX-anrop: Övervaka API-begäranden från webbläsare
  • Undantag på klientsidan: Registrera JavaScript-fel
  • Prestandamått: Tid för sidinläsning, resurstid
  • Användaranalys: Sessionsspårning, användarflöden

Genomförande:

  • Lägga till JavaScript-kodfragment på HTML-sidor
  • Automatisk sidvisningsspårning
  • Korrelera klient- och servertelemetri
  • Fungerar med React, Angular, Vue-ramverk

Övervakning av mobilprogram

Analysera mobilappsanvändning genom att integrera med Visual Studio App Center:

Stöd för mobil plattform:

  • iOS (Swift, Objective-C)
  • Android (Java, Kotlin)
  • React Native
  • Xamarin, Flutter

Mobilspecifika funktioner:

  • Kraschrapportering
  • Analys (sessioner, händelser, användaregenskaper)
  • Spårning av push-meddelanden
  • Integrering av distribution och testning

Syntetisk övervakning

Tillgänglighetstester:

Testtyper:

  • URL-pingtester: Kontroller av enkel slutpunktstillgänglighet
  • Webbtester i flera steg: Inspelade användarscenarier
  • Anpassad TrackAvailability: Kodbaserad tillgänglighetsspårning

Testkonfiguration:

  • Pinga din webbplats regelbundet från distribuerade platser
  • Övervaka från 5+ globala Azure-regioner
  • Avisering när slutpunkter blir otillgängliga
  • Mäta svarstid ur användarperspektiv

Välja rätt metod

Scenario Rekommenderad metodik
Befintlig produktionsapp, kan inte ändra kod Körningsinstrumentation
Ny programutveckling SDK-integrering vid utvecklingstid
Behöver anpassade affärshändelser SDK-integrering (krävs)
Endast webbapplikation Körtidsinstrumentering (enklare)
Mobilapplikation Visual Studio App Center + App Insights
Fullständig övervakning (server + klient) SDK-integrering + JavaScript-kodfragment
Endast extern tillgänglighet Tillgänglighetstester