A Microsoft Dataverse telemetria-eseményei
Az adatfolyam jelenleg az Dataverse API bejövő hívásaihoz, a Dataverse beépülő modulok végrehajtási hívásaihoz és az Dataverse SDK-hívásokhoz kapcsolódó teljesítményadatokat szolgáltat. A plug-in és Dataverse-SDK műveletek hibáira vonatkozó adatokat is szolgáltat.
Bejövő Dataverse-API hívások
Ezek az Dataverse-API-hoz intézett hívások. Ezek lehetnek az egységesített interfész (UCI), a régi webes ügyfél, az SDK-t használó egyéni ügyfelek stb. Ezek a következő mezőkkel rendelkező kérelemtábláibanApplication Insights találhatók.
Név: A kérelem típusa. Ezek két kategóriába sorolhatók:
- Web API-kérelem: Az OData v4 végpontra irányuló kérés, amelyet az egységesített felület és a modern ügyfelek általánosan használnak. Ez a kérés egy olyan műveletté alakul át, amely mindkettőjük esetén közös. A webes API egy „burkolat” a RESTful programozási modell lehetővé tételére, de az adatok fogadása után minden ugyanolyan lesz a szerveren belül. A válasz visszaküldésekor a válasz JSON-ba kerül átalakításra, ha a kérés a webes API-tól érkezett.
- Szervezeti szolgáltatáskérés: Az SDK-ügyfelek vagy az örökölt webes ügyfél által használt végpont szervezeti API-hoz intézett kérés.
Időtartam: Az az időtartam, amely alatt a kiszolgáló válaszolt a kérésre.
Url: Az URL, amelyre a hívás irányult.
CustomDimensions:
UserAgent: az Application Insights automatikusan kitölti a felhasználói ügynök mezőt a PC-vel, mivel ezeket a naplókat egy adatközpontban lévő kiszolgálóról tolják. Az Application Insights nem engedi a felhasználói ügynök mező felülbírálását. Előfordul, hogy a felhasználói ügynök mezőt nem lehet kitölteni. A felhasználói ügynök, ahonnan a hívás érkezett, a következő lekérdezéssel tekinthető meg:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: A művelet olvasható neve, amelyet a nézeteken, például a végponttól végpontig tranzakció nézetben kell megjeleníteni.
Dataverse plug-in végrehajtási naplók
Az adott művelethez futó egyéni beépülő modulok naplói a függőségi táblázatban találhatók. Az alábbiakban egy minta lekérdezés következik:
dependencies
| where type == "Plugin"
| take 100
- Név/Cél: A végrehajtandó bővítmény teljes körűen minősített típusneve.
- Időtartam: A beépülő modul végrehajtásához szükséges idő.
- CustomDimensions:
- Mélység: A végrehajtás aktuális mélysége a hívási veremben.
- EntityName: A beépülő modul által kezelt entitás neve.
- IsolationType: Egy érték , amely azt jelzi, hogy a beépülő modul végrehajtása folyamatban van-e a tesztkörnyezetben:
- 1: Nincs
- 2: Tesztkörnyezet
- 3: Külső
- PluginName: A bővítmény felhasználóbarát neve.
- PluginType: A végrehajtott plug-in típusának neve.
- PluginVersion: A közzétett bővítmény verziója. A cél az, hogy ezt az információt felhasználhassuk a verziófrissítések hibaelhárítására.
- Stage: A következő értékeket jelöli:
- PreValidation = 10
- PreOperation = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- MainOperation = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- PostOperation = 40
- PostOperationDeprecated = 50
- StepName: Az SDK üzenetfeldolgozási lépés neve. Ezt általában a Plugin Registration Tool (PRT) generálja a PluginName, a PluginType és a művelet neve alapján – például ErrorMessageTest.ThrowException: Fiók létrehozása.
Telemetria a beépülő modul kódjában
Ahhoz, hogy megértse, mi történik a beépülő modul kódján belül, a Microsoft.Xrm.Sdk.PluginTelemetry.ILogger interfész használatával a beépülő modul kódjában egyéni telemetriát is tartalmazhat a beépülő modulból, hogy a telemetriai adatokat közvetlenül az Application Insights-erőforrásba írja. További információ: Telemetria írása az Application Insights-erőforrásba az ILogger használatával (előnézet)
Dataverse SDK naplók
Ezek a bejövő kérés részeként indított SDK műveletek naplói. Ezek a függőségi táblázatba kerülnek be az Application Insights-ban, mert a kérés végrehajtásához függőségként követik őket. Ezeket a típusnév azonosítja, amely SDK-val kezdődik. Az alábbiakban egy minta lekérdezés következik:
dependencies
| where type startswith "SDK"
| take 10
- Típus: A kiváltott SDK-kérelem típusa. Ilyen például a Retrieve, RetrieveMultiple, FetchXmlToQueryExpression és a WhoAmI.
- Név/Cél: Az SDK művelet által megcélzott entitás neve.
- CustomDimensions:
- ClientType: Az ügyfél típusa, akitől a hívás érkezik. Néhány lehetséges érték: Web, UCIClient és OutlookFull.
- EntityId: A használt entitás egyedi azonosítója.
- EntityName: A használt entitás neve.
Kivételek
A plug-in és SDK műveletek hibáinak részleteit az Application Insights-ban tekintheti meg. A kivételek táblázata a Application Insights Hibák paneljén található. Ezek a hibarészletek korrelálnak a plug-in és az SDK-hívások többi eseményével a végponttól végpontig nézetben. Az összes rendelkezésre álló információ lehetőség szerint az oszlopokhoz kerül hozzáadásra, illetve a customDimensions-hez, ha nincs pontos oszlopmegfelelés.
Észre fogja venni, hogy a kivételek táblázat néhány mezője nincs kitöltve. Ennek oka, hogy ezek a mezők csak akkor állíthatók be, ha az Application Insights-SDK-t a forrásból származó naplók kibocsátására használják. Ez a funkció összegyűjti a platform telemetriáját, majd a Application Insights-sémának megfelelően betölti azt az Application Insights-ba.
exceptions
| take 10
Ez a lekérdezés az összes attribútum részletét visszaadja a kivétel táblából.
- problemId/type: A kivétel típusa.
- outerMessage: A kivétel üzenete.
- customDimensions:
- clientType: Az ügyfél típusa, akitől a hívás érkezik. Néhány lehetséges érték: Web, UCIClient és OutlookFull.
- exceptionSource: A beépülő modul vagy a pont, ahol a kivétel előfordult.
- entityName: A használt entitás neve.
- pluginName: Annak a beépülő modulnak a neve, ahol a kivétel előfordult.
Ha egy felhasználó hibát jelent, a felhasználói azonosító (Microsoft Entra azonosítóazonosító) segítségével megismerheti a kivételtábla részleteit.
exceptions
| where user_Id == '12345678-68cd-4e73-908f-126342b36315'
Az entitás azonosítója és az entitás neve a függőségi táblázatban a customDimensions alatt érhető el.
dependencies<br />
| where type == "SDK Retrieve"
Gyakran ismételt kérdések (GYIK)
Az alábbiakban néhány gyakran feltett kérdés a telemetriai eseményekkel kapcsolatban a Dataverse-ben.
Hogyan állapíthatom meg, hogy a beépülő modul frissítése teljesítménycsökkenést okozott-e?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
A beépülő modul nevének tartalmaznia kell a verziót is az egyéni beépülő modulok esetében.
Milyen volt az API teljesítménye a bejelentett probléma előtt, napszak vagy helyszín alapján? Az API degradációja fokozatos vagy hirtelen következett be?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
Ezen a diagramon az API végpont teljesítményét láthatjuk egy bizonyos időszak alatt a kérések számával összevetve.
Itt is beállíthat riasztást egy adott API teljesítménye alapján az Application Insights-ban.
Megkereshetem a hibákat vagy hibákat bizonyos időpontokban vagy bizonyos felhasználók esetében, hogy lehetővé tegyem a hívási verem megértését?
A Hibák panel áttekintést nyújt az adott időszak hibáiról. Ezután az API-hívás vagy a függőség típusa alapján leszűkítheti a hiba körét, és megtekintheti a végponttól végpontig tartó nézetet.
Létrehozhatok egyéni irányítópultokat?
Igen. Egyéni irányítópultokat készíthet az Application Insights-ban.
Meg tudom-e határozni a plug-inek használati teljesítményét (válaszidő) és a hibaarányt a csúcshasználat során?
Igen. Tekintse meg a következő mintakérdést, hogy megértse, hogyan teljesítenek a beépülő modulok.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Ez a telemetria rendelkezik majd fojtással?
Igen. Jelenleg az alapvető 429-es hibák részleteit adják meg.
Megismerhetem a végrehajtási útvonalakat? A beépülő modul által kezdeményezett hívások lassítják a beépülő modult?
Igen. Megtekintheti az összes üzenetet és bővítményt, amely bármelyik kérelemhez végrehajtásra került.
Minden üzenet és beépülő modul végrehajtásának időtartama naplózásra kerül. Ha valamelyik bővítmény több időt vesz igénybe, akkor azt a bővítményt azonosíthatja. Ha a beépülő modul visszahívást kezdeményez a Dataverse felé, a hívás időtartama naplózásra kerül. A bővítményekkel kapcsolatos további információkat a jövőbeni telepítésre tervezünk.
A bővítmény által kezdeményezett minden kimenő hívás automatikusan függőségként lesz naplózva.
Megnézhetem egy adott kérés telemetriáját?
A Dataverse x-ms-service-requestId-t ad vissza a fejléc válaszában minden kérelemre. Ezzel a requestId-vel lekérdezheti az összes telemetriát.
union *
| where operation_ParentId contains <requestId>