Dijeli putem


Događaji telemetrije za Microsoft Dataverse

Tok podataka trenutno pruža podatke o izvedbi koji se odnose na dolazne pozive Dataverse API-ju, pozive za izvršenje Dataverse dodatku i pozive Dataverse SDK-u. Također pruža podatke o pogreškama u dodatku i radnjama Dataverse SDK-a.

Dolazni pozivi Dataverse API-ju

To su pozivi upućeni Dataverse API-ju. Mogu dolaziti iz objedinjenog sučelja (UCI), naslijeđenog web-klijenta, prilagođenih klijenata koji se koriste SDK-om itd. Mogu se naći u tablici zahtjevi usluge Application Insights. Tablica sadržava sljedeća polja.

  • Naziv: vrsta zahtjeva. Dijele se u dvije kategorije:

    • Zahtjev za web-API: zahtjev za krajnju točku OData v4 koji obično koriste objedinjeno sučelje i moderni klijenti. Ovaj se zahtjev pretvara u operaciju koja je zajednička objema stavkama. API na webu je "omotač" koji omogućuje RESTful model programiranja, no nakon primanja podataka sve postaje isto unutar poslužitelja. Kada se odgovor vrati, pretvara se u JSON ako je zahtjev stigao iz API-ja na webu.
    • Zahtjev za uslugu tvrtke ili ustanove: zahtjev za krajnju točku API-ja tvrtke ili ustanove koju koriste klijenti SDK-a ili naslijeđeni web-klijent.
  • Trajanje: Vrijeme koje je poslužitelju trebalo da odgovori na zahtjev.

  • URL: URL na koji je poziv upućen.

  • Prilagođene dimenzije:

    • UserAgent: Application Insights automatski popunjava polje korisničkog agenta s računalom dok se ti zapisi prosljeđuju s poslužitelja u podatkovnom centru. Application Insights ne dopušta nadjačavanje polja agenta korisnika. Polje agenta korisnika ponekad neće biti dostupno za popunjavanje. Agent korisnik iz kojeg je poziv upućen može se pregledati pomoću sljedećeg upita:

      requests
      | summarize count() by tostring(customDimensions.userAgent)
      

      Application Insights UserAgent CustomDimensions.

  • Operation_Name: čitljiv naziv operacije za prikaz u prikazima, kao što je prikaz transakcije od kraja do kraja.

Zapisnici izvršenja Dataverse dodatka

Ovi zapisnici za prilagođene dodatke koji se izvode za određenu operaciju nalaze se u tablici zavisnost. U nastavku je naveden primjer upita:

dependencies
| where type == "Plugin"
| take 100

Application Insights Dataverse zapisnici o izvršavanju dodataka.

  • Naziv/cilj: Potpuno kvalificirani naziv tipa za dodatak koji se izvršava.
  • Trajanje: Vrijeme potrebno za izvršavanje dodatka.
  • Prilagođene dimenzije:
    • Dubina: trenutna dubina izvršenja u snopu poziva.
    • EntityName: naziv entiteta na koji plugin djeluje.
    • IsolationType: vrijednost koja označava izvršava li se dodatak u memoriji za testiranje:
      • 1: Nema
      • 2: Sigurnosna ograda
      • 3: Vanjska
    • PluginName: Naziv dodatka prilagođen korisniku.
    • PluginType: naziv vrste dodatka koji se izvršava.
    • PluginVersion: Verzija objavljenog dodatka. Ovime se željelo omogućiti korištenje ovih podataka za rješavanja problema s ažuriranjima verzije.
    • Faza: mapira se na sljedeće vrijednosti:
      • Prethodna provjera = 10
      • Predoperacija = 20
      • PreOperationBeforeExternalPlugins = 15
      • PreOperationAfterExternalPlugins = 25
      • MainOperation = 30
      • PostOperationBeforeExternalPlugins = 35
      • PostOperationAfterExternalPlugins = 45
      • PostOperacija = 40
      • PostOperationDeprecated = 50
    • StepName: naziv koraka obrade poruke SDK-a. To uglavnom generira alat za registraciju dodatka pomoću informacija o vrijednostima PluginName, PluginType i nazivu operacije za instancu ErrorMessageTest.ThrowException: Creation of account.

Telemetrija unutar koda vašeg dodatka

Kako biste razumjeli što se događa unutar koda vašeg dodatka, možete uključiti prilagođenu telemetriju iz svog dodatka tako da upotrijebite sučelje Microsoft.Xrm.Sdk.PluginTelemetry.ILogger u kodu svog dodatka za pisanje telemetrijskih podataka izravno u vaš resurs usluge Application Insights. Više informacija: Zapisivanje telemetrije na vlastiti Application Insights resurs uz ILogger (pretpregled)

Zapisnici Dataverse SDK-a

To su zapisnici za SDK operacije pokrenute kao dio dolaznog zahtjeva. Prijavljuju se u tablicu zavisnost u usluzi Application Insights jer se prate kao zavisnosti koje će zahtjev izvršiti. Identificiraju se prema imenu tipa koji počinje sa SDK. U nastavku je naveden primjer upita:

dependencies
| where type startswith "SDK"
| take 10

Application Insights upit SDK.

  • Vrsta: Vrsta aktiviranog zahtjeva SDK-a. Primjeri uključuju Retrieve, RetrieveMultiple, FetchXmlToQueryExpression i WhoAmI.
  • Naziv/cilj: ovo je naziv entiteta koji cilja operacija SDK-a.
  • Prilagođene dimenzije:
    • ClientType: vrsta klijenta s kojeg poziv dolazi. Neke moguće vrijednosti su Web, UCIClient i OutlookFull.
    • EntityId: jedinstveni identifikator subjekta koji se koristi.
    • EntityName: naziv entiteta koji se koristi.

Iznimke

Pojedinosti pogrešaka dodatka i SDK operacija vidljivi su u usluzi Application Insights. Tablica iznimke u usluzi Application Insights omogućuje panel Neuspjesi. Te pojedinosti o pogreškama su u korelaciji s ostalim događajima u dodatku i pozivima SDK-u u sveobuhvatnom prikazu. Sve dostupne informacije dodaju se u stupce kad je to moguće, kao i u polje customDimensions kad nema točnog podudaranja stupca.

Primijetit ćete da neka polja u tablici iznimke nisu popunjena. Razlog tome je to što se ta polja mogu postaviti samo ako se SDK usluge Application Insights koristi za emitiranje zapisnika iz izvora. Ova značajka prikuplja telemetriju platforme, a zatim je prosljeđuje u uslugu Application Insights u skladu sa shemom usluge Application Insights.

Application Insights tablica iznimaka.

exceptions
| take 10

Ovaj upit vratit će sve pojedinosti o atributima iz tablice iznimka.

  • problemId/type: vrsta iznimke.
  • outerMessage: poruka o iznimci.
  • prilagođene dimenzije:
    • clientType: vrsta klijenta iz kojeg poziv dolazi. Neke moguće vrijednosti su Web, UCIClient i OutlookFull.
    • exceptionSource: dodatak ili točka na kojoj je iznimka bačena.
    • entityName: naziv entiteta koji se koristi.
    • pluginName: Naziv dodatka u koji je izbačena iznimka.

Application Insights Pojedinosti o atributu tablice iznimaka.

Ako korisnik prijavi pogrešku, možete upotrijebiti korisnički ID (Microsoft Entra ID ID-a) da biste razumjeli pojedinosti iz tablice iznimaka .

exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'

ID entiteta i naziv entiteta dostupni su u polju customDimensions tablice zavisnost.

dependencies
| where type == "SDK Retrieve"

Application Insights Upit za dohvaćanje SDK-a.

Često postavljana pitanja (FAQ)

U nastavku su navedena neka od često postavljanih pitanja u vezi s telemetrijskim događajima za platformu Dataverse.

Kako mogu utvrditi je li nadogradnja dodatka prouzročila pogoršanje performansi?

dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name

Naziv dodatka trebao bi sadržavati i verziju kada su u pitanju prilagođeni dodaci.

Kakva je bila izvedba API-ja prije prijavljenog problema na temelju doba dana ili lokacije? Je li degradacija API-ja bila postupna ili iznenadna?

requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart 

Application Insights Grafikon vremena performansi API-ja.

Na tom grafikonu možemo vidjeti izvedbu krajnje točke API-ja tijekom određenog vremenskog razdoblja u odnosu na broj podnesenih zahtjeva.

Također možete postaviti upozorenje na temelju izvedbe određenog API-ja ovdje unutar usluge Application Insights.

Mogu li provesti pretraživanje kroz razine naniže za pogreške ili neuspjehe u određeno vrijeme ili za određene korisnike za potrebe razumijevanja stoga poziva?

Na ploči Neuspjesi prikazan je pregled kvarova u određenom vremenskom razdoblju. Pregled potom možete suziti na određeni neuspjeh temeljen na pozivu API-ju ili na vrste zavisnosti da biste vidjeli sveobuhvatni prikaz.

Application Insights detalji o kvarovima.

Mogu li izraditi prilagođene nadzorne ploče?

Da. Možete izraditi prilagođene nadzorne ploče pomoću usluge Application Insights.

Mogu li odrediti izvedbu upotrebe dodatka (vrijeme odziva) i stope neuspjeha tijekom vršne upotrebe?

Da. Pogledajte primjer upita naveden u nastavku da biste razumjeli izvedbu svojih dodataka.

dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart

Performanse korištenja dodataka.

Hoće li ova telemetrija imati ograničavanje?

Da. Trenutno se navode osnovne pojedinosti o pogrešci 429.

Mogu li razumjeti putove izvršenja? Usporavaju li dodatak pozivi koje dodatak upućuje?

Da. Možete pregledati sve poruke i dodatke koji se izvršavaju za bilo koji zahtjev.

Evidentira se trajanje izvršavanja svih poruka i dodataka. Ako bilo kojem dodatku treba više vremena, možete ga identificirati. Ako dodatak upućuje povratni poziv platformi Dataverse, bilježi se trajanje tog poziva. Više informacija o dodacima planirano je za buduće uvođenje.

Svaki odlazni poziv koji dodatak uputi automatski će se evidentirati kao zavisnost.

Transakcija od kraja do kraja.

Mogu li pogledati telemetriju za određeni zahtjev?

Dataverse vraća x-ms-service-requestId u odgovoru zaglavlja na sve zahtjeve. Koristeći ovaj requestId možete postaviti upit za svu telemetriju.

union *
| where operation_ParentId contains <requestId>