Dogodki telemetrije za Microsoft Dataverse

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)
      

      Application Insights Uporabniški agent CustomDimensions.

  • 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

Application Insights Dataverse dnevniki izvajanja vtičnikov.

  • 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

Application Insights SDK za poizvedbe.

  • 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.

Application Insights tabela izjem.

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.

Application Insights podrobnosti atributov tabele izjem.

Č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"

Application Insights Poizvedba za pridobivanje SDK-ja.

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 

Application Insights Časovni diagram delovanja API-ja.

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.

Application Insights podrobnosti o napakah.

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

Učinkovitost uporabe vtičnikov.

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.

Transakcija od konca do konca.

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>