Implementer programinnsikt

Fullført

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

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:

  1. Start med mislykket forespørsel i diagnosesøk
  2. Vise all relatert telemetri ved hjelp av operasjons-ID
  3. Undersøk avhengighetskall for å identifisere trege/mislykkede tjenester
  4. Se gjennom unntaksdetaljer og stakksporinger
  5. 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:

  1. Sammenlign beregninger: Funksjonsytelse kontra grunnlinje
  2. Segment analyse: Ytelse på tvers av ulike brukergrupper
  3. Trakt analyse: Frafallspunkter i flyter med flere trinn
  4. Kohort analyse: Oppbevaring av brukere som tok i bruk funksjonen
  5. 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

J2EE:

  • 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 (ASP.NET):

  • 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

Andre plattformer:

  • 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

Tilgjengelighet tester:

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