Sdílet prostřednictvím


Události telemetrie pro Microsoft Dataverse

Datový tok aktuálně poskytuje údaje o výkonu související s příchozími voláními rozhraní API systému Dataverse, voláními spuštění modulu plug-in systému Dataverse a volání SDK systému Dataverse. Obsahuje také data o selháních v modulech plug-in a operacích SDK systému Dataverse.

Příchozí hovory rozhraní API služby Dataverse

Jedná se o volání na rozhraní API Dataverse. Mohou pocházet ze Sjednoceného rozhraní (UCI), staršího webového klienta, vlastních klientů, kteří používají SDK atd. Najdete je v tabulce požadavků služby Application Insights, která má následující pole.

  • Název: Typ požadavku. Ty spadají do dvou kategorií:

    • Web API Request: Požadavek na OData v4 koncový bod, který běžně používají Sjednocené rozhraní a moderní klienti. Tento požadavek je transformován na operaci, která je společná pro oba. Webové rozhraní API je „obálka“ povolující programovací model RESTful, ale po přijetí dat bude v rámci severu vše stejné. Po vrácení odpovědi se převede na formát JSON, pokud požadavek pochází z webového rozhraní API.
    • Požadavek na organizační službu: Požadavek na rozhraní Organization API koncový bod používané klienty SDK nebo starším webovým klientem.
  • Duration: Doba, po kterou server odpověděl na požadavek.

  • Url: Adresa URL, na kterou bylo volání uskutečněno.

  • CustomDimensions:

    • UserAgent: Application Insights automaticky vyplní pole uživatelského agenta pomocí PC , když jsou tyto protokoly odesílány ze serveru v datovém centru. Application Insights neumožňuje přepsat pole uživatelského agenta. Někdy není pole uživatelského agenta dostupné. Uživatelského agenta, ze kterého bylo volání provedeno, lze zobrazit pomocí následujícího dotazu:

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

      Application Insights CustomDimensions UserAgent.

  • Operation_Name: Čitelný název operace, která se má zobrazit v zobrazeních, jako je zobrazení end-to-end transakce.

Protokoly spuštění modulu plug-in systému Dataverse

Tyto protokoly pro vlastní moduly plug-in spuštěné pro konkrétní operaci najdete v tabulce závislostí. Následuje ukázkový dotaz:

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

Protokoly spuštění modulu plug-in systému Application Insights ve službě Dataverse.

  • Název/cíl: Plně kvalifikovaný název typu pro spouštěný modul plug-in.
  • Duration: Doba, za kterou byl zásuvný modul spuštěn.
  • CustomDimensions:
    • Hloubka: Aktuální Hloubka provádění v zásobníku volání.
    • EntityName: Název entity, se kterou modul plug-in působí.
    • IsolationType: A hodnota označující, zda se plug-in spouští v karanténě:
      • 1: Žádné
      • 2: Sandbox
      • 3: Externí
    • PluginName: Uživatelsky přívětivý název modulu plug-in.
    • PluginType: Název typu spouštěného plug-inu.
    • PluginVersion: Verze publikovaného zásuvného modulu. Záměrem je být schopen použít tyto informace k řešení potíží s aktualizacemi verzí.
    • Stage: Mapuje se na následující hodnoty:
      • PreValidation = 10
      • PreOperation = 20
      • PreOperationBeforeExternalPlugins = 15
      • PreOperationAfterExternalPlugins = 25
      • MainOperation = 30
      • PostOperationBeforeExternalPlugins = 35
      • PostOperationAfterExternalPlugins = 45
      • PostOperation = 40
      • PostOperationDeprecated = 50
    • StepName: Název sady SDK pro zpracování zpráv krok. Ten je obvykle generován pomocí sady registrace modulů plug-in pomocí informací o PluginName, PluginType a název operace – například ErrorMessageTest.ThrowException: Vytvoření účtu.

Telemetrie v kódu vašeho modulu plug-in

Chcete-li porozumět tomu, co se děje v kódu vašeho zásuvného modulu, můžete do zásuvného modulu zahrnout vlastní telemetrii pomocí Microsoft.Xrm. Rozhraní Sdk.PluginTelemetry.ILogger v kódu zásuvného modulu pro zápis telemetrických dat přímo do vašeho Application Insights prostředku. Více informací: Zápis telemetrie do vašeho prostředku Application Insights pomocí ILogger (preview)

Protokoly SDK systému Dataverse

Jedná se o protokoly pro operace SDK spuštěné jako součást příchozího požadavku. Ty jsou zaznamenány v tabulce závislostí ve službě Application Insights, protože jsou sledovány jako závislosti pro požadavek na provedení. Jsou identifikovány podle názvu typu, počínaje s SDK. Následuje ukázkový dotaz:

dependencies
| where type startswith "SDK"
| take 10

Sada SDK dotazu Application Insights.

  • Typ: Typ spuštěného požadavku SDK. Mezi příklady patří Retrieve, RetrieveMultiple, FetchXmlToQueryExpression a WhoAmI.
  • Název/cíl: Toto je název entity, na kterou operace SDK cílí.
  • CustomDimensions:
    • ClientType: Typ klienta, ze kterého hovor přichází. Některé možné hodnoty jsou Web, UCIClient a OutlookFull.
    • EntityId: Jedinečný identifikátor používané entity.
    • EntityName: Název použité entity.

Výjimky

Uvidíte podrobnosti o selháních v modulu plug-in a operacích SDK ve službě Application Insights. Tabulka výjimek ve službě Application Insights je zdrojem panelu Chyby. Tyto podrobnosti o selhání korelují se zbytkem událostí v modulu plug-in a voláních SDK v zobrazení typu end-to-end. Všechny dostupné informace se přidávají do sloupců (pokud je to možné) a do customDimensions (když neexistuje přesná shoda sloupců).

Povšimněte si, že některá z polí v tabulce výjimek nejsou vyplněna. To je způsobeno tím, že tato pole lze nastavit pouze tehdy, pokud je rozhraní SDK Application Insights používáno pro generování protokolů ze zdroje. Tato funkce shromažďuje telemetrii platformy a poté ji odesílá do služby Application Insights v souladu se schématem služby Application Insights.

Tabulka výjimek Application Insights.

exceptions
| take 10

Tento dotaz vrátí všechny podrobnosti atributu z tabulky výjimek.

  • problemId/type: Typ výjimky.
  • externalMessage: Zpráva o výjimce.
  • customDimensions:
    • clientType: Typ klienta, ze kterého volání přichází. Některé možné hodnoty jsou Web, UCIClient a OutlookFull.
    • exceptionSource: Modul plug-in nebo bod, kde byla vyvolána výjimka.
    • entityName: Název použité entity.
    • pluginName: Název modulu plug-in, kde byla vyvolána výjimka.

Podrobnosti atributu tabulky výjimek Application Insights.

Pokud uživatel nahlásí chybu, můžete použít ID uživatele (ID Microsoft Entra ID) k pochopení podrobností z tabulky výjimek.

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

ID entity a název entity jsou k dispozici v části customDimensions v tabulce závislosti.

dependencies
| where type == "SDK Retrieve"

Dotaz na načtení Application Insights SDK.

Nejčastější dotazy

Následují často kladené dotazy týkající se telemetrických událostí pro systém Dataverse.

Jak zjistím, zda můj upgrade modulu plug-in způsobil snížení výkonu?

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

Název modulu plug-in by měl také obsahovat verzi pro vlastní moduly plug-in.

Jak fungovalo rozhraní API před nahlášeným problémem na základě času nebo umístění? Bylo zhoršení stavu API postupné nebo náhlé?

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

Časový graf výkonu rozhraní Application Insights API.

V tomto grafu vidíme výkon koncového bodu rozhraní API za určité období v porovnání s počtem požadavků.

Můžete také nastavit upozornění na základě výkonu konkrétního rozhraní API v rámci služby Application Insights.

Mohu podrobně analyzovat chyby nebo selhání v určitých časech nebo pro konkrétní uživatele, aby bylo možné porozumět zásobníku volání?

Při pohledu na panel Chyb lze vidět přehled selhání v daném časovém období. Poté můžete zúžit výběr na konkrétní selhání na základě volání API nebo typu závislosti, abyste viděli zobrazení typu end-to-end.

Podrobnosti selhání Application Insights.

Mohu vytvářet vlastní řídicí panely?

Ano. Můžete sestavovat vlastní řídicí panely se službou Application Insights.

Mohu určit výkon využití modulu plug-in (čas odezvy) a míru selhání během špičky využití?

Ano. V následujícím ukázkovém dotazu pochopíte, jak fungují vaše moduly plug-in.

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

Výkon využití modulu plug-in.

Bude tato telemetrie obsahovat omezení?

Ano. Momentálně jsou k dispozici podrobnosti o základní chybě 429.

Mohu pochopit cesty spuštění? Zpomalují volání modulu plug-in modul plug-in?

Ano. Můžete si zobrazit všechny zprávy a moduly plug-in, které jsou spuštěny pro jakýkoli požadavek.

Doba trvání provádění všech zpráv a modulů plug-in je protokolována. Pokud některý modul plug-in trvá déle, můžete tento modul plug-in identifikovat. Pokud modul plug-in provádí zpětné volání do systému Dataverse, délka tohoto hovoru je zaznamenána. Další informace o modulech plug-in jsou plánovány pro budoucí nasazení.

Jakékoli odchozí volání provedené modulem plug-in bude automaticky zaznamenáno jako závislost.

Transakce typu end-to-end.

Mohu zobrazit telemetrii pro konkrétní požadavek?

Dataverse vrátí x-ms-service-requestId v odpovědi záhlaví na všechny požadavky. Pomocí tohoto requestId můžete zadat dotaz na veškerou telemetrii.

union *
| where operation_ParentId contains <requestId>