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
Caricamento dashboard Load (UCI) – Incorporato
Caricamento dashboard (UCI) - MobileApplication
Caricamento dashboard (UCI) – MailApp
Caricamento dashboard (UCI) - MobileApplication
Caricamento EditForm (UCI) – Browser
Caricamento EditForm (UCI) – Incorporato
Caricamento EditForm (UCI) – MailApp
Caricamento EditForm (UCI) - MobileApplication
Caricamento EntityList Load (UCI) – Browser
Caricamento EntityList (UCI) - Incorporato
Caricamento EntityList (UCI) – MailApp
Caricamento EntityList (UCI) - MobileApplication
Avvio app - (UCI) - Browser
Avvio app - (UCI) - Incorporato
Avvio app - (UCI) – MailApp
Avvio app - (UCI) – MobileApplication
Caricamento QuickCreateForm (UCI) – Browser
Caricamento QuickCreateForm (UCI) – Incorporato
Caricamento QuickCreateForm (UCI) – MailApp
Caricamento QuickCreateForm (UCI) - MobileApplication
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

Tabella pageViews di Application Insights.

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:

    Richiesta UCI Application Insights.

    • 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.

Lentezza UCI Application Insights.

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.

Set di risultati di esempio di Application Insights.

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.

Impostazioni > Informazioni.

Impostazioni > Informazioni ID sessione.

È 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.

Esaminare la vista del pannello Errori.

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.