Share via


Analysere systemgenererede logfiler ved hjælp af Application Insights

Du kan oprette forbindelse til din lærredapp ved hjælp af Application Insights, som er en funktion i Azure Monitor. Application Insights indeholder effektive analyseværktøjer, der kan hjælpe dig med at diagnosticere problemer og forstå, hvad brugerne rent faktisk gør med dine apps. Du kan indsamle oplysninger, der kan hjælpe dig med at træffe bedre beslutninger i virksomheden og forbedre kvaliteten af dine apps.

I denne hurtigststart bruger vi en lærredapp, der hedder Kudos, til at undersøge begreberne i systemgenererede logfiler i lærredapps og anvende dem for dine apps. Kudos-eksempelappen er en del af en pakke af apps til medarbejderengagement, som kan downloades fra Startsæt til medarbejderoplevelser.

Forudsætninger

Bemærk

Hvis du vil se telemetrioplysninger, skal din lejeradministrator aktivere Indsigt i lærredapp. Log på Power Platform Administration som administrator. Gå til Indstillinger > Lejerindstillinger > Indsigt i lærredapp. Vælg Til i ruden Indsigt i lærredapp, og gem ændringerne. Flere oplysninger: Lejerindstillinger.

Valgfrit

Oprette en Application Insights-ressource

Før du kan sende systemgenererede logfiler til en app, skal du oprette en Application Insights-ressource til opbevaring af hændelserne.

  1. Log på Azure-portalen.

  2. Søg efter Application Insights:

    Application Insights.

  3. Oprette en Application Insights-ressource:

    Tilføj en Application Insights-ressource.

  4. Angiv de ønskede værdier, og vælg Gennemse og opret.

    Du kan få flere oplysninger ved at læse Oprette en Application Insights-ressource.

    Opret en ressource.

  5. Når forekomsten Application Insights er oprettet, skal du kopiere instrumenteringsnøglen i forekomstens oversigt til brug i et kommende trin.

    Kopiér instrumenteringsnøgle.

Oprette forbindelse fra din app til Application Insights

Bemærk

  • Når du angiver en instrumenteringsnøgle, skal du være opmærksom på, at data kan sendes på tværs af lejere. Sporingshændelser sendes til AppInsights-ressourcen, der svarer til den instrumenteringsnøgle, du angiver for din app, også selvom forekomsten af AppInsights som destination er i en anden lejer end appen.
  • Vær forsigtig, når du importerer eksisterende .msapp-filer, da instrumenteringsnøgler til AppInsights kan være til stede. Åbn appen manuelt efter importen for at kontrollere, at den rette instrumenteringsnøgle for AppInsights bruges.
  1. Log på Power Apps.

  2. Vælg Apps i venstre navigationsrude. Vælg appen Kudos på listen over apps, og vælg derefter Rediger:

    Rediger appen Kudos.

    Bemærk

    Du kan også oprette en ny app eller redigere en eksisterende app i stedet.

  3. Vælg objektet App i navigationstræet til venstre, og indsæt Instrumenteringsnøgle:

    Tilføj instrumenteringsnøgle.

  4. Gem og Udgiv din app.

  5. Afspil den udgivne app, og gennemse forskellige skærmbilleder.

Når du gennemser app-skærmbillederne, logføres hændelser automatisk i Application Insights, herunder oplysninger om forbrug som f.eks.:

  • Hvor appen åbnes fra
  • De enheder, der bruges
  • De browsertyper, der bruges

Vigtigt

Du skal afspille den udgivne app for at sende hændelser til Application Insights. Der sendes ikke hændelser til Application Insights, når du får vist appen i Power Apps Studio.

Vise hændelser i Application Insights

  1. Log på Azure -portalen, og åbn den Application Insights-ressource, du har oprettet tidligere.

  2. Rul ned i venstre navigationsrude, og vælg Brugere i sektionen Brug.

    Bemærk

    I visningen Brugere vises detaljer om brugen af appen, f.eks.:

    • Antallet af brugere, der fik set appen
    • Antal af brugersessioner
    • Antal logførte hændelser
    • Oplysninger brugernes operativsystemer og browserversion
    • Brugernes område og placering

    Få mere at vide om analyse af brugere, sessioner og hændelser i Application Insights.

  3. Vælg en af brugersessionerne for at dykke ned i bestemte detaljer. Du kan få vist oplysninger som f.eks. sessionens længde og de besøgte skærmbilleder:

    Forbrugsoplysninger for brugere.

  4. Vælg visningen Hændelser i venstre navigationsrude, og vælg sektionen Brug. Du kan se en oversigt over alle skærmbilleder, der er vist på tværs af alle appsessioner:

    Hændelsesoplysninger for appen.

Tip

Der findes flere Application Insights-funktioner, f.eks.:

Oprette brugerdefinerede sporingshændelser

Du kan skrive brugerdefinerede spor direkte til Application Insights og begynde at analysere de oplysninger, der er specifikke for dit scenarie. Spor-funktionen giver dig mulighed for at indsamle:

  • Detaljerede brugsoplysninger for kontrolelementer på skærmbillederne
  • Hvilke specifikke brugere der har adgang til din app
  • De fejl, der opstår

Sporing kan også hjælpe med at diagnosticere problemer, fordi du kan sende et informationsspor, efterhånden som brugerne gennemser din app og udfører forskellige handlinger. Sporingsmeddelelser, der sendes for Application Insights at modtage en af tre forespørgsler:

  • Information
  • Advarsel!
  • Error

Afhængigt af dit scenarie kan du vælge at sende en sporingsmeddelelse med den rette alvorsgrad. Du kan anmode om data og udføre bestemte handlinger på baggrund af alvoren

Bemærk

Hvis du logfører personlige data, skal du være opmærksom på dine forpligtelser i forhold til forskellige love og regler om beskyttelse af personlige oplysninger. Se Microsoft Trust Center og Service Trust Portal for af få flere oplysninger.

Opret en ny komponent i appen for at indsamle feedback på de enkelte skærmbilleder og skrive hændelserne til Application Insights.

  1. Log på Power Apps.

  2. Vælg Apps i venstre navigationsrude. Vælg appen Kudos på listen over apps, og vælg derefter Rediger.

    Bemærk

    Du kan også oprette en ny app eller redigere en eksisterende app i stedet.

  3. Vælg indstillingen Komponenter i Trævisning:

    Komponenter.

  4. Vælg Ny komponent, og tilpas derefter bredden til 200 og højden til 75:

    Højde og bredde.

  5. Vælg Indsæt i menuen, og vælg derefter Ikoner for at tilføje Emoji – Sur smiley og Emoji – Smiley:

    Tilføj ikoner.

  6. Vælg Ny brugerdefineret egenskab for at oprette en brugerdefineret egenskab:

    Opret brugerdefineret egenskab.

  7. Angiv egenskabens Navn og Visningsnavn som f.eks. FeedbackSceen.

  8. Angiv egenskabens Beskrivelse.

  9. Vælg Egenskabstype som Input og Datatype som Skærmbillede:

    Brugerdefineret egenskab.

    Bemærk

    Inputegenskab giver dig mulighed for at registrere skærmbillednavnet og komponenten, så du kan logføre disse oplysninger i Application Insights.

  10. Vælg komponenten i Trævisning, vælg Flere handlinger (), og vælg derefter Omdøb for at omdøbe komponenten med et sigende navn, f.eks. FeedbackComponent.

    Omdøb komponent og ikoner.

  11. Vælg ikonerne, vælg Flere handlinger (), og vælg derefter Omdøb for at omdøbe ikonerne med meningsfulde navne, f.eks. FrownIcon og SmileIcon.

  12. Vælg SurIon, vælg egenskaben OnSelect, og angiv derefter følgende udtryk i formellinjen:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeedbackValue: "-1"
           }
         );
    Notify("Thanks for your feedback!");
    

    Formel for sur smiley-ikon.

    Bemærk

    Formeludtrykket sender UserName, UserEmail, Screen og Feedback (med værdien -1) til Application Insights.

  13. Vælg SmileyIkon, vælg egenskaben OnSelect, og angiv derefter følgende udtryk i formellinjen:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeebackValue: "1"
           }
         );
    Notify("Thanks for your feedback!");
    
  14. Føj komponenten til et af skærmbillederne i appen:

    Tilføj feedback-komponent.

  15. Vælg Gem, og vælg derefter Udgiv for at gemme og publicere din app.

  16. Afspil den udgivne app, og send feedback med en smiley og en sur smiley fra dine skærmbilleder.

    Vigtigt

    Du skal afspille den udgivne app for at sende hændelser til Application Insights. Der sendes ikke hændelser til Application Insights, når du får vist appen i Power Apps Studio.

    Afspil udgivet app.

Analysere data i Application Insights

Du kan nu begynde at analysere de data, du har sendt ved hjælp af funktionen Spor fra din app i Application Insights.

  1. Log på Azure-portalen, og åbn den Application Insights-ressource, du har oprettet tidligere:

    Vælg Application Insights.

  2. Vælg Logfiler under Overvågning i venstre navigationsrude:

    Vælg logfiler.

  3. Angiv følgende forespørgsel, og vælg Kør for at få vist den feedback, du har modtaget fra din app:

    traces
    | where message == "App Feedback"
    | order by timestamp
    

    Vis feedback fra app.

  4. Vælg en række i resultaterne, og udvid feltet customDimensions.

    Værdierne for Screen, UserName, UserEmail og FeedbackValue for OnSelect-hændelsen af ikonet for smiley eller sur smiley i din komponent er blevet registreret. Værdier registreres også for de enkelte hændelser, der sendes til Application Insights, f.eks. appId, appName og appSessionId.

    Udvid brugerdefinerede dimensioner.

  5. I følgende eksempelforespørgsel kan du udvide egenskaberne for de brugerdefinerede JSON-dimensioner og projicere kolonnerne i resultatvisningen.

    traces
        | extend customdims = parse_json(customDimensions)
        | where message == "App Feedback"
        | project timestamp
            , message
            , AppName = customdims.['ms-appName']
            , AppId = customdims.['ms-appId']
            , FeedbackFrom = customdims.UserEmail
            , Screen = customdims.Screen
            , FeedbackValue = customdims.FeedbackValue
        | order by timestamp desc
    

    Udvid customDimensions-forespørgsel.

    Tip

    Logføringsforespørgsler er ekstremt effektive. Du kan bruge dem til at samle flere tabeller, aggregere store mængder data og udføre komplekse handlinger. Få mere at vide om brug af logføringsforespørgsler.

Overvåge ikke-håndterede fejl (eksperimentel)

[Dette afsnit indeholder dokumentationen til den foreløbige udgivelse. Der kan blive foretaget ændringer.]

Vigtigt

  • Dette er en eksperimentel funktion.
  • Eksperimentelle funktioner er ikke beregnet til produktion og kan have begrænset funktionalitet. Disse funktioner er tilgængelige før en officiel udgivelse, så kunderne kan få tidlig adgang og give feedback.

Du kan ikke altid forudse og planlægge for alle fejl, der kan opstå, mens din app kører. Ikke-håndterede Power Fx-formelfejl rapporteres til brugere som bannermeddelelser. De kan også rapporteres for at Application Insights kan hjælpe dig med at forstå deres hyppighed og alvorlighed, uden at du behøver at regne med, at brugerne af din app rapporterer problemer. Du kan også konfigurere advarsler i realtid, når der opstår kørselsfejl, for at gøre det mere proaktivt.

Aktivere fejloverførsel til Application Insights

Du skal aktivere den indstilling, der gør det muligt for Power Apps at overføre ikke-håndterede kørselsfejl til Azure Application Insights.

Advarsel!

Aktivering af denne indstilling kan medføre ekstraomkostninger i forbindelse med lagring af Application Insights-logge.

Hvis du vil aktivere fejloverførsel, skal du gå til Indstillinger > Kommende funktioner > Eksperimentel > Send fejl til Azure Application Insights, mens du holder lærredappen åben til redigering. Gem og publicer din app.

Indstillingen Send fejl til Azure Application Insights.

Fejlhændelser i Application Insights

Ikke-håndterede Power Fx-fejl, som brugere oplever under kørsel af appen, rapporteres til sporingstabellen . Ikke-håndterede fejl kan identificeres og skelnes fra andre fejlhændelser ved hjælp af hændelsesmeddelelsen "Ikke-håndteret fejl". Dimensionen "severityLevel" for disse hændelser er 3 (TraceSeverity.Error).

Der vises detaljerede fejlmeddelelser i dimensionen "errors" i egenskaben customDimension. I situationer, hvor der opstod flere fejl under samme handling, er fejlene samlet i dimensionen "fejl" for en enkelt sporingshændelse. Fejlmeddelelser er de samme som rapporteret i Overvåge under en live debug-session.

I følgende eksempelforespørgsel identificeres ikke-håndterede fejl, og udvider alle fejlmeddelelser, der er inkluderet i sporingshændelsen:

traces
    | where message == "Unhandled error"
    | extend customdims = parse_json(customDimensions)
    | extend errors = parse_json(tostring(customdims.['errors']))
    | mv-expand errors
    | project timestamp
        , itemId //unique identifier for the trace event
        , AppName = customdims.['ms-appName']
        , AppId = customdims.['ms-appId']
        , errors = errors.['Message']
    | order by timestamp desc

Eksempel på output af forespørgsel.

Korrelationssporing (eksperimentel)

[Dette afsnit indeholder dokumentationen til den foreløbige udgivelse. Der kan blive foretaget ændringer.]

Vigtigt

  • Dette er en eksperimentel funktion.
  • Eksperimentelle funktioner er ikke beregnet til produktion og kan have begrænset funktionalitet. Disse funktioner er tilgængelige før en officiel udgivelse, så kunderne kan få tidlig adgang og give feedback.

Forbindelser til eksterne data og tjenester er grundlæggende for de fleste apps. Korrelationssporing genererer og overfører kontekstoplysninger for at oprette forbindelse til systemgenererede logfiler på tværs af en lærredapp og dens forbindelser, med visse begrænsninger. Som et eksempel kan din app kalde en brugerdefineret connector, der igen kalder en Azure-funktion eller en REST API. Korrelationssporing giver dig mulighed for at korrelere handlinger, der er foretaget i appen, med de underliggende API-kald på tværs af niveauer. Det kan være nyttigt i fejlfinding.

Lærredapp-korrelationssporing er en implementering af kontekstsporing og følger W3C-specifikationen.

Aktivere korrelationssporing

Advarsel!

Aktivering af denne indstilling kan medføre ekstraomkostninger i forbindelse med lagring af Application Insights-logge.

Hvis du vil aktivere funktionen til korrelationssporing, skal du gå til Indstillinger > Kommende funktioner > Eksperimental > Aktivér Azure Application Insights-korrelationssporing, samtidig med at din lærredsapp er åben til redigering. Gem og publicer din app.

Aktivere Azure Application Insights-korrelationssporing.

Begrænsninger

  • Korrelationssporing er kun tilgængelig for brugerdefinerede connectorer. Andre tilslutningstyper understøttes ikke.
  • HTTP-forespørgsler registreres kun i Application Insights, hvis den tilknyttede service også er tilsluttet Application Insights.

Brug af korrelationssporing

Når korrelationssporing er aktiveret, tilføjes der en ny systemgenereret logfilhændelse i afhængighedstabellen for lærredappens Application Insights-forekomst. Denne hændelse registreres, når der modtages et svar fra et netværksopkald. Afhængighedshændelser registrerer oplysninger om netværkskaldet, herunder anmodnings- og svarheadere, svarstatuskode og varigheden af kaldet.

Eksempel på en hændelse, der er logført i afhængighedstabellen.

Hvis den tilknyttede tjeneste Application Insights også er tilsluttet, oprettes der en yderligere systemgenereret logfilhændelse, der henter anmodningen, i forespørgselstabellen for servicens Application Insights-forekomst. Nogle Azure-tjenester, f.eks. Azure Functions, kan oprette forbindelse uden kodning fra Azure-portalen. Både lærredappen eller flere apps og tilknyttede services kan have forbindelse til den samme Application Insights-forekomst.

Eksempel på en hændelse, der er logført i anmodningstabellen.

Netværksopkald for understøttede forbindelser kan oprette forbindelse til andre systemgenererede logfiler på dimensionen "operation_Id". I følgende eksempelforespørgsel vises et netværksopkald, der foretages sammen med sporingshændelser, der udsendes i løbet af en appsession.

traces | union dependencies | union requests | union pageViews | union customEvents
| project timestamp
    , itemType
    , name
    , operation_Name
    , message
    , severityLevel
    , customDimensions
    , operation_Id
    , operation_ParentId
| where operation_Id == "0a7729e3e83c4e4d93cb4f51149f73b9" //placeholder operation_Id, replace
| order by timestamp asc

Eksempel på output af den tidligere eksempelforespørgsel.

Eksportér data til Power BI

Du kan eksportere Application Insights-dataene og forespørgselsresultaterne til analyse og datapræsentation i Power BI.

  1. Log på Azure-portalen, og åbn den Application Insights-ressource, du har oprettet tidligere:

  2. Vælg Logfiler under Overvågning i venstre navigationsrude:

  3. Fra vinduet til forespørgsel om loganalyse skal du vælge menuen Ekporter.

  4. Vælg indstillingen Eksporter til Power BI (M-forespørgsel) for at downloade en Power BI-forespørgselsfil:

    Eksportér Power BI-forespørgsel.

  5. Åbn den hentede fil i et tekstredigeringsprogram, og kopiér forespørgslen til udklipsholderen.

  6. Åbn Power BI.

  7. Vælg menuen Hent data på båndet Start, og vælg derefter Tom forespørgsel:

    Tom Power BI-forespørgsel.

  8. Vælg Avanceret editor i forespørgselsvinduet. Indsæt forespørgslen i vinduet, vælg Udført, og vælg derefter Luk og anvend:

    Avanceret Power BI-forespørgsel.

Du kan også oprette diagrammer og visualiseringer i Power BI, der skal repræsentere feedback modtaget i din app, samt foretage databaserede beslutninger og handlinger.

Diagrammer og visualiseringer.

Standardkontekst og -dimensioner for sporingshændelser

Der føjes også et sæt standarddimensioner til egenskaben customDimensions for de enkelte sporingshændelser. Disse dimensioner kan bruges til at identificere det program og de programsessioner, hændelserne forekom i. Hvis du logfører flere brugerdefinerede data ved hjælp af sporingsfunktionen, vises de også i de brugerdefinerede dimensioner.

Dimensionsnavn Repræsenterer
ms-appId Program-id'et for den app, der har sendt hændelsen.
ms-appname Programnavnet for den app, der har sendt hændelsen.
ms-appSessionId Programsessionens id. Denne værdi udfyldes muligvis ikke i visse scenarier. Hvis denne værdi er tilgængelig, tilsidesættes standarddimensionen sessionID for Application Insights.
ms-tenantID Det entydige id for den lejer, hvor programmet udgives.
ms-environmentId Navnet for det miljø, hvor programmet udgives.
userId Entydigt id for den slutbruger, der er tilknyttet sessionen.
ms-duration En imputeret værdi, der måler den tid, det tager for en bruger at navigere fra ét skærmbillede til et andet. Denne værdi tilsidesætter standardvarighedsdimensionen PageView for Application Insights.
sessionId Et sessions-id, der kan bruges til at korrelere alle hændelser, der er knyttet til en enkelt programsession. Denne værdi er altid til stede og anbefales, hvis du vil forstå antallet af entydige sessioner. Denne værdi tages fra spillerens sessions-id og vises, når du får vist detaljer om sessionen, mens du spiller appen. Sessions-id'et får undertiden en standardværdi, en vilkårlig værdi og en entydig Application Insights-genereret værdi. Denne standardværdi er ikke pålidelig og svarer ikke til nogen appspecifikke parametre.
Varighed En imputeret værdi, der måler den tid, det tager for en bruger at navigere fra ét skærmbillede til et andet. Denne værdi er den samme som den varighed, der rapporteres af ms-duration-dimensionen.
ms-isTest Angiver, om sessionen er knyttet til Test Studio-testprøven.
ms-currentScreenName Navnet på den side, en bruger navigerer fra (til stede i forbindelse med sidenavigationshændelser).
ms-targetScreenName Navnet på den side, en bruger navigerer til (i forbindelse med sidenavigationshændelser).

Ikke-understøttede scenarier

Application Insights understøtter ikke følgende scenarier.

  • Offlinespillerhændelser registreres ikke.
  • Hændelser i mobilapps (både iOS og Android) registreres ikke, når appen er afbrudt.
  • GCC og ikke-offentlige skyer understøttes ikke.

Bemærk

Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)

Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).