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

Application Insights pageViews Tabelle.

Die Tabelle pageViews enthält folgende Attribute:

  • appModul: 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 legt ein Formular eindeutig fest und kann verwendet werden, um Probleme zu korrelieren, die dieses bestimmte Formular betreffen.
  • hostType: Browser/Mobile Anwendung/Eingebettet
  • isBoot: Ist dies die erste Ladung einer Sitzung?
  • loadType
    • 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 aus 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 auf synchrone Anforderungen.
  • coldLatency: Die erste Schätzung der Netzwerklatenz, einschließlich der SSL-Handshake-Zeit.
  • warmLatency: Die nachfolgende Schätzung der Netzwerklatenz, die die typische erwartete Latenz für jede Anfrage ist.
  • 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 URL, die von Einheitliche Oberfläche aufgerufen wird.

  • Ziel: Derzeit das Gleiche wie Name.

  • Erfolg: Ob der Aufruf erfolgreich war oder nicht.

  • UserId: Die Dataverse-Systembenutzer-ID des angemeldeten Benutzers.

  • Dauer:: Die Dauer des Aufrufs.

  • customDimensions: Enthält die folgenden Attribute:

    Application Insights UCI-ANFRAGE.

    • appModule: Das appModule, das den Anruf tätigt.
    • bodySize: Die Größe der Antwort, codiert und decodiert.
    • cached: 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 der Antwort benötigte Zeit.
    • stall: Die Zeit, in der die Anfrage in der Browserwarteschlange gewartet hat.
    • ttfb: Die Zeit, die für das Warten auf die erste Antwort aufgewendet wird, auch als „Zeit bis zum ersten Byte“ bekannt. Diese Zeit erfasst die Latenz eines Roundtrips zum Server zusätzlich zu der Zeit, die damit verbracht wird, auf die Zustellung der Antwort durch den Server zu warten.
    • coldLatency: Die erste Schätzung der Netzwerklatenz, einschließlich der SSL-Handshake-Zeit.
    • warmLatency: Die nachfolgende Schätzung der Netzwerklatenz, die die typische erwartete Latenz für jede Anfrage ist.
    • 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.

Application Insights UCI Langsamkeit.

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

Application Insights Beispiel Ergebnismenge.

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 in einer Sitzung von der Seite Einheitliche Oberfläche. 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.

Einstellungen > Über.

Einstellungen > Über Sitzungs-ID.

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.

Durchsuchen-Ansicht des Fehlerfensters.

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.