Utforsk programinnsikter
Application Insights er Azures løsning for overvåking av programytelse (APM) som gir dyp innsikt i hvordan programmene dine fungerer og hvordan brukere samhandler med dem. I motsetning til infrastrukturovervåking (dekket i tidligere enheter), fokuserer Application Insights på telemetri på programnivå – forespørsler, avhengigheter, unntak og tilpassede forretningshendelser.
Slik fungerer Application Insights
Installasjon og oppsett
Du installerer en liten instrumentasjonspakke i programmet og konfigurerer en Application Insights-ressurs i Microsoft Azure-portalen. Oppsettsprosessen varierer fra plattform til plattform, men involverer generelt:
1. Opprett Application Insights-ressurs:
- Gå til Azure-portalen og opprett en Application Insights-ressurs
- Skaff deg instrumenteringsnøkkelen eller tilkoblingsstrengen
- Ressursen kan være frittstående eller koblet til et Log Analytics-arbeidsområde
2. Legg til instrumentering i applikasjonen din:
- Installer Application Insights SDK for plattformen din (.NET, Java, Node.js, Python)
- Konfigurer instrumenteringsnøkkelen i programmet ditt
- Aktiver eventuelt avanserte funksjoner (profilering, feilsøking av øyeblikksbilder)
3. Distribuer instrumentert applikasjon:
- Instrumentasjonen overvåker appen og sender telemetridata til portalen
- Programmet kan kjøre hvor som helst – det trenger ikke å driftes i Azure
- Fungerer med lokale programmer, andre skyleverandører, kantenheter
Hva blir instrumentert?
Du kan instrumentere flere applikasjonskomponenter for full synlighet:
Webtjeneste-applikasjon:
- ASP.NET, ASP.NET Core, Java Spring Boot Node.js Express-applikasjoner
- Fanger automatisk opp forespørsler, responstider, unntak
- Sporer avhengigheter (databasekall, eksterne API-er, meldingskøer)
Bakgrunnskomponenter:
- Azure Functions, WebJobs, Worker Services
- Konsollapplikasjoner og satsvise prosesser
- Planlagte oppgaver og bakgrunnsjobber
JavaScript på nettsider:
- SDK på klientsiden kjører i brukernettlesere
- Sporer sidevisninger, AJAX-anrop, nettleserunntak
- Måler ytelse på klientsiden (sideinnlastingstid, gjengivelse)
- Overvåker enkeltsideapplikasjoner (React, Angular, Vue)
Omfattende telemetrisamling
Application Insights gir flere telemetrikilder for fullstendig observerbarhet:
Integrering av vertsmiljø:
- Hent inn telemetri fra vertsmiljøer , for eksempel ytelsestellere, Azure-diagnostikk eller Docker-logger
- Korreler infrastrukturmåledata med programytelse
- Forstå om problemene er på program- eller infrastrukturnivå
Syntetisk overvåking:
- Sett opp netttester med jevne mellomrom, send syntetiske forespørsler til nettjenesten din
- Overvåk tilgjengelighet fra flere globale steder
- Validere brukerscenarioer med flere trinn
- Varsle når endepunkter blir utilgjengelige
Enhetlig analyse:
- Alle disse telemetristrømmene er integrert i Azure-portalen
- Bruk kraftige analyse- og søkeverktøy på rådataene
- Bruke KQL til å spørre på tvers av alle telemetrityper
- Korrelere hendelser fra forskjellige kilder ved hjelp av operasjons-ID-er
Hva er overhead?
Innvirkningen på appens ytelse er minimal. Application Insights er utformet for produksjonsbruk med ubetydelige ytelseskostnader:
Ytelse egenskaper:
- Sporing av anrop blokkerer ikke: Telemetriinnsamling gjør ikke forespørselsbehandlingen tregere
- Batch-overføring: Hendelser grupperes og sendes i en egen tråd
- Asynkrone operasjoner: Ingen venting på at telemetri skal overføres
- Adaptiv prøvetaking: Reduserer automatisk datamengden samtidig som statistisk nøyaktighet opprettholdes
- Typisk overhead:<1% CPU-påvirkning, ~50–100 KB/s nettverk per forekomst
Strategier for prøvetaking:
- Prøvetaking med fast rente: Samle inn en prosentandel av all telemetri (f.eks. 20%)
- Adaptiv prøvetaking: Justeres automatisk basert på trafikkvolum
- Prøvetaking av inntak: Brukes på Azure-portalen for å redusere lagrede data
- Sampling bevarer konteksten: Relatert telemetri er samplet sammen
Hva overvåker Application Insights?
Application Insights er rettet mot utviklingsteamet for å hjelpe deg med å forstå hvordan appen din fungerer og brukes. Den gir omfattende overvåking på tvers av flere dimensjoner:
Måledata for applikasjonsytelse
Forespørselsfrekvenser, responstider og feilfrekvenser:
- Finn ut hvilke sider som er mest populære, til hvilke tider på døgnet og hvor brukerne befinner seg
- Se hvilke sider som gir best resultater og hvilke som trenger optimalisering
- Viktig innsikt: Hvis responstider og feilfrekvenser øker med flere forespørsler, har du sannsynligvis et ressurs- eller kapasitetsproblem
Avhengighetsrater, responstider og feilfrekvenser:
- Spor kall til databaser, eksterne API-er, meldingskøer og lagring
- Finn ut om eksterne tjenester bremser deg
- Identifiser de tregeste avhengighetene som påvirker brukeropplevelsen
- Oppdag gjennomgripende feil fra nedstrømstjenester
Feil- og unntakssporing
Unntak:
- Analysere aggregert statistikk som viser unntakstrender over tid
- Velg bestemte forekomster og drill ned i hele stakksporingen
- Se relaterte forespørsler for å forstå kontekst når unntak oppstod
- Både server- og nettleserunntak rapporteres for full synlighet
- Spor ubehandlede vs. håndterte unntak
Overvåking på klientsiden
Sidevisninger og lastytelse:
- Rapportert av brukernes nettlesere som viser erfaringer fra den virkelige verden
- Mål tid til interaktiv (TTI), første innholdsrike maling (FCP)
- Identifiser sider som laster sakte inn som påvirker brukeropplevelsen
AJAX-anrop fra nettsider:
- Sporfrekvenser, responstider og feilfrekvenser for API-kall
- Identifiser hvilke API-endepunkter som er trege fra klientperspektiv
- Overvåk enkeltsideapplikasjonsnavigasjon (SPA)
Brukeranalyse
Antall brukere og økter:
- Spor daglige/månedlige aktive brukere (DAU/MAU)
- Forstå øktens varighet og frekvens
- Mål brukerbevaring og frafall
Integrasjon av infrastruktur
Ytelsestellere:
- Samle inn fra Windows- eller Linux-servermaskiner
- Inkluder CPU-, minne- og nettverksbruk
- Korreler infrastrukturmåledata med programytelse
Diagnostikk for verter:
- Overvåk Docker-beholdere og Azure-ressurser
- Spore ressursutnyttelse per container
- Forstå infrastrukturtilstand sammen med programtilstand
Diagnostiske funksjoner
Diagnostiske sporingslogger:
- Registrere logger fra programrammeverket (ILogger, Log4j osv.)
- Korrelere sporingshendelser med forespørsler ved hjelp av operasjons-ID-er
- Søk i logger etter spesifikke feil eller mønstre
- Filtrere etter alvorsgrad, tidsintervall eller egendefinerte egenskaper
Tilpasset forretningstelemetri
Egendefinerte hendelser og målinger:
- Skrive egendefinert telemetri i klient- eller serverkode
- Spor forretningshendelser som solgte varer, spill vunnet, opprettede abonnementer
- Mål bedriftsspesifikke beregninger som handlekurvverdi og trinn i konverteringstrakten
- Opprett egendefinerte dimensjoner for segmentering (kundenivå, funksjonsflagg)
Hvor ser jeg telemetrien min?
Application Insights gir flere grensesnitt for å utforske dataene dine, hver optimalisert for ulike scenarioer. Det finnes mange måter å utforske dataene på.
Smart deteksjon og varsler
Smart deteksjon og manuelle varsler gir proaktiv varsling om problemer:
Automatiske varsler tilpasser seg appens vanlige telemetrimønstre og utløses når det er noe utenfor det vanlige mønsteret. Maskinlæringsalgoritmer identifiserer:
- Unormal økning i feilrater: Plutselig økning i unntak eller mislykkede forespørsler
- Redusert ytelse: Responstider langsommere enn vanlige mønstre
- Minnelekkasjer: Gradvis minneøkning over tid
- Avhengighetsavvik: Eksterne serviceanrop som viser uvanlig oppførsel
Du kan også angi manuelle varsler på nivåer av egendefinerte eller standard måledata med konfigurerbare terskler, alvorlighetsgrader og handlingsgrupper.
Programkart
Visualiser komponentene i appen din med viktige beregninger og varsler. Applikasjonskartet oppdager automatisk:
- Applikasjon topologi: Alle komponenter og deres tilkoblinger
- Avhengighetsforhold: Hvilke tjenester kaller hvilke avhengigheter
- Helse indikatorer: Fargekodet helsestatus per komponent
- Viktige beregninger: Forespørselsfrekvens, feilfrekvens, responstid per komponent
- Aktive varsler: Visuelle indikatorer som viser hvilke komponenter som har problemer
Brukstilfeller: Identifiser raskt hvilken komponent i et distribuert system som svikter, forstå anropsmønstre, planlegg kapasitet per tjeneste.
Application Insights Profiler
Undersøk utførelsesprofilene for eksempelforespørsler for å identifisere ytelsesflaskehalser:
- Ytelse på kodenivå: Se nøyaktig hvilke metoder som bruker mest tid
- Visualisering av samtaletre: Forstå kjøringsbanen gjennom koden
- Prøveprofilering: Lav overheadoppsamling fra produksjonsmiljøer
- Flammegrafer: Visuell representasjon av tid brukt i hver funksjon
Brukstilfeller: Identifiser trege databasespørringer, ineffektive algoritmer, overdreven strengallokering, lås konflikt.
Bruksanalyse
Analyser brukersegmentering og -oppbevaring for å forstå hvordan brukere samhandler med appen din:
- Brukerflyter: Visualiser navigasjonsbaner gjennom programmet
- Trakter: Spor konverteringsfrekvenser gjennom flertrinnsprosesser
- Kohorter: Grupper brukere etter atferd eller attributter for sammenligning
- Oppbevaring: Mål hvor mange brukere som returnerer over tid
- Konsekvensanalyse: Korreler ytelse med brukeratferd
Brukstilfeller: Optimaliser konverteringstrakter, forstå funksjonsadopsjon, identifiser brukere i faresonen, mål produkt-markedstilpasning.
Diagnostisk søk
Søk etter og filtrer hendelser for detaljert undersøkelse:
- Typer hendelser: Forespørsler, unntak, avhengighetskall, loggspor, sidevisninger, egendefinerte hendelser
- Filtrering: Etter tidsintervall, resultatkode, operasjonsnavn, egendefinerte egenskaper
- Fulltekstsøk: Finn hendelser som inneholder bestemt tekst
- Relatert telemetri: Klikk en hendelse for å se all relatert telemetri (ende-til-ende-transaksjon)
Brukstilfeller: Undersøk spesifikke brukerrapporterte problemer, finn feil for spesifikke kunder, spor forespørsler på tvers av distribuerte systemer.
Utforsker for beregninger
Utforsk, filtrer og segmenter aggregerte data:
- Beregninger: Frekvenser for forespørsler, feil, unntak, responstider, sideinnlastingstider, tilpassede beregninger
- Splitting: Segmenter etter dimensjoner (skyrolle, geografi, nettleser, enhet)
- Filtrering: Fokuser på spesifikke verdier
- Aggregasjon: Min, maks, gj.sn., sum, persentiler
- Tidsgranularitet: 1 minutt til 1 måned bøtter
Brukstilfeller: Kapasitetsplanlegging, SLA-sporing, sammenligning av ytelse på tvers av regioner, identifisering av trender.
Oversikter
Kombiner data fra flere ressurser og del med andre:
- Flere ressurser: Kombiner data fra flere Application Insights-forekomster
- Tilpassbare fliser: Feste spørringer, måledata og visualiseringer
- Delte dashbord: Publiser til team for samarbeidsovervåking
- Kontinuerlig visning: Flott for applikasjoner med flere komponenter og teamrom
Brukstilfeller: Lederdashbord, krigsrom under hendelser, teamsituasjonsbevissthet, statusvisninger.
Live Metrics Stream
Se ytelsesindikatorer i nær sanntid:
- 1 sekunders oppdatering: Se måledata som oppdateres i sanntid
- Validering av distribusjon: Når du distribuerer en ny versjon, må du sørge for at alt fungerer som forventet
- Live-arrangementer: Strøm av forespørsler, avhengigheter, unntak etter hvert som de oppstår
- Serverens tilstand: Live view av serverantall, CPU, minne
- Filtrering: Fokuser på spesifikke servere eller feiltyper
Brukstilfeller: Distribusjonsvalidering, live feilsøking, observasjon av belastningstesting, hendelsesrespons.
Analyse (KQL-spørringer)
Svar på utfordrende spørsmål om appens ytelse og bruk ved hjelp av dette kraftige spørringsspråket:
- KQL (Kusto-spørringsspråk): Samme språk som ble dekket i forrige enhet
- Ad-hoc analyse: Utforsk data uten forhåndsdefinerte visninger
- Komplekse sammenføyninger: Korrelere data på tvers av flere tabeller
- Avanserte visualiseringer: Opprette egendefinerte diagrammer og tidsserier
- Lagrede spørringer: Gjenbruk vanlige analysemønstre
Brukstilfeller: Rotårsaksanalyse, kapasitetsplanlegging, tilpassede rapporter, datautforskning.
Visual Studio-integrasjon
Se ytelsesdata i koden:
- CodeLens: Ytelsesberegninger som vises innebygd i koderedigeringsprogrammet
- Gå til kode fra stabelspor: Klikk unntak i portalen, hopp til kodelinje
- Lokal feilsøking: Application Insights-integrering i Visual Studio-feilsøking
- Trender: Historiske ytelsestrender for spesifikke metoder
Brukstilfeller: Ytelsesoptimalisering under utvikling, feilsøking av produksjonsproblemer lokalt.
Snapshot Debugger
Feilsøk øyeblikksbilder samplet fra live-operasjoner:
- Feilsøking av produksjon: Ta øyeblikksbilder fra hele minnet fra produksjonen
- Parameterverdier: Se lokale variabler og parametere ved unntak
- Samtale stabel: Komplett stabelsporing med variable verdier ved hver ramme
- Ingen innvirkning på ytelsen: Øyeblikksbilder samlet inn med minimale overhead
- Personvern kontroller: Konfigurer hvilke data som skal registreres
Brukstilfeller: Feilsøk produksjonsproblemer som er vanskelige å reprodusere, forstå unntak i kundemiljøer.
Power BI-integrasjon
Integrer bruksmetrikk med annen forretningsanalyse:
- Tilpassede rapporter: Opprett Power BI-instrumentbord som kombinerer Application Insights og forretningsdata
- Planlagt oppdatering: Automatiske dataoppdateringer
- Korrelasjon: Koble tekniske beregninger til forretningsresultater
- Ledende rapportering: Presentere tekniske data i forretningssammenheng
Brukstilfeller: Rapportering på styrenivå, korrelering av applikasjonsytelse med inntekter, SLA-samsvarsrapportering.
REST- API
Skriv kode for å kjøre spørringer over beregningene og rådataene dine:
- Programmatisk tilgang: Spør Application Insights fra dine egne programmer
- Automatisering: Bygg tilpassede overvåkingsløsninger
- Integrasjon: Koble til tredjepartsverktøy og arbeidsflyter
- Tilpasset behandling: Eksportere data for avansert analyse
Brukstilfeller: Tilpassede dashboards, SLA-overvåkingssystemer, automatisert rapportering, datavitenskapelige pipelines.
Kontinuerlig eksport
Masseeksport av rådata til lagring så snart de ankommer:
- Azure Storage: Eksporter til Blob Storage for langsiktig oppbevaring
- Hendelseshuber: Strøm til sanntidsbehandlingssystemer
- Data Lake: Integrer med plattformer for stordataanalyse
- Samsvar: Oppfyll krav til datalagring og oppbevaring
- Optimalisering av kostnader: Lagre data i billigere lagringsnivåer
Brukstilfeller: Langsiktig arkivering, mating av datavarehus, samsvarskrav, tilpasset analyse i stor skala.