Welche Daten stehen für Modellgesteuerte Apps zur Verfügung?
Für Modellgesteuerte Apps sind Leistungsdaten zu Seitenladevorgängen und ausgehenden Einheitliche Oberfläche (UCI)-Netzwerkanforderungen verfügbar.
Welche Arten von Seitenladevorgängen sind verfügbar?
Art | Leistungs- und Diagnosedaten verfügbar |
---|---|
Dashboard Load (UCI) – Browser | Ja |
Dashboard Load (UCI) – Eingebettet | Ja |
Dashboard Load (UCI) – MobileApplication | Ja |
Dashboard Load (UCI) – MailApp | Ja |
Dashboard Load (UCI) – MobileApplication | Ja |
EditForm Load (UCI) – Browser | Ja |
EditForm Load (UCI) – Eingebettet | Ja |
EditForm Load (UCI) – MailApp | Ja |
EditForm Load (UCI) - MobileApplication | Ja |
EntityList Load (UCI) – Browser | Ja |
EntityList Load (UCI) – Eingebettet | Ja |
EntityList Load (UCI) – MailApp | Ja |
EntityList Load (UCI) – MobileApplication | Ja |
Launch App - (UCI) – Browser | Ja |
Launch App - (UCI) – Eingebettet | Ja |
Launch App – (UCI) – MailApp | Ja |
Launch App – (UCI) – MobileApplication | Ja |
QuickCreateForm Load (UCI) – Browser | Ja |
QuickCreateForm Load (UCI) – Eingebettet | Ja |
QuickCreateForm Load (UCI) – MailApp | Ja |
QuickCreateForm Load (UCI) – MobileApplication | Ja |
SaveForm | Derzeit nicht verfügbar |
CommandButton-Aktionen | Derzeit nicht verfügbar |
Wo sind die Seitenladedaten verfügbar?
Diese Daten werden an die Tabelle pageViews in Application Insights übermittelt. Jedes Mal, wenn ein Benutzer eine Seite in Einheitliche Oberfläche lädt, wird ein Eintrag protokolliert. Die protokollierten Daten umfassen nur „saubere“ Ladungen. Ladungen, deren Dauer nicht genau gemessen werden kann – schnelle Navigation, Abkehr von der App, eine Warnmeldung – werden nicht aufgenommen. Aus diesem Grund raten wir davon ab, diese Daten für genaue Zahlen im Zusammenhang mit Nutzungsanalysen zu verwenden.
Es gibt andere Eigenschaften in customDimensions, die weitere Details zum Laden der „Einheitliche Oberfläche“-Seite bereitstellen. Diese Abfrage gibt beispielsweise die Werte für alle Attribute in der Tabelle pageViews zurück.
pageViews
| take 1
Die Tabelle pageViews enthält folgende Attribute:
- appModule: Der Name des App-Moduls.
- entityName: Dieses Attribut ist vorhanden, wenn es relevant ist. Es ist auf Seitentypen wie EditForm, EntityList und Dashboards verfügbar, wenn sie an eine Entität gebunden sind. In einigen Szenarien ist das Formular nicht an eine Entität gebunden und der Wert wird als undefiniert angezeigt.
- formId: Die formId identifiziert ein Formular eindeutig und kann verwendet werden, um Probleme zu korrelieren, die dieses bestimmte Formular betreffen.
- Hosttyp: Browser/MobileAnwendung/Embedded
- isBoot: Ist dies der erste Ladevorgang einer Sitzung?
- Lasttyp
- 0: Erster Besuch eines bestimmten Seitentyps (z. B. der erste Besuch eines Formulars).
- 1: Erster Besuch einer bestimmten Konfiguration (z. B. der erste Besuch eines Kontoformulars).
- 2: Erster Besuch eines bestimmten Datensatzes (z. B. der erste Besuch eines Firmendatensatzes A2).
- 3: Diese genaue URL wurde bereits zuvor besucht.
- navigationOrigin: Der Seitentyp, von dem der Benutzer navigiert hat.
- networkConnectivityState: Ob das Gerät eine Verbindung hat.
- pageName: Die Art des Seitenladens.
- serverConnectivityState: Ob die App mit dem Server verbunden ist.
- syncRequestTime: Die Wartezeit für synchrone Anfragen.
- coldLatency: Die erste Schätzung der Netzwerklatenz, die die SSL-Handshake-Zeit beinhaltet.
- warmLatency: Die nachfolgende Schätzung der Netzwerklatenz, also die typische zu erwartende Latenz für jede Anfrage.
- warmThroughput: Der geschätzte Durchsatz des Netzwerks in KBit/s.
Für Microsoft Dataverse-Ereignisse ist das Feld ID foder operation_ParentId in Application Insights die x-ms-service-request-id. The operationId ist der activityId im Backend für Fehlerbehebungszwecke und Supportanfragen zugeordnet.
Welche Daten stehen für ausgehende UCI-Netzwerkanforderungen zur Verfügung?
Dies sind Aufrufe an andere Abhängigkeiten, die von Einheitliche Oberfläche ausgeführt werden, um eine bestimmte Seite zu rendern. Möglicherweise sind es ausgehende Anrufe an Dataverse oder zu anderen Integrationen wie Azure DevOps oder Office. Verwenden Sie die folgende Abfrage, um diese Daten abzurufen, die in der UCI-Request-Abhängigkeitstabelle verfügbar sind:
dependencies
| where type == "UCI REQUEST"
Die Abhängigkeitstabelle für UCI-Anforderungen enthält die folgenden Felder:
Name: Die von Einheitliche Oberfläche aufgerufene URL.
Ziel: Derzeit dasselbe wie Name.
Erfolg: Ob der Anruf erfolgreich war oder fehlgeschlagen ist.
UserId: Die Dataverse Systembenutzer-ID des angemeldeten Benutzers.
Dauer: Die Dauer des Anrufs.
customDimensions: Enthält die folgenden Attribute:
- appModule: Das AppModule, das den Aufruf tätigt.
- bodySize: Die Größe von Antwort, codiert und decodiert.
- zwischengespeichert: Ob die Anfrage an den lokalen Cache ging oder an den Server gehen musste. Dies funktioniert nicht wie erwartet, wenn der Endbenutzer auf dem Internet Explorer-Browser war.
- Download: Die zum Herunterladen von Antwort benötigte Zeit.
- stall: Die Zeit, die die Anforderung in der Browser-Warteschlange gewartet hat.
- ttfb: Die Wartezeit für Erster Kontakt, auch bekannt als „Zeit bis zum ersten Byte“. Diese Zeit erfasst die Latenz eines Roundtrips zum Server sowie die Wartezeit, bis der Server Antwort liefert.
- coldLatency: Die erste Schätzung der Netzwerklatenz, die die SSL-Handshake-Zeit beinhaltet.
- warmLatency: Die nachfolgende Schätzung der Netzwerklatenz, also die typische zu erwartende Latenz für jede Anfrage.
- warmThroughput: Der geschätzte Durchsatz des Netzwerks in KBit/s.
Szenarien entdecken und analysieren
Warum sind einige meiner Benutzer auf Einheitliche Oberfläche langsam?
Ein Szenario, in dem die Erkennung und Analyse wertvoll sein kann, ist, wenn ein Benutzer aus einer Region (z. B. Asien) meldet, dass ein Formular langsam ausgeführt wird. Dieser Benutzer mit Sitz in Asien greift möglicherweise auf eine Umgebung oder Organisation in Nordamerika zu. In den Details wird neben der netzwerkbezogenen Dauer auch die Gesamtladezeit angezeigt. Es kann gut sein, dass dies eine Ursache für die vom Benutzer wahrgenommene langsame Leistung ist.
Sie können die Attribute warmLatency, warmThroughput, und coldLatency verwenden, um zu verstehen, wie viel Zeit für das Laden von Seiten und andere Einheitliche Oberfläche-Anfragen aufgewendet wird, wie in der folgenden Abbildung gezeigt.
In der obigen Anfrage dauert die Einheitliche Oberfläche-Anfrage länger als die eigentliche Dataverse API-Anfrage (Web-API). Die Aufschlüsselung ist in diesem Fall die Dauer des Dataverse API-Aufrufs (56 ms) plus Wert von CustomDimensions.warmLatency (89 ms), was fast die Dauer des gesamten Vorgangs (144 ms) ausmacht. Der Wert warmLatency ist ein Hinweis auf die Langsamkeit für diesen bestimmten Client und kann ein Problem sein, das Sie auf Benutzerebene mithilfe der folgenden Abfrage analysieren können:
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
Kann ich feststellen, wie der Benutzer auf das System zugreift?
Das Attribut Benutzer-Agent im Feld customDimensions in der Tabelle Application Insights Anfragen enthält diese Daten. Mit der folgenden Abfrage können Sie sich einen Überblick über die verschiedenen Quellen verschaffen, aus denen Benutzer auf das System zugreifen:
pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id
dependencies
| where ['type'] == "UCI REQUEST"
Wenn der Wert customDimensions.userAgent beginnt mit | Von wo greift der Benutzer auf das System zu? |
---|---|
Mozilla | Browsertyp, Version |
Azure Logik-Apps | Azure Logik-Apps |
PowerApps | Power Apps |
Microsoft Office Excel | Office Excel |
Portale | Portale |
DynamicsDataIntegration | Dynamics-Datenintegration |
XrmToolBox.exe | XrmToolBox |
PluginRegistration | Plug-In-Registrierung |
LogicAppsDesigner | Designer für Logik-Apps |
Apache-HttpClient | Apache HTTP client |
Microsoft Flow | Power Automate |
UnifiedServiceDesk | Unified Service Desk |
PostmanRuntime | Postman |
OfficeGroupsConnector | Office Gruppen-Connector |
Microsoft.Daten.Mashup | Power Query |
Apache-Olingo | Apache Olingo |
Dalvik | Android |
Jakarta Commons-Http | Jakarta |
Informatica | Informatica |
axios | Axios |
node-fetch | NodeJS |
LinkedInBot | LinkedInBot |
Wie erhalte ich die Anzahl der Benutzer, die über Browser, mobile oder eingebettete Anwendungen zugreifen?
pageViews
| summarize count() by tostring(customDimensions.hostType)
Die folgende Abbildung zeigt einen Beispielsatz von Ergebnissen dieser Abfrage.
Wie kann ich mich auf einen bestimmten Benutzer eingrenzen?
pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)
Wie verwende ich Application Insights mit Monitor?
Azure Monitor hilft bei der Echtzeit-Fehlerbehebung während einer Sitzung von der Einheitliche Oberfläche-Seite aus. Die End-to-End-Transaktionsanfragen werden wahrscheinlich in Application Insights verfügbar sein. Um die Protokolle für eine bestimmte Aktion anzuzeigen, notieren Sie sich die Aktivitäts-ID aus einer Zeile auf der Ereignisdetailseite in Monitor. Sie können die Protokolle mit der folgenden Abfrage finden:
union *
| where operation_Id contains "[ActivityIdHere]"
Monitor ist ein Echtzeit-Debugging-Tool. Es sind jedoch möglicherweise einige Stunden lang keine Daten darin verfügbar.
Warum haben Benutzer Probleme mit einem bestimmten Formular?
Der Benutzer kann seine Sitzungs-ID aus dem Abschnitt Über in Einheitliche Oberfläche für die jeweilige Organisation freigeben.
Sie können diese ID dann verwenden, um Probleme zu finden, indem Sie sich alle Aktivitäten in dieser Sitzung ansehen. Verwenden Sie die folgende Abfrage:
union *
| where session_Id == '[sessionIdHere]'
Welche Formulare werden an verschiedenen Standorten verwendet und wie ist das Ladeverhalten der Formulare an diesen Standorten?
pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion
Ist ein externer API-Aufruf der Fehler und kann ich Drilldown ausführen in den Fehlerstapel eingeben, um beim Debuggen zu helfen?
Die Ansicht Browser des Bereichs Fehler enthält ausgehende Anfragen von Einheitliche Oberfläche. Die Anfragen gehen an Dataverse oder die Organisation enthält die Organisations-URL. Möglicherweise gehen andere Anfragen an andere URLs (in der folgenden Abbildung hat die Organisation beispielsweise eine Anpassung mit dem Aufruf dc.services.visualstudio.com). Sie können sich die End-to-End-Transaktion ansehen, um die Fehler bei diesen externen ausgehenden Anrufen genauer zu untersuchen.
Kann ich eine Warnung zum Leistungsschwellenwert für bestimmte Formularaktionen festlegen? Kann ein Hersteller nach Erhalt der Warnung das Problem diagnostizieren und beheben?
Ja Sie können Warnungen in Application Insights einrichten, um den Zustand Ihrer Anwendung überwachen.