Megosztás a következőn keresztül:


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)
      

      Application Insights 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

Application Insights Dataverse beépülő modul végrehajtási naplói.

  • 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

Application Insights lekérdezési SDK.

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

Application Insights kivételek táblázata.

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.

Application Insights A kivételek táblázatának attribútumainak részletei.

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"

Application Insights SDK-lekérdezés lekérése.

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 

Application Insights API teljesítmény idődiagramja.

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.

Application Insights Hibák részletei.

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

Beépülő modulok használati teljesítménye.

Ez a telemetria rendelkezik majd fojtással?

Igen. Jelenleg az alapvető 429-es hibák részleteit adják meg.

Alapvető 429-es hiba.

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.

Végpontok közötti tranzakció.

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>