Implementer programinnsikt
Denne enheten gir praktisk veiledning for implementering av Application Insights i applikasjonene dine, og dekker hele arbeidsflyten fra installasjon til kontinuerlig overvåking og optimalisering.
Overvåk: Etabler kontinuerlig synlighet
Når du har installert Application Insights i appen, konfigurerer du tilgjengelighetsnetttester for å overvåke programmet fra eksterne perspektiver. Implementer deretter disse overvåkingspraksisene:
Konfigurere instrumentbord for teamsynlighet
Opprett et dashbord for teamrommet ditt for å holde øye med kritiske beregninger:
Viktige beregninger som skal vises:
- Belastningsmålinger: Forespørselsfrekvens, samtidige brukere, gjennomstrømning
- Respons: Persentiler for responstid (50., 95., 99.)
- Avhengighet ytelse: Spørringstider for databaser, ventetider for API-anrop, trefffrekvenser for hurtigbuffer
- Beregninger på klientsiden: Sideinnlastingstider, AJAX-anropsytelse
- Feilrater: Mislykkede forespørsler, unntak, avhengighetsfeil
Anbefalte fremgangsmåter for dashbord:
- Oppdater i sanntid under distribusjoner
- Visning på skjermer i gruppeområder
- Fargekode helseindikatorer (grønn/gul/rød)
- Inkluder måledata for SLA-samsvar
- Vis trender over tid sammen med gjeldende verdier
Identifiser ytelsesproblemer
Finn ut hvilke som er de tregeste og mest mislykkede forespørslene:
- Sorter forespørsler etter responstid for å finne flaskehalser
- Identifiser forespørsler med høyest feilfrekvens
- Korreler trege forespørsler med avhengigheter
- Spor ytelsesregresjon på tvers av distribusjoner
- Prioriter optimalisering basert på brukerpåvirkning
Valider distribusjoner med Live Stream
Se Live Stream når du distribuerer en ny utgivelse:
- Vet umiddelbart om eventuell nedbrytning
- Overvåk feilfrekvenser i sanntid (1 sekunds oppdatering)
- Se mislykkede forespørsler etter hvert som de oppstår
- Spore avhengighetsfeil
- Valider ytelsen før utrullingen fullføres
Oppdag, diagnostiser: Rask problemløsning
Når du mottar et varsel eller oppdager et problem, gir Application Insights omfattende diagnosefunksjoner:
Vurder brukerpåvirkning
Bestem hvor mange brukere som er berørt:
- Spørringstelemetri for berørte brukere
- Identifiser geografisk fordeling av påvirkning
- Finn ut om problemet påvirker alle brukere eller bestemte segmenter
- Beregn forretningspåvirkning (tapte inntekter, forlatte transaksjoner)
- Prioriter løsning basert på alvorlighetsgraden av brukerpåvirkning
Eksempel på KQL-spørring:
requests
| where timestamp > ago(1h)
| where success == false
| summarize AffectedUsers = dcount(user_Id), FailedRequests = count() by resultCode
Korrelere relatert telemetri
Korreler feil med unntak, avhengighetskall og sporinger:
- Kobling av operasjons-ID: All telemetri for en forespørsel deler en operasjons-ID
- Ende-til-ende-transaksjonsvisning: Se fullstendig forespørselsflyt på tvers av tjenester
- Unntak korrelasjon: Koble unntak til forespørslene som utløste dem
- Avhengighetsanalyse: Identifiser hvilken nedstrømstjeneste som forårsaket feilen
- Logg korrelasjon: Vise programlogger i sammenheng med den mislykkede forespørselen
Arbeidsflyt for undersøkelse:
- Start med mislykket forespørsel i diagnosesøk
- Vise all relatert telemetri ved hjelp av operasjons-ID
- Undersøk avhengighetskall for å identifisere trege/mislykkede tjenester
- Se gjennom unntaksdetaljer og stakksporinger
- Sjekk programlogger for ytterligere kontekst
Dype diagnostiske verktøy
Undersøk profilering, øyeblikksbilder, stabeldumper og sporingslogger:
Profiler:
- Se ytelsesoversikt på kodenivå
- Identifiser hvilke metoder som brukte mest tid
- Finn ineffektive algoritmer eller spørringer
Feilsøking av øyeblikksbilde:
- Ta øyeblikksbilder av minner fra produksjon
- Vise lokale variabelverdier ved unntak
- Feilsøk uten å reprodusere lokalt
Stable dumper:
- Full stack-sporing for hvert unntak
- Naviger fra unntak til kildekode
- Forstå anropskjeden som fører til feil
Spor logger:
- Programlogger korrelert med forespørsler
- Søk i logger på tvers av distribuerte tjenester
- Filtrer etter alvorlighetsgrad, tidsintervall, egendefinerte egenskaper
Bygg, mål, lær: Datadrevet utvikling
Mål effektiviteten til hver nye funksjon du distribuerer ved hjelp av en strukturert, datadrevet tilnærming:
Strategi for planlegging av måling
Planlegg å måle hvordan kunder bruker nye funksjoner for brukeropplevelse eller bedrifter:
Før utvikling:
- Definer suksessmålinger (adopsjonsrate, konverteringsfrekvens, engasjement)
- Identifiser viktige brukerhandlinger som skal spores
- Bestemme segmenteringskriterier (brukertype, geografi, enhet)
- Etablere måledata for basislinje for sammenligning
- Sett mål for funksjonssuksess
Mål dimensjoner:
- Adopsjon: Hvor mange prosent av brukerne prøver den nye funksjonen?
- Forlovelse: Hvor ofte samhandler brukere med den?
- Fullførelse: Fullfører brukerne arbeidsflyten?
- Prestasjon: Fungerer funksjonen bra?
- Tilfredshet: Er brukerne vellykkede og fornøyde?
Implementere egendefinert telemetri
Skriv egendefinert telemetri inn i koden for å registrere forretningsspesifikke hendelser:
Tilpassede hendelser:
telemetryClient.TrackEvent("FeatureUsed",
properties: new Dictionary<string, string> {
{"FeatureName", "AdvancedSearch"},
{"UserTier", "Premium"}
},
metrics: new Dictionary<string, double> {
{"SearchResultCount", 42},
{"SearchDurationMs", 150}
});
Egendefinerte beregninger:
telemetryClient.TrackMetric("CartValue", orderTotal);
telemetryClient.TrackMetric("ItemsInCart", itemCount);
Anbefalte fremgangsmåter for instrumentering:
- Bruk konsekvente navnekonvensjoner
- Legge til relevante egenskaper for segmentering
- Inkluder tidsstempler for tidsanalyse
- Ikke spor personlig identifiserbar informasjon (PII)
- Hold telemetrien lett (unngå høy kardinalitet)
Ta datadrevne beslutninger
Baser den neste utviklingssyklusen på harde bevis fra telemetrien din:
Arbeidsflyt for analyse:
- Sammenlign beregninger: Funksjonsytelse kontra grunnlinje
- Segment analyse: Ytelse på tvers av ulike brukergrupper
- Trakt analyse: Frafallspunkter i flyter med flere trinn
- Kohort analyse: Oppbevaring av brukere som tok i bruk funksjonen
- Konsekvensanalyse: Korrelasjon med forretningsresultater
Rammeverk for vedtak:
Hvis målinger overskrider målene:
- Invester i å utvide funksjonen
- Bruk læring på lignende funksjoner
- Vurder å gjøre funksjonen mer fremtredende
Hvis målingene oppfyller målene:
- Vedlikehold og overvåk
- Inkrementelle forbedringer basert på tilbakemeldinger
- Flytt ressurser til andre prioriteringer
Hvis målinger underpresterer:
- Analyser hvorfor (brukervennlighet, oppdagelighet, verdiforslag)
- Forbedringer av A/B-test
- Vurder avskrivning hvis ingen vei til suksess
Eksempel på scenario: Ny anbefalingsmotor viser 60% adopsjon, men bare 15% konvertering (målet var 25%). Analyse viser at anbefalingene er nøyaktige, men brukergrensesnittet er forvirrende. Neste sprint fokuserer på UX-forbedringer i stedet for algoritmeforbedringer.
Kom i gang: Implementeringstilnærminger
Application Insights er en av de mange tjenestene som driftes i Microsoft Azure, og telemetri sendes dit for analyse og presentasjon.
Forutsetninger
Før du begynner, trenger du et abonnement på Microsoft Azure:
Abonnementsalternativer:
- Gratis registrering: Ingen kredittkort kreves for gratis prøveperiode
- Pay-as-you-go: Betal kun for det du bruker
- Foretaksavtale: Forhandlede priser for organisasjoner
- Azure for studenter: Gratis studiepoeng for studenter
Prismessige betraktninger: Hvis du velger den grunnleggende prisplanen for Application Insights, koster det ingenting før programmet har vokst til å ha stor bruk:
- Gratis nivå: Første inntak på 5 GB/måned inkludert
- Betal per GB: Utover gratisnivået betaler du bare for data som inntas
- Forpliktelsesnivåer: Rabatter for forutsigbar bruk
Organisatorisk tilgang: Hvis organisasjonen allerede har et abonnement, kan de legge til Microsoft-kontoen din. Kontakt Azure-administratoren for å få tilgang.
Tilnærminger til implementering
Det er flere måter å komme i gang på. Begynn med det som passer best for deg. Du kan legge til de andre senere.
Tilnærming 1: Kjøretidsinstrumentering
Instrumenter nettappen din på serveren uten kodeendringer:
Fordeler:
- Unngår enhver oppdatering av koden: Ingen rekompilering eller omplassering nødvendig
- Umiddelbar overvåking: Begynn å samle inn telemetri i løpet av minutter
- Ingen SDK-avhengigheter: Ingen endringer i programavhengigheter
- Produksjonsklar: Sikker for eksisterende produksjonsapplikasjoner
Krav:
- Administratortilgang til serveren din: Nødvendig for å installere overvåkingsagent
- Bare støttede plattformer: Ikke alle plattformer støtter kjøretidsinstrumentering
Støttede plattformer:
IIS lokalt eller på en virtuell maskin:
- Windows Server med IIS 7.5 eller nyere
- ASP.NET applikasjoner (Framework eller Core)
- Installerer statusovervåking eller Application Insights-agent
- Instrumenter automatisk uten kodeendringer
Azure-nettapp eller virtuell maskin:
- Aktiver Application Insights gjennom Azure-portalen
- Ett-klikks integrasjon for Azure App Service
- VM-utvidelse for Azure Virtual Machines
- Automatisk instrumentering med null kodeendringer
- Java-applikasjoner som kjører på Tomcat, JBoss eller WebLogic
- Agentbasert instrumentering
- Fanger opp forespørsler, avhengigheter, unntak
- Fungerer med Spring Boot, Jakarta EE
Tilnærming 2: SDK-integrasjon under utviklingstid
Legg til Application Insights i koden for fullstendig kontroll og tilpassing:
Fordeler:
- Tilpasset telemetri: Skrive bedriftsspesifikke hendelser og målinger
- Full kontroll: Konfigurer prøvetaking, filtrering, prosessorer
- Alle plattformer: Ikke begrenset til webapplikasjoner
- Lokal feilsøking: Test telemetri under utvikling
Krav:
- Tilgang til kildekode: Endre og kompilere applikasjonen på nytt
- SDK-integrasjon: Legg til NuGet/Maven/npm-pakker
- Utviklingstid: Innledende oppsett og testing kreves
Støttede plattformer:
- Visual Studio 2013 oppdatering 2 eller nyere
- Installasjon av NuGet-pakke
- Automatisk instrumentering + tilpasset telemetri
- IntelliSense for telemetri-API-er
Java:
- Maven- eller Gradle-avhengighet
- Støtte for automatisk konfigurasjon av Spring Boot
- Jakarta EE og Micronaut rammeverk
- Manuell instrumentering for egendefinerte hendelser
Node.js:
- Installasjon av npm-pakke
- Express, Koa, lykkelig rammestøtte
- Automatisk sporing av avhengigheter
- Sporing av egendefinerte hendelser og beregninger
- Python (Flask, Django)
- Ruby (Rails, Sinatra)
- PHP (Laravel, Symfony)
- Go, Rust og flere fellesskaps-SDK-er
Instrumentering på klientsiden
Instrumenter nettsidene dine for omfattende overvåking:
JavaScript SDK-funksjoner:
- Sidevisninger: Spornavigasjon i SPAer
- AJAX kaller: Overvåk API-forespørsler fra nettleseren
- Unntak på klientsiden: Fang opp JavaScript-feil
- Ytelsesmålinger: Sideinnlastingstid, ressurstiming
- Brukeranalyse: Øktsporing, brukerflyt
Implementering:
- Legg til JavaScript-kodebit på HTML-sider
- Automatisk sporing av sidevisninger
- Korrelere klient- og servertelemetri
- Fungerer med React, Angular, Vue-rammeverk
Overvåking av mobilapplikasjoner
Analyser bruk av mobilapper ved å integrere med Visual Studio App Center:
Støtte for mobilplattform:
- iOS (Swift, Objective-C)
- Android (Java, Kotlin)
- React Native
- Xamarin, Flutter
Mobilspesifikke funksjoner:
- Krasjrapportering
- Analytics (økter, hendelser, brukeregenskaper)
- Sporing av push-varsler
- Distribusjon og testing av integrasjon
Syntetisk overvåking
Testtyper:
- URL-ping-tester: Enkle kontroller av endepunkttilgjengelighet
- Flertrinns netttester: Innspilte brukerscenarier
- Tilpasset sportilgjengelighet: Kodebasert tilgjengelighetssporing
Test konfigurasjon:
- Ping nettstedet ditt regelmessig fra distribuerte steder
- Overvåk fra 5+ globale Azure-områder
- Varsle når endepunkter blir utilgjengelige
- Mål responstid fra brukerperspektiver
Velge riktig tilnærming
| Scenario | Anbefalt tilnærming |
|---|---|
| Eksisterende produksjonsapp, kan ikke endre kode | Instrumentering under kjøretid |
| Ny applikasjonsutvikling | SDK-integrasjon på utviklingstidspunktet |
| Trenger tilpassede forretningshendelser | SDK-integrasjon (obligatorisk) |
| Bare webapplikasjon | Kjøretidsinstrumentering (enklere) |
| Mobil applikasjon | Visual Studio App Center + App Insights |
| Fullstendig overvåking (server + klient) | SDK-integrasjon + JavaScript-kodebit |
| Bare ekstern tilgjengelighet | Tilgjengelighetstester |