Microsoft Dataverse’i telemeetriasündmused
Andmevoog pakub praegu jõudlusandmeid, mis on seotud Dataverse API sissetulevate kõnede, Dataverse lisandmooduli käivitamiskutsete ja Dataverse SDK-kõnedega. Samuti annab see andmeid lisandmooduli ja Dataverse SDK toimingute nurjumise korral.
Dataverse API sissetulevad kõned
Need kõned tehakse Dataverse API-sse. Need võivad olla Unified Interface (UCI), pärand-veebikliendist, SDK-d kasutavad kohandatud klientrakendused jne. Need on toodud taotluste tabel Application Insights, milles on järgmised väljad.
Nimi: taotluse liik. Need kategooriad kuuluvad kahte kategooriasse:
- Web API taotlus: taotlus OData v4 lõpp-punktile, mida Unified Interface ja kaasaegsed kliendid tavaliselt kasutavad. See päring võetakse operatsiooniks, mis on mõlemale levinud. Web API on "ümbris", mis võimaldab RESTful programmeerimismudelit, kuid pärast andmete saamist muutub kõik serveris samaks. Kui vastus tagastatakse, teisendatakse see JSON-iks, kui päring pärineb Web API-st.
- Organisatsiooni teenusetaotlus: taotlus organisatsiooni API lõpp-punktile, mida kasutavad SDK kliendid või pärandveebiklient.
Kestus: aeg, mis serveril kulus päringule vastamiseks.
URL: URL, millele helistati.
CustomDimensions:
UserAgent:täidab kasutajaagendi välja automaatselt arvutiga Application Insights , kuna need logid lükatakse andmekeskuse serverist välja. Application Insights ei luba kasutajaagendi välja alistamist. Mõnikord pole kasutajaagendi väli asustada saadaval. Kasutajaagendit, kust kõne tehti, saab vaadata järgmise päringu abil.
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: toimingu loetav nimi, mis kuvatakse vaadetes, näiteks tehingutevahelises otsavaates.
Dataverse Kõik lisandmooduli jälituslogid
Need konkreetse toimingu jaoks töötavad kohandatud lisandmoodulid logitakse sõltuvus tabelist. Järgmine on näidispäring:
dependencies
| where type == "Plugin"
| take 100
- Nimi/sihtmärk: täidetava lisandmooduli täielikult kvalifitseeritud tüübinimi.
- Kestus: aeg, mis kulus pistikprogrammi käivitamiseks.
- CustomDimensions:
- Sügavus: praegune Täitmise sügavus kõnepinus.
- Oleminimi: selle olemi nimi, millega lisandmoodul tegutseb.
- IsolationType: väärtus , mis näitab, kas lisandmoodul käivitatakse liivakastis.
- 1: Pole
- 2: Liivakast
- 3: Väline
- PluginName: pistikprogrammi kasutajasõbralik nimi.
- PluginType: käivitatava pistikprogrammi tüübi nimi.
- PluginVersion: avaldatud pistikprogrammi versioon. Siin on plaanis kasutada seda teavet versioonivärskenduste tõrkeotsinguks.
- Etapp: kaardistab järgmised väärtused:
- Enne valideerimist = 10
- Enne tööd = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- MainOperation = 30
- PreOperationBeforeExternalPlugins = 35
- PreOperationAfterExternalPlugins = 45
- PostOperation = 40
- PostOperationDeprecated = 50
- StepName: SDK sõnumitöötluse samm nimi. Tavaliselt genereerib selle lisandmooduli registreerimise tööriist, kasutades teavet PluginName, PluginType ja tegevused, näiteks ErrorMessageTest.ThrowException: Konto loomine.
Telemeetria lisandmooduli koodis
Lisandmooduli koodis toimuva mõistmiseks võite lisandmoodulisse lisada kohandatud telemeetria, kasutades seda Microsoft. Xrm.Sdk.PluginTelemetry.ILogger Liides teie pistikprogrammi koodis telemeetriaandmete kirjutamiseks otse teie Application Insights ressurssi. Lisateave: Telemeetria kirjutamine ressursile Application Insights kasutades ILoggeri abi (eelvaade)
Dataverse SDK logid
Need on SDK toimingute logid, mis käivitatakse sissetuleva päringu osana. Need logitakse sõltuvus tabelisse, kuna neid jälgitakse Application Insights käivitatava päringu sõltuvustena. Need on tuvastatud tüübi nime järgi, alustades SDK. Järgmine on näidispäring:
dependencies
| where type startswith "SDK"
| take 10
- Tüüp: käivitatud SDK-taotluse tüüp. Näited on Too, RetrieveMultiple, FetchXmlToQueryExpression ja WhoAmI.
- Nimi/sihtmärk: see on SDK toiminguga sihitava üksuse nimi.
- CustomDimensions:
- ClientType: kliendi tüüp, kellelt kõne tuleb. Mõned võimalikud väärtused on veeb, UCIKlient ja OutlookFull.
- EntityId: kasutatava olemi kordumatu identifikaator.
- EntityName: kasutatava olemi nimi.
Erandid
Näete lisandmooduli ja SDK toimingute nurjumise Application Insights üksikasju. Erandite tabel, mis on esitatud Application Insights volitused Nurjumised paneelil. Need nurjumise üksikasjad korrelatsioonis lisandmooduli ülejäänud sündmustega ja SDK kõned lõpp-vaates. Kui veerud pole täpseid vasteid, lisatakse kogu saadav teave veergudesse võimalusel ja kohandatud atribuutidesse.
Märkate, et mõnda eranditabeli välja ei asustada. Põhjus on selles, et neid välju saab seada ainult Application Insights juhul, kui SDK-d kasutatakse allikast logide edumiseks. See funktsioon kogub platvormi telemeetriat ja seejärel Application Insights tõukab selle skeemi kohaselt Application Insights sisse.
exceptions
| take 10
See päring tagastab eranditabelist kõik atribuudi üksikasjad.
- problemId/type: erandi tüüp.
- outerMessage: erandi sõnum.
- customDimensions:
- clientType: kliendi tüüp, kellelt kõne tuleb. Mõned võimalikud väärtused on veeb, UCIKlient ja OutlookFull.
- exceptionSource: pistikprogramm või punkt, kuhu erand visati.
- entityName: kasutatava olemi nimi.
- pluginName: selle pistikprogrammi nimi, kuhu erand visati.
Kui kasutaja teatab tõrkest, saate kasutada kasutaja ID-d (Microsoft Entra ID ID), et mõista erandite tabeli üksikasju .
exceptions
| where user_Id == '12345678-68cd-4e73-908f-126342b36315'
Olemi ID ja olemi nimi on saadaval customDimensions tabelis sõltuvustabelis.
dependencies
| where type == "SDK Retrieve"
Korduma kippuvad küsimused (KKK)
Järgnevad on mõned korduma kippuvad küsimused, mis on seotud telemeetriasündmustega Dataverse.
Kuidas teha kindlaks, kas minu lisandmooduli täiendus tekitas jõudluselendumise?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
Lisandmooduli nimi peaks sisaldama ka kohandatud lisandmoodulite versiooni.
Kuidas API teostas enne esitatud probleemi, võttes aluseks kellaaja või asukoha? Kas API oli ülekeeruline ülekeeruline ja ülekeeruline?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
Selles diagrammis võime näha API lõpp-punkti jõudlust teatud aja jooksul, võrreldes tehtud taotluste arvuga.
Siin saate seadistada ka hoiatusteate, mis põhineb konkreetse API Application Insights toimivusel.
Kas ma saan teatud aegadel või kindlate kasutajate jaoks süvitsi minna tõrgete või tõrgetega, et kõnepinu mõista?
Paneeli Nurjumised ülevaade antud ajavahemiku nurjumistest. Seejärel saate lõppvaate kuvamiseks piiritleda API kõne või sõltuvustüübi põhjal konkreetse nurjumise.
Kas ma saan luua kohandatud armatuurlaudu?
Jah. Saate luua kohandatud armatuurlaua rakendusega Application Insights.
Kas saan määratleda lisandmooduli kasutusjõudluse (reageerimisaeg) ja nurjumismäärad mäluruumi kasutamise ajal?
Jah. Vaadake järgmist näidispäringut, et teada saada, kuidas teie lisandmoodulid teevad.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Kas see telemeetria lekib?
Jah. Praegu on antud 429 tõrke üksikasjad.
Kas ma saan aru täitmisteedest? Kas lisandmooduli tehtud kõned aeglustavad lisandmoodulit?
Jah. Saate vaadata kõiki mis tahes päringu puhul teostatud sõnumeid ja lisandmooduleid.
Kogu sõnumi ja lisandmooduli käivitamise kestus logitakse. Kui mõni lisandmoodul võtab rohkem aega, saate selle lisandmooduli tuvastada. Kui lisandmoodul helistab tagasi, siis Dataverse logitakse selle kõne kestus. Lisateavet lisandmoodulite kohta plaanitakse edaspidiseks juurutamiseks.
Kõik lisandmooduli tehtud väljaminevad kõned logitakse automaatselt sõltuvusse.
Kas konkreetse taotluse telemeetriat saab vaadata?
Dataverse tagastab kõigi päringute päises vastuses väärtuse x-ms-service-requestId. Kasutades requestId abil saate esitada päringuid kõigi telemeetria kohta.
union *
| where operation_ParentId contains <requestId>