¿Qué datos están disponibles para las aplicaciones basadas en modelos?
Los datos de rendimiento relacionados con las cargas de página y las solicitudes de red salientes de la interfaz unificada (UCI) están disponibles para las aplicaciones basadas en modelo.
¿Qué tipo de cargas de página están disponibles?
Tipo | Datos de rendimiento y diagnóstico disponibles |
---|---|
Carga del panel (UCI): navegador | Sí |
Carga del panel (UCI): integrado | Sí |
Carga del panel (UCI): aplicación móvil | Sí |
Carga del panel (UCI): MailApp | Sí |
Carga del panel (UCI): aplicación móvil | Sí |
Carga de EditForm (UCI): navegador | Sí |
Carga de EditForm (UCI): integrado | Sí |
Carga de EditForm (UCI): MailApp | Sí |
Carga del EditForm (UCI): aplicación móvil | Sí |
Carga de EntityList (UCI): navegador | Sí |
Carga de EntityList (UCI): integrado | Sí |
Carga de EntityList (UCI): MailApp | Sí |
Carga de EntityList (UCI): aplicación móvil | Sí |
Aplicación de inicio - (UCI): explorador | Sí |
Aplicación de inicio - (UCI): insertado | Sí |
Aplicación de inicio - (UCI): MailApp | Sí |
Aplicación de inicio - (UCI): aplicación móvil | Sí |
Carga de QuickCreateForm - (UCI): explorador | Sí |
Carga de QuickCreateForm (UCI): insertado | Sí |
Carga de QuickCreateForm - (UCI): MailApp | Sí |
Carga del QuickCreateForm (UCI): aplicación móvil | Sí |
SaveForm | Actualmente no está disponible |
Acciones de CommandButton | Actualmente no está disponible |
¿Dónde están disponibles los datos de carga de la página?
Estos datos van a la tabla pageViews de Application Insights. Se registra una entrada cada vez que un usuario carga una página en la Interfaz unificada. Los datos registrados solo incluyen cargas "limpias". Las cargas cuya duración no se pueda medir con precisión navegación rápida, cambio de la aplicación, un mensaje de alerta no se incluirán. Por este motivo, recomendamos no utilizar estos datos para obtener cifras precisas relacionadas con el análisis de uso.
Hay otras propiedades en customDimensions que proporcionan más detalles sobre las cargas de la página Interfaz unificada. Por ejemplo, esta consulta devuelve los valores de todos los atributos en la tabla pageViews.
pageViews
| take 1
Los atributos de la tabla pageViews incluyen:
- appModule: El nombre del módulo de la aplicación.
- entityName: este atributo está presente cuando es relevante. Está disponible en tipos de página como EditForm, EntityList y Dashboards cuando están vinculados a una entidad. En algunos escenarios, el formulario no está vinculado a una entidad y el valor aparece como indefinido.
- formId: formId identifica de forma única un formulario y se puede utilizar para correlacionar problemas que afecten a ese formulario específico.
- hostType: Navegador/Aplicación móvil/Integrado
- isBoot: ¿Es esta la primera carga de una sesión?
-
loadType
- 0: Primera visita a un tipo de página en particular (por ejemplo, la primera visita a un formulario).
- 1: Primera visita a una configuración en particular (por ejemplo, la primera visita al formulario de una cuenta).
- 2: Primera visita a un registro en particular (por ejemplo, la primera visita a un registro de cuenta A2).
- 3: Esta URL exacta se ha visitado anteriormente.
- navigationOrigin: el tipo de página desde la que navegó el usuario.
- networkConnectivityState: Si el dispositivo tiene una conexión.
- pageName: el tipo de carga de la página.
- serverConnectivityState: Si la aplicación está conectada al servidor.
- syncRequestTime: el tiempo dedicado a la espera de solicitudes síncronas.
- coldLatency: la primera estimación de latencia de red, que incluye el tiempo de protocolo de enlace SSL.
- warmLatency: la estimación posterior de la latencia de la red, que es la latencia típica esperada para cada solicitud.
- warmThroughput: el rendimiento estimado de la red, en Kbps.
Para eventos de Microsoft Dataverse, el campo Id. o operation_ParentId en Application Insights, es el id-solicitud-servicio-ms-x . El operationId se asigna al activityId en el back-end para fines de resolución de problemas y solicitudes de soporte técnico.
¿Qué tipo de datos están disponibles para las solicitudes de red saliente de UCI?
Estas son llamadas a otras dependencias realizadas por Interfaz unificada para representar una determinada página. Pueden ser llamadas salientes a Dataverse o a otras integraciones como Azure DevOps u Office. Utilice la siguiente consulta para obtener estos datos, que están disponibles en la tabla de dependencias de solicitudes de UCI:
dependencies
| where type == "UCI REQUEST"
La tabla de dependencias de solicitudes de UCI tiene los siguientes campos:
Nombre: La URL que invocada por la interfaz unificada.
Destino: Actualmente lo mismo que Nombre.
Correcto: Indica si la operación se realizó correcta o incorrectamente.
Id. de usuario: El id. de usuario de sistema de Dataverse del usuario que inició sesión.
Duración: duración de la llamada.
customDimensions: Contiene los siguientes atributos:
- appModule: El appModule que realiza la llamada.
- bodySize: El tamaño de la respuesta, codificada y decodificada.
- en caché: indica si la solicitud fue a la caché local o tuvo que ir al servidor. Esto no funciona como se esperaba si el usuario final estaba en el navegador Internet Explorer.
- descargar: El tiempo necesario para descargar la respuesta.
- espera: El tiempo en el que la solicitud estuvo esperando en la cola del navegador.
- ttfb: el tiempo de espera de la respuesta inicial, también conocido como "tiempo hasta el primer byte". Este tiempo captura la latencia de un viaje de ida y vuelta al servidor además del tiempo de espera para que el servidor entregue la respuesta.
- coldLatency: la primera estimación de latencia de red, que incluye el tiempo de protocolo de enlace SSL.
- warmLatency: la estimación posterior de la latencia de la red, que es la latencia típica esperada para cada solicitud.
- warmThroughput: el rendimiento estimado de la red, en Kbps.
Descubrir y analizar escenarios
¿Por qué algunos de mis usuarios experimentan lentitud en la Interfaz unificada?
Un escenario en el que el descubrimiento y el análisis pueden ser valiosos es cuando un usuario de una región (por ejemplo, Asia) informa que un formulario funciona con lentitud. Este usuario que está en Asia puede estar accediendo a un entorno u organización en Norteamérica. Los detalles muestran el tiempo total de carga además de la duración relacionada con la red. Es posible que esta sea una de las causas de la lentitud del rendimiento que percibe el usuario.
Puedes usar los atributos warmLatency, warmThroughput y coldLatency para comprender el desglose de dónde se gasta el tiempo en las cargas de página y otras solicitudes la Interfaz unificada, como se muestra en la siguiente imagen.
En la solicitud anterior, la solicitud la Interfaz unificada tarda más que la solicitud de API (API web) de Dataverse real. El desglose en este caso es la duración de la llamada API de Dataverse (56 ms) más el valor de CustomDimensions.warmLatency (89 ms), que se suma a casi la duración de toda la operación (144 ms). El valor warmLatency es indicativo de lentitud para ese cliente en particular y puede ser un problema que puede analizar a nivel de usuario mediante la siguiente consulta:
dependencies
| where ['type'] == "UCI REQUEST"
| summarize avg(toint(customDimensions.warmLatency)), avg(toint(customDimensions.coldLatency)), avg(toint(customDimensions.warmThroughput)) by user_Id
pageViews
| summarize avg(toint(customDimensions.warmLatency)), avg(toint(customDimensions.coldLatency)), avg(toint(customDimensions.warmThroughput)) by user_Id
¿Puedo determinar cómo accede el usuario al sistema?
El atributo userAgent del campo customDimensions de la tabla de solicitudes de Application Insights tiene estos datos. Puede utilizar la siguiente consulta para obtener una descripción general de los distintos orígenes desde los que los usuarios acceden al sistema:
pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id
dependencies
| where ['type'] == "UCI REQUEST"
Cuando el valor customDimensions.userAgent comienza con | ¿Desde dónde accede el usuario al sistema? |
---|---|
Mozilla | Tipo del explorador, versión |
aplicaciones lógicas de Azure | Aplicaciones lógicas de Azure |
PowerApps | Power Apps |
Microsoft Office Excel | Office Excel |
Portals | Portals |
DynamicsDataIntegration | Integración de datos de Dynamics |
XrmToolBox.exe | XrmToolBox |
PluginRegistration | Registro de complementos |
LogicAppsDesigner | Logic Apps Designer |
Apache-HttpClient | Cliente HTTP de Apache |
Microsoft Flow | Power Automate |
UnifiedServiceDesk | Unified Service Desk |
PostmanRuntime | Postman |
OfficeGroupsConnector | Conector de grupos de Office |
Microsoft.Data.Mashup | Power Query |
Apache-Olingo | Apache Olingo |
Dalvik | Android |
Jakarta Commons-Http | Jakarta |
Informatica | Informatica |
axios | Axios |
node-fetch | NodeJS |
LinkedInBot | LinkedInBot |
¿Cómo obtengo un recuento de los usuarios que acceden desde el navegador, el móvil o las aplicaciones integradas?
pageViews
| summarize count() by tostring(customDimensions.hostType)
La siguiente imagen muestra un ejemplo de conjunto de resultados de esta consulta.
¿Cómo ajusto la consulta a un usuario específico?
pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)
¿Cómo uso Application Insights con Monitor?
Azure Monitor ayuda en la resolución de problemas en tiempo real en una sesión desde el lado de la interfaz unificada. Las solicitudes de transacciones de un extremo a otro probablemente estarán disponibles en Application Insights. Para ver los registros de una acción determinada, anote el id. de actividad de una fila en la página de detalles del evento en Monitor. Puede encontrar los registro mediante la consulta siguiente:
union *
| where operation_Id contains "[ActivityIdHere]"
Monitor es una herramienta de depuración en tiempo real; sin embargo, es posible que los datos no estén disponibles en él durante algunas horas.
¿Por qué los usuarios tienen problemas con un formulario específico?
El usuario puede compartir su ID de sesión desde la sección Acerca de en Interfaz unificada para la organización específica.
Luego, puede usar este ID para encontrar problemas observando todas las actividades de esa sesión. Use la siguiente consulta:
union *
| where session_Id == '[sessionIdHere]'
¿Qué formularios se están utilizando en diferentes ubicaciones y cuál es el rendimiento de carga de los formularios en estas ubicaciones?
pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion
¿Es el error una llamada de API externa y puedo explorar en profundidad la pila de errores para ayudar con la depuración?
La vista Navegador del panel de Errores contiene solicitudes salientes de la interfaz unificada. Las solicitudes que van a Dataverse o a la organización contienen la URL de la organización. Puede haber otras solicitudes dirigidas a otras URL (por ejemplo, en la siguiente imagen, la organización tiene una personalización que llama a dc.services.visualstudio.com). Puede consultar la transacción de un extremo a otro para examinar más a fondo los errores de estas llamadas salientes externas.
¿Puedo configurar una alerta sobre el umbral de rendimiento para determinadas acciones del formulario? Cuando se reciba la alerta, ¿permitirá al creador diagnosticar y solucionar el problema?
Sí. Puede configurar alertas en Application Insights para supervisar el estado de su aplicación.