Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
O fluxo de datos proporciona actualmente datos de rendemento relacionados con chamadas entrantes da API de Dataverse, chamadas de execución de complementos de Dataverse e chamadas SDK de Dataverse. Tamén ofrece datos sobre fallos no complemento e operacións do SDK de Dataverse.
Chamadas entrantes da API de Dataverse
Son chamadas á API de Dataverse. Poden ser de Interface unificada (UCI), o cliente web herdado, clientes personalizados que usan o SDK, etc. Pódense atopar na táboa solicitudes de Application Insights, que ten os seguintes campos.
Nome: O tipo de solicitude. Estes divídense en dúas categorías:
- Solicitude da API web: unha solicitude ao punto final de OData v4 que adoitan usar a Interface unificada e os clientes modernos. Esta solicitude transfórmase nunha operación común a ambas. A API web é un "envoltorio" para activar o modelo de programación RESTful, pero despois de recibir datos, todo se fai igual no servidor. Cando se devolve a resposta, convértese en JSON se a solicitude viña da API web.
- Solicitude de servizo da organización: Unha solicitude ao punto final da API da organización empregada polos clientes do SDK ou polo cliente web herdado.
Duración: O tempo que o servidor tardou en responder á solicitude.
Url: O URL ao que se realizou a chamada.
Dimensións personalizadas:
UserAgent: Application Insights enche automaticamente o campo do axente de usuario con PC xa que estes rexistros se envían desde un servidor nun centro de datos. Application Insights non permite substituír o campo do axente de usuario. Ás veces, o campo do axente de usuario non está dispoñible para cubrir. O axente de usuario desde o que se realizou a chamada pódese ver usando a seguinte consulta:
requests | summarize count() by tostring(customDimensions.userAgent)
Nome_operación: O nome lexible da operación que se mostrará nas vistas, como a vista de transacción de extremo a extremo.
Rexistros de execucións de complementos de Dataverse
Estes rexistros para complementos personalizados que se executan para unha determinada operación atópanse na táboa dependencia. A seguinte é unha mostra de consulta:
dependencies
| where type == "Plugin"
| take 100
- Nome/Obxectivo: O nome de tipo completo para o complemento que se está a executar.
- Duración: O tempo que tardou en executarse o complemento.
-
Dimensións personalizadas:
- Profundidade: A profundidade actual da execución na pila de chamadas.
- EntityName: O nome da entidade sobre a que actúa o complemento.
-
IsolationType: Un valor que indica se o complemento se está a executar na zona de probas:
- 1: Ningún
- 2: Ambiente de illamento de procesos
- 3: Externo
- PluginName: O nome do plugin para o usuario.
- PluginType: O nome do tipo de plugin que se está a executar.
- PluginVersion: A versión do plugin publicado. A intención aquí é poder utilizar esta información para solucionar problemas de actualizacións de versión.
-
Etapa: Asóciase cos seguintes valores:
- Prevalidación = 10
- Pre-operación = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- Operación principal = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- PostOperation = 40
- PostOperationDeprecated = 50
- StepName: O nome do paso de procesamento de mensaxes do SDK. Normalmente xérana a ferramenta de rexistro de complementos empregando información sobre o PluginName, PluginType e o nome da operación, por exemplo ErrorMessageTest.ThrowException: Creation of account.
Telemetría dentro do seu código de complemento
Para comprender o que está a suceder dentro do seu código de complemento, pode incluír telemetría personalizada desde o seu complemento usando a Interface Microsoft.Xrm.Sdk.PluginTelemetry.ILogger no seu código de complemento para escribir datos de telemetría directamente no seu recurso Application Insights. Máis información: Escriba Telemetría no seu recurso Application Insights usando ILogger (Vista previa)
Rexistros de SDK de Dataverse
Trátase de rexistros para as operacións de SDK activadas como parte dunha solicitude entrante. Estes rexístranse na táboa dependencia en Application Insights, porque son seguidos como dependencias para a solicitude de execución. Identifícanse polo nome do tipo, comezando por SDK. A seguinte é unha mostra de consulta:
dependencies
| where type startswith "SDK"
| take 10
- Tipo: O tipo de solicitude do SDK activada. Entre os exemplos inclúese Retrieve, RetrieveMultiple, FetchXmlToQueryExpression e WhoAmI.
- Nome/Obxectivo: Este é o nome da entidade á que se dirixe a operación do SDK.
-
Dimensións personalizadas:
- ClientType: O tipo de cliente do que provén a chamada. Algúns valores posibles son Web, UCIClient e OutlookFull.
- EntityId: O identificador único da entidade que se está a usar.
- NomeEntidade: O nome da entidade que se está a usar.
Excepcións
Verá detalles dos fallos nas operacións de complemento e SDK en Application Insights. A táboa de excepcións en Application Insights fornece información ao panel de Fallos. Estes detalles do erro relaciónanse co resto de eventos do complemento e as chamadas de SDK na vista de extremo a extremo. Toda a información dispoñible engádese ás columnas cando e posible e a customDimensions cando non hai coincidencia exacta de columna.
Notará que algúns dos campos da táboa excepcións non se completan. Isto débese a que estes campos só se poden configurar se o SDK de Application Insights se usa para emitir rexistros desde a fonte. Esta función recolle a telemetría da plataforma e despois a envía a Application Insights de acordo co esquema Application Insights.
exceptions
| take 10
Esta consulta devolverá todos os detalles do atributo da táboa excepción.
- problemId/type: O tipo de excepción.
- outerMessage: A mensaxe de excepción.
-
dimensións personalizadas:
- clientType: O tipo de cliente do que provén a chamada. Algúns valores posibles son Web, UCIClient e OutlookFull.
- exceptionSource: O complemento ou o punto onde se produciu a excepción.
- entityName: O nome da entidade que se está a usar.
- pluginName: O nome do complemento onde se produciu a excepción.
Se un usuario informa dun erro, podes usar o ID de usuario (Microsoft Entra ID ID) para comprender os detalles da táboa de excepcións.
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
O ID da entidade e o nome da entidade están dispoñibles en customDimensions na táboa dependencia.
dependencies
| where type == "SDK Retrieve"
Preguntas máis frecuentes (PMF)
A continuación amósanse algunhas preguntas frecuentes relacionadas con eventos de telemetría para Dataverse.
Como podo determinar se a actualización do meu complemento causou unha degradación do rendemento?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
O nome do complemento tamén debe conter a versión para complementos personalizados.
Como funcionaba a API antes dun problema denunciado, en función da hora do día ou da situación? A degradación da API foi gradual ou súbita?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
Neste gráfico podemos ver o rendemento do extremo da API durante un período de tempo fronte ao número de solicitudes que se están a facer.
Tamén pode configurar unha alerta baseada no rendemento dunha determinada API aquí dentro de Application Insights.
Podo consultar os erros ou fallos en momentos concretos ou para que usuarios específicos permitan comprender a pila de chamadas?
Mirando para o panel de Fallos, terá unha visión xeral dos fallos nun período de tempo determinado. A continuación, pode reducirse a un fallo específico en función da chamada da API ou do tipo de dependencia para ver a vista de extremo a extremo.
Podo crear paneis personalizados?
Si. Pode construír paneis personalizados con Application Insights.
Podo determinar o rendemento do uso do complemento (tempo de resposta) e as taxas de fallo durante o uso máximo?
Si. Consulte a seguinte mostra de consulta para comprender o rendemento dos seus complementos.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
Terá limitación esta telemetría?
Si. Actualmente ofrécense os detalles do erro básico 429.
Podo entender os camiños de execución? As chamadas realizadas polo complemento están facendo que vaia máis lento?
Si. Pode ver todas as mensaxes e complementos que se executan para calquera solicitude.
Rexístrase a duración de todas as mensaxes e execución do complemento. Se algún complemento leva máis tempo, pode identificalo. Se o complemento está a devolver a chamada a Dataverse, rexístrase a duración desa chamada. Está prevista máis información sobre os complementos para a implementación futura.
Calquera chamada de saída realizada polo complemento rexistrarase automaticamente como dependencia.
Podo ver a telemetría para unha solicitude específica?
Dataverse devolve x-ms-service-requestId na resposta da cabeceira a todas as solicitudes. Usando este requestId, pode consultar toda a telemetría.
union *
| where operation_ParentId contains <requestId>