Telemetrijas notikumi platformai Microsoft Dataverse
Datu straume pašlaik nodrošina veiktspējas datus saistībā ar Dataverse API ienākošajiem zvaniem, Dataverse spraudņa izpildes izsaukumiem un Dataverse SDK izsaukumiem. Turklāt tiek sniegti dati par spraudņu un Dataverse SDK operāciju kļūmēm.
Dataverse API ienākošie izsaukumi
Šie zvani tiek veikti uz Dataverse API. Tie var būt no vienotā interfeisa (UCI) — mantotā tīmekļa klienta, pielāgotajiem klientiem, kas izmanto SDK, utt. Tos var atrast pieprasījumu tabulā, kurā ir šādi Application Insights lauki.
Nosaukums: pieprasījuma veids. Tie ir iedalīti divās kategorijās:
- Tīmekļa API pieprasījums: pieprasījums OData v4 galapunktam, ko parasti izmanto vienotais interfeiss un mūsdienu klienti. Šis pieprasījums tiek pārvērsts par operāciju, kas ir kopīga abiem. Tīmekļa API ir "ietinējs", lai iespējotu RESTful programmēšanas modeli, bet pēc datu saņemšanas viss serverī kļūst vienāds. Atgriežot atbildi, tā tiek pārvērsta par JSON, ja pieprasījums saņemta no tīmekļa API.
- Organizācijas pakalpojuma pieprasījums: pieprasījums organizācijas API galapunktam, ko izmanto SDK klienti vai mantotais tīmekļa klients.
Ilgums: Laiks, kas serverim bija nepieciešams, lai atbildētu uz pieprasījumu.
URL: vietrādis URL, uz kuru tika veikts zvans.
Pielāgoti izmēri:
UserAgent:automātiski aizpilda lietotāja aģenta lauku ar Application Insights datoru , jo šie žurnāli tiek izstumti no servera datu centrā. Application Insights neļauj ignorēt lietotāja aģenta lauku. Dažkārt lietotāja aģenta lauks nav pieejams aizpildīšanai. Lietotāja aģents, no kura tika veikta saruna, var tikt skatīts, izmantojot šādu vaicājumu:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: lasāms operācijas nosaukums, kas jārāda skatos, piemēram, transakcijas beigu skatā.
Dataverse spraudņu izpildes ieraksti
Šie pielāgotu spraudņu, kas darbojas attiecīgajā operācijā, žurnālfaili ir atrodami atkarības tabulā. Šajā laukā ir iekļauts vaicājuma paraugs:
dependencies
| where type == "Plugin"
| take 100
- Nosaukums/mērķis: izpildītā spraudņa pilnais tipa nosaukums.
- Ilgums: laiks, kas bija nepieciešams, lai spraudnis tiktu izpildīts.
- Pielāgoti izmēri:
- Dziļums: pašreizējais izpildes dziļums zvanu stekā.
- EntityName: tās entītijas nosaukums, ar kuru spraudnis rīkojas.
- IsolationType: vērtība , kas norāda, vai spraudnis tiek izpildīts smilškastē:
- 1: Neviens
- 2: Smilškaste
- 3: Ārējais
- Spraudņa nosaukums: lietotājam draudzīgs spraudņa nosaukums.
- PluginType: izpildāmā spraudņa veida nosaukums.
- PluginVersion: publicētā spraudņa versija. Šīs darbības mērķis ir izmantot šo informāciju, lai novērstu versiju atjauninājumu problēmas.
- Posms: Kartes uz šādām vērtībām:
- PreValidation = 10
- PreOperation = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- MainOperation = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- PostOperation = 40
- PostOperationDeprecated = 50
- StepName: SDK ziņojumu apstrādes solis nosaukums. To parasti ģenerē spraudņa reģistrēšanas rīks, izmantojot informāciju par PluginName, PluginType un operācijas nosaukumu, piemēram, ErrorMessageTest.ThrowException: Konta izveide.
Telemetrija spraudņa kodā
Lai saprastu, kas notiek spraudņa kodā, spraudnī varat iekļaut pielāgotu telemetriju, izmantojot šādu iespēju Microsoft. Xrm.Sdk.PluginTelemetry.ILogger interfeiss spraudņa kodā, lai rakstītu telemetrijas datus tieši savā Application Insights resursā. Papildinformācija: Telemetrijas rakstīšana Application Insights resursam, izmantojot ILogger (priekšskatījums)
Dataverse SDK žurnāli
Šie ir SDK operāciju žurnāli, kas tiek aktivizēti kā ienākoša pieprasījuma daļa. Tās tiek reģistrētas atkarību tabulā programmā Application Insights, jo tās tiek izsekotas kā pieprasījuma izpildes atkarības. Tos identificē tipa nosaukums, sākot ar SDK. Šajā laukā ir iekļauts vaicājuma paraugs:
dependencies
| where type startswith "SDK"
| take 10
- Veids: aktivizētā SDK pieprasījuma veids. Piemēram, ir šādi: Retrieve, RetrieveMultiple, FetchXmlToQueryExpression un WhoAmI.
- Nosaukums/mērķis: tās entītijas nosaukums, uz kuru attiecas SDK operācija.
- Pielāgoti izmēri:
- ClientType: klienta veids, no kura tiek saņemts zvans. Dažas iespējamās vērtības ir Tīmeklis, UCIClient un OutlookFull.
- EntityId: izmantotās entītijas unikālais identifikators.
- EntityName: izmantotās entītijas nosaukums.
Izņēmumi
Tiks sniegta detalizēta informācija par spraudņu un SDK operāciju kļūmēm programmā Application Insights. Izņēmumu tabula pilnvaro Application Insights paneli Kļūmes. Šī kļūmes informācija atbilst pārējiem spraudņa un SDK izsaukumu notikumiem skatā no sākuma līdz beigām. Visa pieejamā informācija tiek pievienota kolonnām, ja iespējams, un customDimensions, ja nav precīzas kolonnas atbilstības.
Jūs pamanīsit, ka daži no izņēmumu tabulas laukiem netiek aizpildīti. Tas ir tāpēc, ka šos laukus var iestatīt tikai tad, ja Application Insights SDK tiek izmantots žurnālu ģenerēšanai no avota. Šis līdzeklis apkopo platformas telemetriju un pēc tam nospiež to Application Insights atbilstoši Application Insights shēmai.
exceptions
| take 10
Šis vaicājums atgriezīs visu atribūtu detalizēto informāciju no izņēmumu tabulas.
- problemId/type: izņēmuma veids.
- outerMessage: Izņēmuma ziņojums.
- pielāgoti izmēri:
- clientType: klienta veids, no kura tiek saņemts zvans. Dažas iespējamās vērtības ir Tīmeklis, UCIClient un OutlookFull.
- exceptionSource: spraudnis vai punkts, kurā tika izmests izņēmums.
- entityName: izmantotās entītijas nosaukums.
- pluginName: tā spraudņa nosaukums, kurā tika izmests izņēmums.
Ja lietotājs ziņo par kļūdu, varat izmantot lietotāja ID (Microsoft Entra ID ID), lai saprastu detalizētu informāciju no izņēmumu tabulas .
exceptions
| where user_Id == '12345678-68cd-4e73-908f-126342b36315'
Entītijas ID un entītijas nosaukums ir pieejami customDimensions tabulā atkarības.
dependencies
| where type == "SDK Retrieve"
Bieži uzdotie jautājumi (BUJ)
Tālāk ir daži bieži uzdotie jautājumi par telemetrijas notikumiem lietojumprogrammā Dataverse.
Kā noteikt, vai mans spraudņa atjauninājums izraisa veiktspējas pasliktināšanos?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
Spraudņa nosaukumā jābūt iekļautai arī pielāgotu spraudņu versijai.
Kā API tika izpildīts pirms ziņotās problēmas, pamatojoties uz dienas laiku vai atrašanās vietu? Vai API pasliktināšanās bija pakāpeniska vai pēkšņa?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
Šajā diagrammā mēs redzam API galapunkta veiktspēju laika periodā salīdzinājumā ar pašlaik veiktajiem pieprasījumiem.
Varat arī iestatīt brīdinājumu, pamatojoties uz konkrēta API veiktspēju šeit, programmā Application Insights.
Vai varu rakties par kļūdām vai kļūmēm konkrētos laikos vai noteiktiem lietotājiem, lai ļautu izprast izsaukumu kaudzi?
Skatot paneli Kļūmes, tiek sniegts pārskats par kļūmēm attiecīgajā laika periodā. Pēc tam varat sašaurināt līdz noteiktai kļūmei, pamatojoties uz API izsaukumu vai atkarības tipu, lai redzētu skatu no sākuma līdz beigām.
Vai varu izveidot pielāgotus informācijas paneļus?
Jā. Varat izveidot pielāgotus informācijas paneļus var izveidot, izmantojot Application Insights.
Vai es varu noteikt spraudņa lietojuma veiktspēju (atbildes laiku) un kļūmju rādītājus slaikā lietojuma laikā?
Jā. Skatiet šo vaicājuma paraugu, lai saprastu spraudņu darbību.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Vai šai telemetrijai būs ierobežojumi?
Jā. Pašlaik ir sniegta detalizēta informācija par 429 kļūdām.
Vai varu saprast izpildes ceļus? Vai spraudņa veiktie zvani tiek veikti, palēninot spraudni?
Jā. Varat skatīt visus ziņojumus un spraudņus, kas tiek izpildīti jebkuram pieprasījumam.
Tiek reģistrēts visu ziņojumu un spraudņu izpildes ilgums. Ja kādam spraudņam nepieciešams vairāk laika, varat identificēt šo spraudni. Ja spraudņam tiek veikta Dataverse atzvanīšana, tiek reģistrēts sarunas ilgums. Papildinformāciju par spraudņiem ir plānots izvietot vēlāk.
Jebkurš no spraudņa veiktajiem izejošajiem zvaniem tiek automātiski reģistrēts kā atkarība.
Vai noteiktam pieprasījumam var skatīt telemetriju?
Dataverse galvenes atbildē atgriež x-ms-service-requestId visiem pieprasījumiem. Izmantojot šo requestId, var izveidot vaicājumu par visu telemetriju.
union *
| where operation_ParentId contains <requestId>