Quali dati sono disponibili per le app basate su modello?
I dati sulle prestazioni relativi ai caricamenti di pagina e alle richieste di rete in uscita di Unified Interface (UCI) sono disponibili per le app basate su modello.
Che tipo di caricamenti di pagina sono disponibili?
Digita | Dati sulle prestazioni e sulla diagnostica disponibili |
---|---|
Caricamento dashboard (UCI) – Browser | Sì |
Caricamento dashboard Load (UCI) – Incorporato | Sì |
Caricamento dashboard (UCI) - MobileApplication | Sì |
Caricamento dashboard (UCI) – MailApp | Sì |
Caricamento dashboard (UCI) - MobileApplication | Sì |
Caricamento EditForm (UCI) – Browser | Sì |
Caricamento EditForm (UCI) – Incorporato | Sì |
Caricamento EditForm (UCI) – MailApp | Sì |
Caricamento EditForm (UCI) - MobileApplication | Sì |
Caricamento EntityList Load (UCI) – Browser | Sì |
Caricamento EntityList (UCI) - Incorporato | Sì |
Caricamento EntityList (UCI) – MailApp | Sì |
Caricamento EntityList (UCI) - MobileApplication | Sì |
Avvio app - (UCI) - Browser | Sì |
Avvio app - (UCI) - Incorporato | Sì |
Avvio app - (UCI) – MailApp | Sì |
Avvio app - (UCI) – MobileApplication | Sì |
Caricamento QuickCreateForm (UCI) – Browser | Sì |
Caricamento QuickCreateForm (UCI) – Incorporato | Sì |
Caricamento QuickCreateForm (UCI) – MailApp | Sì |
Caricamento QuickCreateForm (UCI) - MobileApplication | Sì |
SaveForm | Attualmente non disponibile |
Azioni CommandButton | Attualmente non disponibile |
Dove si trovano i dati di caricamento della pagina?
Questi dati sono visualizzati nella tabella pageViews in Application Insights. Viene registrata una voce ogni volta che un utente carica una pagina in Unified Interface. I dati registrati includono solo carichi "puliti". I carichi la cui durata non può essere misurata con precisione, ovvero navigazione veloce, allontanamento dall'app, messaggio di avviso, non saranno inclusi. Per questo motivo, sconsigliamo di utilizzare questi dati per numeri accurati relativi all'analisi dell'utilizzo.
Ci sono altre proprietà in customDimensions che forniscono maggiori dettagli per i caricamenti di pagina Unified Interface. Ad esempio, questa query restituisce i valori per tutti gli attributi nella tabella pageViews.
pageViews
| take 1
Gli attributi della tabella pageViews includono:
- appModule: il nome del modulo dell'app.
- entityName: questo attributo è presente quando pertinente. È disponibile su tipi di pagina come EditForm, EntityList e Dashboards quando sono associati a un'entità. In alcuni scenari, il modulo non è associato a un'entità e il valore viene visualizzato come non definito.
- ID modulo: formId identifica in modo univoco un modulo e può essere utilizzato per correlare i problemi che interessano quel modulo specifico.
- hostType: Browser/MobileApplication/Embedded
- isBoot: questo è il primo caricamento di una sessione?
-
loadType
- 0: prima visita a un particolare tipo di pagina (ad esempio, la prima visita a un modulo).
- 1: prima visita a un particolare configurazione (ad esempio, la prima visita a un modulo di account).
- 2: prima visita a un particolare record (ad esempio, la prima visita a un record di account A2).
- 3: questo URL esatto è stato visitato in precedenza.
- navigazioneOrigin: il tipo di pagina da cui l'utente ha navigato.
- networkConnectivityState: indica se il dispositivo ha una connessione.
- pageName: il tipo di caricamento di pagina.
- serverConnectivityState: indica se l'app è connessa al server.
- syncRequestTime: il tempo trascorso in attesa delle richieste sincrone.
- coldLatency: la prima stima della latenza di rete, che include il tempo di handshake SSL.
- warmLatency: la successiva stima della latenza di rete, che è la tipica latenza prevista per ogni richiesta.
- warmThroughput: la velocità stimata della rete in Kbps.
Per gli eventi Microsoft Dataverse, il campo ID o operation_ParentId in Application Insights è x-ms-service-request-id. operationId viene mappato a activityId sul back-end per scopi di risoluzione dei problemi e richieste di supporto.
Che tipo di dati sono disponibili per le richieste di rete in uscita UCI?
Queste sono chiamate ad altre dipendenze eseguite da Unified Interface per eseguire il rendering di una determinata pagina. Potrebbero essere chiamate in uscita a Dataverse o ad altre integrazioni come Azure DevOps o Office. Utilizza la seguente query per ottenere questi dati, disponibili nella tabella delle dipendenze della richiesta UCI:
dependencies
| where type == "UCI REQUEST"
La tabella delle dipendenze della richiesta UCI ha i seguenti campi:
Nome: l'URL richiamato da Unified Interface.
Destinazione: attualmente simile a Nome.
Operazione riuscita: indica se la chiamata è riuscita o meno.
UserId: l'ID utente sistema Dataverse dell'utente che ha eseguito l'accesso.
Durata: la durata della chiamata.
customDimensions: include i seguenti attributi:
- appModule: l'appModule che effettua la chiamata.
- bodySize: la dimensione della risposta, codificata e decodificata.
- cached: indica se la richiesta è stata inviata alla cache locale o se doveva essere inviata al server. Ciò non funziona come previsto se l'utente finale era nel browser Internet Explorer.
- download: il tempo impiegato per scaricare la risposta.
- stall: il tempo di attesa della richiesta nella coda del browser.
- ttfb: il tempo di attesa della risposta iniziale, noto anche come "tempo di ricezione del primo byte". Questo tempo acquisisce la latenza di un viaggio di andata e ritorno al server oltre al tempo trascorso in attesa che il server fornisca la risposta.
- coldLatency: la prima stima della latenza di rete, che include il tempo di handshake SSL.
- warmLatency: la successiva stima della latenza di rete, che è la tipica latenza prevista per ogni richiesta.
- warmThroughput: la velocità stimata della rete in Kbps.
Scoprire e analizzare scenari
Perché per alcuni dei miei utenti Unified Interface è lento?
Uno scenario in cui scoperta e analisi possono essere utili è quando un utente di un'area geografica (ad esempio l'Asia) segnala che un modulo sta funzionando lentamente. Questo utente in Asia potrebbe accedere a un ambiente o un'organizzazione nell'America del Nord. I dettagli mostrano il tempo di caricamento totale oltre alla durata relativa alla rete. È possibile che sia questa la causa della lentezza percepita dall'utente.
Puoi usare gli attributi warmLatency, warmThroughput e freddoLatency per comprendere la ripartizione del tempo trascorso sui caricamenti di pagina e altre richieste Unified Interface, come mostrato nell'immagine seguente.
Nella richiesta di cui sopra, la richiesta Unified Interface richiede più tempo della richiesta API Dataverse (API Web). La ripartizione in questo caso è la durata della chiamata API Dataverse (56 ms) più il valore di CustomDimensions.warmLatency (89 ms), che si somma quasi alla durata dell'intera operazione (144 ms). Il valore warmLatency è indicativo della lentezza per quel particolare client e potrebbe essere un problema che puoi analizzare a livello di utente utilizzando la seguente query:
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
Posso determinare in che modo l'utente accede al sistema?
L'attributo userAgentnel campo customDimensions della tabella richieste di Application Insights include questi dati. Puoi utilizzare la seguente query per ottenere una panoramica delle diverse origini da cui gli utenti accedono al sistema:
pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id
dependencies
| where ['type'] == "UCI REQUEST"
Quando il valore customDimensions.userAgent inizia con | Da dove l'utente accede al sistema? |
---|---|
Mozilla | Tipo di browser, versione |
azure-logic-apps | App per la logica di azure |
PowerApps | Power Apps |
Microsoft Office Excel | Office Excel |
Portali | Portali |
DynamicsDataIntegration | Integrazione dei dati di Dynamics |
XrmToolBox.exe | XrmToolBox |
PluginRegistration | Registrazione plug-in |
LogicAppsDesigner | Progettazione app per la logica |
Apache-HttpClient | Client HTTP Apache |
Microsoft Flow | Power Automate |
UnifiedServiceDesk | Unified Service Desk |
PostmanRuntime | Postman |
OfficeGroupsConnector | Connettore Gruppi di 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 |
Come ottengo un conteggio degli utenti che accedono da browser, dispositivi mobili o applicazioni integrate?
pageViews
| summarize count() by tostring(customDimensions.hostType)
L'immagine seguente mostra un esempio di set di risultati di questa query.
Come posso eseguire il drill-down su un utente specifico?
pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)
Come uso Application Insights con Monitor?
Monitoraggio di Azure agevola la risoluzione dei problemi in tempo reale relativi a una sessione lato Unified Interface. Le richieste di transazione end-to-end saranno probabilmente disponibili in Application Insights. Per esaminare i log per una determinata azione, annotare l'ID attività di una riga nella pagina dei dettagli dell'evento in Monitoraggio. Puoi trovare i log utilizzando la query seguente:
union *
| where operation_Id contains "[ActivityIdHere]"
Monitoraggio è uno strumento di debug in tempo reale; tuttavia, i dati potrebbero non essere disponibili per alcune ore.
Perché gli utenti riscontrano problemi con un modulo specifico?
L'utente può condividere il proprio ID sessione dalla sezione Informazioni in Unified Interface per la specifica organizzazione.
È quindi possibile utilizzare questo ID per trovare problemi esaminando tutte le attività in quella sessione. Usa la query seguente:
union *
| where session_Id == '[sessionIdHere]'
Quali moduli vengono utilizzati in posizioni diverse e quali sono le prestazioni di caricamento dei moduli in queste posizioni?
pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion
L'errore può essere una chiamata API e posso eseguire il drill-down nello stack degli errori per agevolare il debug?
La vista Browser del pannello Errori contiene richieste in uscita di Unified Interface. Le richieste a Dataverse o all'organizzazione contengono l'URL dell'organizzazione. Potrebbero esserci altre richieste ad altri URL (ad esempio, nell'immagine seguente, l'organizzazione ha una personalizzazione che chiama dc.services.visualstudio.com). È possibile esaminare la transazione end-to-end per esaminare ulteriormente gli errori per queste chiamate in uscita esterne.
Posso impostare un avviso sulla soglia delle prestazioni per determinate azioni del modulo? L'avviso ricevuto consentirà a un creatore di diagnosticare e risolvere il problema?
Sì. Puoi impostare avvisi in Application Insights per monitorare lo stato dell'applicazione.