Telemetrihændelser til Microsoft Dataverse
Datastrømmen indeholder i øjeblikket ydelsesdata vedrørende indgående Dataverse-API-kald, Dataverse-kald til plug-in-kørsel og Dataverse-SDK-kald. Den indeholder også data om fejl i plug-in- og Dataverse-SDK-handlinger.
Dataverse API-indgående opkald
Disse kald foretages til Dataverse-API. De kan komme fra Unified Interface (UCI), den ældre webklient, brugerdefinerede klienter, der bruger SDK osv. De kan findes i forespørgselstabellen, som indeholder følgende Application Insights-felter.
Navn: Typen af anmodning. De er opdelt i to kategorier:
- Web-API-anmodning: En anmodning til OData v4-slutpunktet, der ofte bruges af Unified Interface og moderne klienter. Anmodningen transformeres til en handling, der er fælles for begge. Web API er en "wrapper" til aktivering af RESTful-programmeringsmodellen, men når dataene er modtaget, bliver alt det samme inden for serveren. Når svaret returneres, konverteres det til JSON, hvis anmodningen kommer fra web-API'en.
- Anmodning om organisationstjeneste: En anmodning til det organisations-API-slutpunkt, der bruges af SDK-klienter eller den ældre webklient.
Varighed: Den tid, det tog serveren at svare på anmodningen.
URL: Den webadresse, som kaldet blev foretaget til.
Brugerdefinerede dimensioner:
UserAgent: Application Insights udfylder automatisk brugeragentfeltet med pc , da disse logfiler overføres fra en server i et datacenter. Application Insights Det er ikke muligt at tilsidesætte feltet med brugeragenter. Undertiden kan brugeragent-feltet ikke udfyldes. Den brugeragent, som opkaldet blev foretaget fra, kan ses ved hjælp af følgende forespørgsel:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: Det læsbare navn på den handling, der skal vises i visninger, f.eks. slutpunkt-til-slutpunkt-transaktionsvisningen.
Dataverse plug-in udførelseslogge
Disse logge for brugerdefinerede plug-ins, der kører for en bestemt handling, findes i afhængighedstabellen. Følgende er en eksempelforespørgsel:
dependencies
| where type == "Plugin"
| take 100
- Navn/mål: Det fuldt kvalificerede typenavn for det plug-in, der udføres.
- Varighed: Den tid, det tog for plug-in'et at blive udført.
- Brugerdefinerede dimensioner:
- Dybde: Den aktuelle dybde af udførelsen i kaldstakken.
- EntityName: Navnet på det objekt, der reageres på af plug-in'en.
- IsolationType: En værdi , der angiver, om plug-in'en udføres i sandkassen:
- 1: Intet
- 2: Sandkasse
- 3: Ekstern
- PluginName: Det brugervenlige navn på plug-in'et.
- PluginType: Navnet på den type plug-in, der udføres.
- PluginVersion: Versionen af det udgivne ekstramodul. Formålet her er at kunne bruge disse oplysninger til fejlfinding af versionsopdateringer.
- Fase: Knyttes til følgende værdier:
- PreValidation = 10
- PreOperation = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- MainOperation = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- PostOperation = 40
- PostOperationDeprecated = 50
- StepName: Navnet på trinnet SDK-meddelelsesbehandling. Det oprettes normalt af værktøjet til registrering af plug-ins ved hjælp af oplysninger om PluginName, PluginType og navnet på handlingen, f.eks. ErrorMessageTest.ThrowException: Oprettelse af firma.
Telemetri inden for din plug-in-kode
Hvis du vil forstå, hvad der sker i din plug-in-kode, kan du inkludere brugerdefineret telemetri fra din plug-in ved hjælp af den Microsoft. Xrm.Sdk.PluginTelemetry.ILogger Interface i din plug-in-kode til at skrive telemetridata direkte til din Application Insights ressource. Flere oplysninger: Skrive telemetri til Application Insights-ressourcen ved hjælp af ILogger (forhåndsversion)
Dataverse SDK-logge
Disse er logge for SDK-handlinger, der udløses som en del af en indgående forespørgsel. De logføres i afhængighedstabellen i Application Insights, da de spores som afhængigheder for den forespørgsel, der skal udføres. De identificeres ud fra typenavnet og starter med SDK. Følgende er en eksempelforespørgsel:
dependencies
| where type startswith "SDK"
| take 10
- Type: Den type SDK-anmodning, der udløses. Af eksempler kan nævnes Retrieve, RetrieveMultiple, FetchXmlToQueryExpression og WhoAmI.
- Navn/mål: Dette er navnet på det objekt, der er målrettet mod af SDK-handlingen.
- Brugerdefinerede dimensioner:
- ClientType: Den type klient, som opkaldet kommer fra. Nogle af de mulige værdier er Web, UCIClient og OutlookFull.
- EntityId: Det entydige id for den enhed, der bruges.
- EntityName: Navnet på den enhed, der bruges.
Undtagelser
Du kan se oplysninger om fejl i plug-in- og SDK-handlinger i Application Insights. Undtagelsestabellen i Application Insights giver kompetence til panelet Fejl. Disse oplysninger om fejl er i overensstemmelse med resten af hændelserne i plug-in- og SDK-kald i slutpunkt til slutpunkt-visningen. Alle tilgængelige oplysninger føjes til kolonner, når det er muligt, og til customDimensions, når der ikke er det nøjagtige kolonneoverensstemmelse.
Du vil se, at nogle af felterne i undtagelsestabellen ikke udfyldes. Dette skyldes, at disse felter kun kan angives, hvis Application Insights SDK bruges til at sende logge fra kilden. Denne funktion indsamler platformstelemetri og skubber den derefter ind Application Insights i henhold til Application Insights-skemaet.
exceptions
| take 10
Denne forespørgsel returnerer alle attributdetaljerne fra undtagelsestabellen.
- problemId/type: Typen af undtagelse.
- outerMessage: Undtagelsesmeddelelsen.
- brugerdefinerede dimensioner:
- clientType: Den type klient, som opkaldet kommer fra. Nogle af de mulige værdier er Web, UCIClient og OutlookFull.
- exceptionSource: Ekstramodulet eller det punkt, hvor undtagelsen blev udløst.
- entityName: Navnet på den enhed, der bruges.
- pluginName: Navnet på det ekstramodul, hvor undtagelsen blev udløst.
Hvis en bruger rapporterer en fejl, kan du bruge bruger-id (Microsoft Entra-ID) til at forstå detaljer fra undtagelsestabellen.
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Objekt-id og objektnavn er tilgængelige i customDimensions i afhængighedstabellen.
dependencies
| where type == "SDK Retrieve"
Ofte stillede spørgsmål
Nedenfor følger nogle ofte stillede spørgsmål vedrørende telemetri for Dataverse.
Hvordan kan jeg finde ud af, om min plug-in-opgradering medførte en forringelse af ydeevnen?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
Plug-in-navnet skal også indeholde versionen for brugerdefinerede plug-ins.
Hvordan udførte API'en før et rapporteret problem baseret på tidspunktet på dagen eller på placeringen? Var API-forringelsen gradvis eller pludselig?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
I dette diagram kan vi se ydelsen af API slutpunkt over en periode i forhold til antallet af forespørgsler, der er foretaget.
Du kan også konfigurere en advarsel baseret på ydeevne i en bestemt API her i Application Insights.
Kan jeg analysere ned om fejl eller fejl på bestemte tidspunkter eller for bestemte brugere, så jeg kan forstå opkaldsstakket?
Når du kigger på Fejl-panelet, får du en oversigt over fejlene i en bestemt tidsperiode. Du kan derefter indsnævre til en bestemt fejl, afhængigt af API-kaldet eller afhængighedstypen, for at se slutpunkt til slutpunkt-visningen.
Kan jeg oprette brugerdefinerede dashboards?
Ja. Du kan oprette brugerdefinerede dashboards med Application Insights.
Kan jeg bestemme ydeevne (svartid) for plug-ins og fejlprocenter i forbindelse med brugen af plug-ins?
Ja. Se følgende eksempelforespørgsel for at finde ud af, hvordan plug-ins præsterer.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Hvorfor har telemetri begrænsning?
Ja. Der er i øjeblikket angivet grundlæggende 429 fejldetaljer.
Kan jeg forstå eksekveringsstier? Sinker opkald fra plug-in'en plug-in'en?
Ja. Du kan få vist alle de meddelelser og plug-ins, der køres for en forespørgsel.
Varigheden af alle meddelelser og udførelse af plug-ins logføres. Hvis det tager længere tid at bruge en plug-in, kan du identificere den pågældende plug-in. Hvis plug-in'en foretager et tilbagekald til Dataverse, logføres varigheden af det pågældende opkald. Der er planlagt flere oplysninger om plug-ins til fremtidig installation.
Alle udgående opkald, der foretages af plug-in'en, logføres automatisk som en afhængighed.
Kan jeg få vist telemetri på en bestemt forespørgsel?
Dataverse returnerer x-ms-service-requestId i headerresponse på alle forespørgsler. Ved hjælp af denne requestId kan du anmode om alle telemetridata.
union *
| where operation_ParentId contains <requestId>