opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
Podatkovni tok trenutno zagotavlja podatke o uspešnosti, povezane z dohodnimi klici API Dataverse, klici za izvedbo vtičnika Dataverse in klici SDK Dataverse. Zagotavlja tudi podatke o napakah v vtičnikih in operacijah SDK Dataverse.
Dataverse Dohodni klici API
To so klici na API Dataverse. Lahko prihajajo iz poenotenega vmesnika (UCI), podedovanega spletnega odjemalca, odjemalcev po meri, ki uporabljajo SDK, itd. Najdete jih v tabeli Zahteve v aplikaciji Application Insights, ki ima naslednja polja.
Ime: Vrsta zahteve. Te spadajo v dve kategoriji:
- Zahteva spletnega API-ja: Zahteva za končno točko OData v4, ki jo pogosto uporabljajo poenoteni vmesnik in sodobni odjemalci. Ta zahteva se pretvori v operacijo, ki je skupna obema. Spletni API je »ovoj«, ki omogoča programski model RESTful, ampak se po prejemu podatkov v strežniku vse izenači. Ko pride do odgovora, se pretvori v JSON, če je zahteva prišla iz spletnega API-ja.
- Zahteva za organizacijsko storitev: Zahteva za končno točko Organization API, ki jo uporabljajo odjemalci SDK ali starejši spletni odjemalec.
Trajanje: Čas, ki ga je strežnik potreboval za odgovor na zahtevo.
URL: URL, na katerega je bil opravljen klic.
PrilagojeneDimenzije:
Uporabniški agent: Application Insights samodejno izpolni polje uporabniškega agenta z PC , ko se ti dnevniki pošiljajo s strežnika v podatkovnem centru. Application Insights ne dovoli, da preskočite polje uporabnikovega posrednika. Včasih polje uporabnikovega posrednika ni na voljo za izpolnitev. Uporabnikovega posrednika, iz katerega je bil opravljen klic, lahko najdete z naslednjo poizvedbo:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: Berljivo ime operacije za prikaz v pogledih, kot je pogled transakcij od začetka do konca.
Dnevniki izvajanja vtičnika Dataverse
Dnevnike za vtičnike po meri, ki se izvajajo za določeno operacijo, najdete v tabeli Odvisnost. Sledi vzorec poizvedbe:
dependencies
| where type == "Plugin"
| take 100
- Ime/Cilj: Popolnoma kvalificirano ime tipa za vtičnik, ki se izvaja.
- Trajanje: Čas, ki je bil potreben za izvedbo vtičnika.
-
PrilagojeneDimenzije:
- Globina: Trenutna globina izvajanja v skladu klicev.
- EntityName: Ime entitete, na katero vtičnik deluje.
-
IsolationType: Vrednost , ki označuje, ali se vtičnik izvaja v peskovniku:
- 1: Brez
- 2: Preizkusno okolje
- 3: Zunanja
- ImeVtičnika: Uporabniku prijazno ime vtičnika.
- PluginType: Ime vrste vtičnika, ki se izvaja.
- PluginVersion: Različica objavljenega vtičnika. Namen tega je, da bi te podatke lahko uporabili za odpravljanje težav s posodobitvami različic.
-
Faza: Preslika na naslednje vrednosti:
- Predpreverjanje veljavnosti = 10
- Predobratovanje = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- MainOperation = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- Postoperation = 40
- PostOperationDeprecated = 50
- StepName: Ime koraka obdelave sporočil SDK. To običajno ustvari orodje za registracijo vtičnikov z uporabo informacij o Ime vtičnika, Vrsta vtičnika in imenu operacije – na primer ErrorMessageTest.ThrowException: Creation of account.
Telemetrija znotraj vaše vtične kode
Da bi razumeli, kaj se dogaja znotraj vaše vtične kode, lahko znotraj vtičnika vključite telemetrijo po meri, z uporabo vmesnika Microsoft.Xrm.Sdk.PluginTelemetry.ILogger v svoji vtični kodi za pisanje telemetričnih podatkov neposredno na vaš vir Application Insights. Več informacij: Pisanje telemetrije v vir Application Insights prek storitve ILogger (predogled)
Dnevniki SDK Dataverse
To so dnevniki za operacije SDK, ki se sprožijo kot del dohodne zahteve. Ti so zabeleženi v tabeli Odvisnost v Application Insights, ker jim sledimo kot odvisnostim za izvedbo zahteve. Prepoznamo jih po imenu vrste, ki se začne z SDK. Sledi vzorec poizvedbe:
dependencies
| where type startswith "SDK"
| take 10
- Vrsta: Vrsta sprožene zahteve SDK. Primeri vključujejo Retrieve, RetrieveMultiple, FetchXmlToQueryExpression in WhoAmI.
- Ime/Cilj: To je ime entitete, na katero cilja operacija SDK.
-
PrilagojeneDimenzije:
- Vrsta odjemalca: Vrsta odjemalca, od katerega prihaja klic. Nekatere možne vrednosti so Web, UCIClient in OutlookFull.
- EntityId: Enolični identifikator uporabljene entitete.
- EntityName: Ime uporabljene entitete.
Izjeme
Podrobnosti o napakah v operacijah vtičnikov in operacijah SDK boste videli v Application Insights. Tabela Izjeme v Application Insights poganja ploščo Neuspehi. Te podrobnosti o napakah so povezane z ostalimi dogodki v vtičnikih in klicih SDK v celovitem prikazu. Vse razpoložljive informacije se dodajo v stolpce, kadar je to mogoče, in v customDimensions, ko ni natančnega ujemanja stolpcev.
Opazili boste, da nekatera polja v tabeli Izjeme niso izpolnjena. To je zato, ker je ta polja mogoče nastaviti le, če se za oddajanje dnevnikov iz vira uporablja SDK storitve Application Insights. Ta funkcija zbira telemetrijo platforme in jo nato potisne v Application Insights v skladu s shemo Application Insights.
exceptions
| take 10
Ta poizvedba bo iz tabele Izjeme vrnila vse podrobnosti o atributih.
- problemId/type: Vrsta izjeme.
- outerMessage: Sporočilo o izjemi.
-
prilagojene dimenzije:
- clientType: Vrsta odjemalca, od katerega prihaja klic. Nekatere možne vrednosti so Web, UCIClient in OutlookFull.
- exceptionSource: Vtičnik ali točka, kjer je bila sprožena izjema.
- entityName: Ime uporabljene entitete.
- pluginName: Ime vtičnika, kjer je bila sprožena izjema.
Če uporabnik sporoči napako, lahko z ID-jem uporabnika (Microsoft Entra ID ID) razumete podrobnosti iz tabele izjem .
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
ID entitete in ime entitete sta na voljo v tabelah customDimensions in Odvisnost.
dependencies
| where type == "SDK Retrieve"
Pogosta vprašanja
Sledi nekaj pogostih vprašanj, povezanih s telemetričnimi dogodki za Dataverse.
Kako lahko ugotovim, ali je zaradi nadgradnje vtičnika učinkovitost delovanja slabša?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
Ime vtičnika naj vsebuje tudi različico vtičnikov po meri.
Kako je API deloval pred prijavljeno težavo glede na čas dneva ali lokacijo? Je bilo poslabšanje delovanja API-ja postopno ali nenadno?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
Na tem grafikonu lahko vidimo delovanje končne točke API-ja v določenem časovnem obdobju glede na število podanih zahtev.
Znotraj Application Insights lahko tudi nastavite opozorilo na podlagi delovanja določenega API-ja.
Ali lahko prikažem napake ali neuspehe ob določenem času ali za določene uporabnike, da bodo razumeli sklad klicev?
Plošča Neuspehi nam ponuja pregled napak v določenem časovnem obdobju. Potem lahko na podlagi klica API ali vrste odvisnosti zožite izbor na določeno napako, da si ogledate celovit prikaz.
Lahko ustvarim nadzorne plošče po meri?
Da. Z Application Insights lahko ustvarite nadzorne plošče po meri.
Ali lahko v času najintenzivnejše uporabe določim učinkovitost vtičnika (odzivni čas) in stopnje napak?
Da. Oglejte si naslednjo vzorčno poizvedbo, da boste razumeli, kako delujejo vaši vtičniki.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Bo ta telemetrija omejena?
Da. Trenutno so na voljo osnovne podrobnosti o napaki 429.
Ali lahko razumem poti izvedbe? Ali klici, ki jih opravi vtičnik, upočasnjujejo vtičnik?
Da. Ogledate si lahko vsa sporočila in vtičnike, ki se izvedejo za katero koli zahtevo.
Zabeleži se trajanje izvajanja vseh sporočil in vtičnikov. Če kateri koli vtičnik potrebuje več časa, ga lahko identificirate. Če vtičnik opravlja povratni klic v Dataverse, je trajanje tega klica zabeleženo. Več informacij o vtičnikih je načrtovanih v prihodnji nadgradnji.
Vsak odhodni klic vtičnika se samodejno zabeleži kot odvisnost.
Ali si lahko ogledam telemetrijo za določeno zahtevo?
Dataverse v odgovoru v glavi na vse zahteve vrne x-ms-service-requestId. Z uporabo tega requestId-ja lahko poizvedujete za vso telemetrijo.
union *
| where operation_ParentId contains <requestId>