Esdeveniments de telemetria per al Microsoft Dataverse
Nota
El centre Power Platform d'administració nou i millorat ja està en versió preliminar pública. Hem dissenyat el nou centre d'administració perquè sigui més fàcil d'utilitzar, amb una navegació orientada a tasques que us ajuda a aconseguir resultats específics més ràpidament. Publicarem documentació nova i actualitzada a mesura que el nou Power Platform centre d'administració passi a la disponibilitat general.
La seqüència de dades proporciona dades de rendiment relacionades amb les trucades entrants de l'API de Dataverse, les trucades d'execució de complements de Dataverse i les trucades SDK de Dataverse. També proporciona dades per a errors en les operacions de complements i de l'SDK del Dataverse.
Trucades d'API entrants del Dataverse
Aquestes trucades es fan a l'API del Dataverse. Poden ser de Interfície unificada (UCI), el client web heretat, clients personalitzats que utilitzen l'SDK, i així successivament. Es poden trobar a la taula de sol·licituds de l'Application Insights, que té els camps següents.
Nom: el tipus de sol·licitud. Les sol·licituds es classifiquen en dues categories:
- Sol·licitud d'API web: una sol·licitud al punt final OData v4 que utilitzen habitualment la interfície unificada i els clients moderns. Aquesta sol·licitud es transforma en una operació comuna per a ambdues. L'API del web és un "contenidor" per habilitar el model de programació RESTful, però després de rebre les dades, tot passa a ser el mateix al servidor. Quan es torna la resposta, es converteix a JSON si la sol·licitud s'prové de l'API del web.
- Sol·licitud de servei de l'organització: sol·licitud a l'extrem de l'API de l'organització utilitzat pels clients de l'SDK o el client web heretat.
Durada: el temps que ha trigat el servidor a respondre a la sol·licitud.
URL: l'URL al qual s'ha fet la trucada.
Dimensions personalitzades:
UserAgent: Application Insights omple automàticament el camp de l'agent d'usuari amb PC a mesura que aquests registres s'envien des d'un servidor en un centre de dades. L'Application Insights no permet sobreescriur el camp de l'agent d'usuari. De vegades, el camp de l'agent d'usuari no està disponible per emplenar-se. L'agent d'usuari des del qual s'ha fet la trucada es pot visualitzar mitjançant la consulta següent:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: el nom llegible de l'operació que es mostrarà a les visualitzacions, com ara la visualització de transaccions d'extrem a extrem.
Registres d'execucions de complement del Dataverse
Aquests registres per als complements personalitzats que s'executen per a una operació determinada es troben a la taula dependències. El següent és una consulta d'exemple:
dependencies
| where type == "Plugin"
| take 100
- Nom/Destinació: el nom de tipus complet per al connector que s'està executant.
- Durada: el temps que va trigar a executar-se el connector.
-
Dimensions personalitzades:
- Profunditat: la profunditat actual de l'execució a la pila de trucades.
- EntityName: el nom de l'entitat sobre la qual actua el connector.
-
IsolationType: Un valor que indica si el connector s'està executant a l'espai aïllat:
- 1: Cap
- 2. Espai aïllat
- 3. Extern
- PluginName: el nom fàcil d'utilitzar del connector.
- PluginType: el nom del tipus de connector que s'està executant.
- PluginVersion: la versió del connector publicat. La intenció aquí és poder utilitzar aquesta informació per solucionar problemes d'actualitzacions de versions.
-
Fase: s'assigna als valors següents:
- PreValidation = 10
- PreOperation = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- Mainoperation = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- PostOperation = 40
- PostOperationDeprecated = 50
- StepName: el nom del pas de processament de missatges de l'SDK. Normalment, el genera l'eina de registre de complements mitjançant la informació sobre el PluginName, PluginType i el nom de l'operació, per exemple ErrorMessageTest.ThrowException: creació d'un compte.
Telemetria dins del codi de complement
Per comprendre el que s'està fent dins del codi dels complements, podeu incloure la telemetria personalitzada del complement utilitzant la Interfície de Microsoft.Xrm.Sdk.PluginTelemetry.ILogger al codi de complement per escriure dades de telemetria directament al recurs de l'Application Insights. Més informació: Escriviu telemetria al recurs de l'Application Insights mitjançant ILogger (Visualització prèvia)
Registres d'SDK del Dataverse
Aquests registres són les operacions de l'SDK activades com a part d'una sol·licitud entrant. Aquests registres es registren a la taula de dependències a l'Application Insights, perquè se'ls fa un seguiment com a dependències perquè s'executi la sol·licitud. S'identifiquen pel nom del tipus, que comença per l'SDK. El següent és una consulta d'exemple:
dependencies
| where type startswith "SDK"
| take 10
- Tipus: el tipus de sol·licitud de l'SDK activada. +Alguns exemples són Retrieve, RetrieveMultiple, FetchXmlToQueryExpression i WhoAmI.
- Nom/Destinació: aquest és el nom de l'entitat a la qual s'orienta l'operació de l'SDK.
-
Dimensions personalitzades:
- ClientType: el tipus de client d'on prové la trucada. Alguns valors possibles són Web, UCIClient i OutlookFull.
- EntityId: l'identificador únic de l'entitat que s'utilitza.
- EntityName: el nom de l'entitat que s'utilitza.
Excepcions
Veureu detalls d'errors en les operacions de complements i de l'SDK a l'Application Insights. La taula excepcions a l'Application Insights alimenta la subfinestra Errors. Aquests detalls d'errors es correlacionen amb la resta d'incidències a les trucades de l'SDK i als complements a la visualització d'extrem a extrem. Tota la informació disponible s'afegeix a les columnes quan sigui possible i a customDimensions quan no hi ha cap coincidència exacta de columna.
Veureu que alguns dels camps de la taula excepcions no s'han emplenat. Això es deu a que aquests camps només es poden definir si l'SDK de l'Application Insights s'utilitza per emetre registres des de la font. Aquesta característica recopila telemetria de plataforma i, a continuació, la public a l'Application Insights d'acord amb l'esquema de l'Application Insights.
exceptions
| take 10
Aquesta consulta retornarà tots els detalls dels atributs des de la taula excepció.
- problemId/type: el tipus d'excepció.
- outerMessage: el missatge d'excepció.
-
Dimensions personalitzades:
- clientType: el tipus de client d'on prové la trucada. Alguns valors possibles són Web, UCIClient i OutlookFull.
- exceptionSource: el connector o el punt on s'ha llançat l'excepció.
- entityName: el nom de l'entitat que s'utilitza.
- pluginName: el nom del connector on s'ha llançat l'excepció.
Si un usuari informa d'un error, podeu utilitzar l'ID d'usuari (Microsoft Entra ID ID) per entendre els detalls de la taula d'excepcions .
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
L'identificador i el nom de l'entitat estan disponibles a customDimensions, a la taula dependència.
dependencies
| where type == "SDK Retrieve"
Preguntes més freqüents
A continuació es presenten algunes preguntes més freqüents relacionades amb incidències de telemetria per al Dataverse.
Com puc determinar si la meva actualització de complements ha provocat una degradació del rendiment?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
El nom del complement també hauria de contenir la versió dels complements personalitzats.
Com era el rendiment de ll'API d'un problema registrat, segons l'hora del dia o la ubicació? L'API s'ha degradat gradualment o de cop?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
En aquest gràfic, podem veure el rendiment de l'extrem de l'API durant un període de temps pel nombre de sol·licituds que s'estan realitzant.
També podeu configurar una alertabasada en el rendiment d'una API concreta des de l'Application Insights.
Puc desglossar els errors en moments específics o per a usuaris específics per entendre la pila de trucades?
Pel que fa a la subfinestra Errors, proporciona una descripció general dels errors durant un període de temps determinat. A continuació, podeu limitar-la a un error específic segons les trucades de l'API o el tipus de dependència per veure la visualització d'extrem a extrem.
Puc crear escriptoris digitals?
Sí. Podeu crear escriptoris digitals personalitzats amb l'Application Insights.
Puc determinar el rendiment de l'ús del complement (temps de resposta) i les taxes d'error durant el pic d'ús?
Sí. Vegeu la consulta d'exemple següent per comprendre el rendiment dels complements.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Aquesta telemetria tindrà límit?
Sí. Actualment es proporcionen detalls bàsics de l'error 429.
Puc comprendre els camís d'execució? Les trucades que fa el complement alenteixen el complement?
Sí. Podeu visualitzar tots els missatges i els complements que s'executen per a qualsevol sol·licitud.
Es registra la durada de l'execució de tots els missatges i complements. Si algun complement està tardant més, podeu identificar-lo. Si el complement està fent una resposta de trucada al Dataverse, es registrarà la duració de la trucada. Més informació sobre els complements està prevista per a una implementació futura.
Qualsevol trucada de sortida que fa el complement es registrarà automàticament com a dependència.
Puc visualitzar la telemetria per a una sol·licitud específica?
El Dataverse torna x-ms-service-requestId a la resposta de capçalera a totes les sol·licituds. Amb aquest requestId podeu consultar tota la telemetria.
union *
| where operation_ParentId contains <requestId>