Udostępnij za pośrednictwem


Jakie dane są dostępne dla aplikacji opartych na modelach?

Dane dotyczące wydajności związane z ładowaniem stron i żądaniami sieciowymi ujednoliconego interfejsu (UCI) są dostępne dla aplikacji opartych na modelu.

Jaki rodzaj ładowania strony jest dostępny?

Pisz Dostępne dane dotyczące wydajności i diagnostyki
Ładowanie pulpitu nawigacyjnego (UCI) — przeglądarka Tak
Ładowanie pulpitu nawigacyjnego (UCI) — osadzone Tak
Ładowanie pulpitu nawigacyjnego (UCI) — aplikacja mobilna Tak
Ładowanie pulpitu nawigacyjnego (UCI) — aplikacja poczty Tak
Ładowanie pulpitu nawigacyjnego (UCI) — aplikacja mobilna Tak
Ładowanie EditForm (UCI) — przeglądarka Tak
Ładowanie EditForm (UCI) — osadzone Tak
Ładowanie EditForm (UCI) – aplikacja poczty Tak
Ładowanie EditForm (UCI) — aplikacja mobilna Tak
Ładowanie EntityList (UCI) – przeglądarka Tak
Ładowanie EntityList (UCI) — osadzone Tak
Ładowanie EntityList (UCI) — aplikacja poczty Tak
Ładowanie EntityList (UCI) — aplikacja mobilna Tak
Uruchamianie aplikacji — (UCI) — przeglądarka Tak
Uruchamianie aplikacji — (UCI) — osadzone Tak
Uruchamianie aplikacji — (UCI) — aplikacja poczty Tak
Uruchamianie aplikacji — (UCI) — aplikacja mobilna Tak
Ładowanie QuickCreateForm (UCI) — przeglądarka Tak
Ładowanie QuickCreateForm (UCI) — osadzone Tak
Ładowanie QuickCreateForm (UCI) — aplikacja poczty Tak
Ładowanie QuickCreateForm (UCI) — aplikacja mobilna Tak
SaveForm Obecnie niedostępne
Akcje CommandButton Obecnie niedostępne

Gdzie są dostępne dane ładowania strony?

Te dane trafiają do tabeli pageViews w Application Insights. Wpis jest rejestrowany za każdym razem, gdy użytkownik ładuje stronę w ujednoliconym interfejsie. Rejestrowane dane zawierają tylko „czyste” ładowania. Ładowania, których czas trwania nie może być dokładnie zmierzony — szybkie nawigacje, przełączenie się z aplikacji i komunikat o alertach — nie są uwzględniane. Z tego powodu nie zaleca się używania tych danych do dokładnych liczb powiązanych z analizą użycia.

W niestandardowych polach customDimensions są się inne właściwości, które zawierają więcej szczegółowych informacji na temat ujednoliconego interfejsu ładowania strony. Na przykład to zapytanie zwraca wartości wszystkich atrybutów w tabeli pageViews.

pageViews
| take 1

Tabela pageViews Application Insights.

Atrybuty tabeli pageViews obejmują:

  • appModule: nazwa modułu aplikacji.
  • entityName: Ten atrybut jest obecny, gdy ma to zastosowanie. Jest dostępny na takich typach stron, jak EditForm, EntityList i Pulpity nawigacyjne, gdy są ona powiązane z encją. W niektórych scenariuszach formularz nie jest powiązany z encją i wartość jest wyświetlana jako niezdefiniowana.
  • formId: Identyfikator formId w sposób unikatowy określa formularz i może służyć do korelowania problemów mających wpływ na określony formularz.
  • hostType: przeglądarka/aplikacja mobilna/osadzone
  • isBoot: Czy to jest pierwsze załadowanie sesji?
  • loadType
    • 0: pierwsza wizyta na konkretnym typie strony (na przykład pierwsze wyświetlenie formularza).
    • 1: pierwsza wizyta w konkretnej konfiguracji (na przykład pierwsze wyświetlenie formularza konta).
    • 2: pierwsza wizyta w konkretnym rekordzie (na przykład pierwsze wyświetlenie rekordu konta A2).
    • 3: Ten dokładny adres URL został wcześniej odwiedzony.
  • navigationOrigin: typ strony, z której przybył użytkownik.
  • networkConnectivityState: czy urządzenie ma połączenie.
  • pageName: typ ładowania strony.
  • serverConnectivityState: czy aplikacja jest połączona z serwerem.
  • syncRequestTime: czas spędzony na oczekiwaniu na żądania synchroniczne.
  • coldLatency: pierwsze szacowanie opóźnienia sieci, które obejmuje czas nawiązania połączenia protokołu SSL.
  • warmLatency: kolejne oszacowanie opóźnienia sieci, które jest typowym oczekiwanym opóźnieniem dla każdego żądania.
  • warmThroughput: szacowana przepływność sieci w Kb/s.

W przypadku Microsoft Dataverse pole Identyfikator lub operation_ParentId w Application Insights to x-ms-service-request-id. operationId mapuje do activityId na zapleczu w celów rozwiązywania problemów i zgłoszeń do pomocy technicznej.

Jaki rodzaj danych jest dostępny dla wychodzących zapytań sieciowych UCI?

Są to wywołania do innych zależności wykonywane przez ujednolicony interfejs w celu renderowania określonej strony. Mogą to być wychodzące połączenia do Dataverse lub do innych integracji, takich Azure DevOps lub Office. Użyj poniższego zapytania, aby uzyskać te dane, które są dostępne w tabeli zależności żądań UCI:

dependencies
| where type == "UCI REQUEST"

Tabela zależności żądań UCI zawiera następujące pola:

  • Name: adres URL wywoływany przez ujednolicony interfejs.

  • Target: obecnie ta sama wartość Name.

  • Success: czy wywołanie zakończyło się powodzeniem, czy nie udało się.

  • UserId: identyfikator zalogowanego użytkownika w systemie Dataverse.

  • Duration: czas trwania wywołania.

  • customDimensions: Zawiera następujące atrybuty:

    ŻĄDANIE UCI Application Insights.

    • appModule: appModule wykonujący wywołanie.
    • bodySize: rozmiar odpowiedzi, zakodowanej i niezakodowanej.
    • cached: czy żądanie trafiło do lokalnej pamięci podręcznej, czy musiało zostać skierowane do serwera. Nie działa to zgodnie z oczekiwaniami, jeśli użytkownik końcowy korzystał a przeglądarki Internet Explorer.
    • download: ile czasu trwało pobranie odpowiedzi.
    • stall: czas, przez który żądanie czekało w kolejce przeglądarki.
    • ttfb: Czas oczekiwania na początkową odpowiedź, znany również jako "czas do pierwszych bajtów". Ten czas pozwala na przechwytywanie nie tylko czasu oczekiwania na dostarczenie odpowiedzi na serwer, ale również czas spędzony na oczekiwaniu na dostarczenie odpowiedzi.
    • coldLatency: pierwsze szacowanie opóźnienia sieci, które obejmuje czas nawiązania połączenia protokołu SSL.
    • warmLatency: kolejne oszacowanie opóźnienia sieci, które jest typowym oczekiwanym opóźnieniem dla każdego żądania.
    • warmThroughput: szacowana przepływność sieci w Kb/s.

Poznaj i analizuj scenariusze

Dlaczego u niektórych moich użytkowników ujednolicony interfejs działa powoli?

Jednym ze scenariuszy, w których odnajdywanie i analizy mogą być przydatne, jest taki, kiedy użytkownik z regionu (na przykład Azji) zgłasza, że formularz działa powoli. Ten użytkownik z Azji może mieć dostęp do środowiska lub organizacji w Ameryce Północnej. W szczegółach pokazano łączny czas ładowania oprócz czasu trwania związanego z siecią. Powodem może być zbyt wolne działanie użytkownika.

Atrybutów warmLatency,, warmThroughtronic i coldLatency można używać do sprawdzenia podziału czasu spędzanego na ładowaniu stron i innych żądaniach ujednoliconego interfejsu, jak pokazano na poniższym obrazku.

Powolne UCI Application Insights.

W powyższym żądaniu, żądanie ujednoliconego interfejsu trwa dłużej niż rzeczywiste żądanie API Dataverse (internetowy interfejs API). Podział w tym przypadku to: czas trwania wywołania API Dataverse (56 ms) oraz wartość CustomDimensions.warmLatency (89 ms), co daje razem prawie czas trwania całej operacji (144 ms). Wartość warmLatency wskazuje na powolność w przypadku tego konkretnego klienta i może stanowić problem, który można analizować na poziomie użytkownika przy użyciu następującego zapytania:

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

Czy można ustalić, w jaki sposób użytkownik uzyskuje dostęp do systemu?

Atrybut userAgent w polu customDimensions w tabeli żądań Application Insights zawiera te dane. Można użyć następującego zapytania, aby uzyskać omówienie różnych źródeł uzyskiwania dostępu do systemu przez użytkowników:

pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id

dependencies
| where ['type'] == "UCI REQUEST"
Gdy wartość customDimensions.userAgent rozpoczyna się od Skąd użytkownik uzyskuje dostęp do systemu?
Mozilla Typ przeglądarki, wersja
azure-logic-apps Azure Logic Apps
PowerApps Power Apps
Microsoft Office Excel Office Excel
Portale Portale
DynamicsDataIntegration Integracja danych Dynamics
XrmToolBox.exe XrmToolBox
PluginRegistration Plugin Registration
LogicAppsDesigner Projektant usługi Logic Apps
Apache-HttpClient Klient protokołu HTTP Apache
Microsoft Flow Power Automate
UnifiedServiceDesk Unified Service Desk
PostmanRuntime Postman
OfficeGroupsConnector Łącznik grup 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

Jak uzyskać liczbę użytkowników korzystających z przeglądarki, aplikacji mobilnych lub osadzonych?

pageViews
| summarize count() by tostring(customDimensions.hostType)

Na poniższym obrazie przedstawiono przykładowy zestaw wyników zapytania.

Przykładowy zestaw wyników Application Insights.

Jak zawęzić zakres do konkretnego użytkownika?

pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)

Jak użyć tego Application Insights z Monitor?

Azure Monitor pomaga w rozwiązywaniu problemów w czasie rzeczywistym na sesji od strony ujednoliconego interfejsu. Żądania kompleksowej transakcji będą najprawdopodobniej dostępne w programie Application Insights. Aby sprawdzić dzienniki pod kątem danej akcji, zapisz identyfikator działania z wiersza na stronie szczegółów zdarzenia w Monitorze. Dzienniki można znaleźć za pomocą następującego zapytania:

union *
| where operation_Id contains "[ActivityIdHere]"

Monitor to narzędzie do debugowania w czasie rzeczywistym. Jednak dane mogą nie być w nim dostępne przez kilka godzin.

Dlaczego użytkownicy doświadczają problemów z określonym formularzem?

Użytkownik może udostępnić swój identyfikator sesji z sekcji Informacje w ujednoliconym interfejsie dla określonej organizacji.

Ustawienia > Informacje.

Ustawienia > O identyfikatorze sesji.

Można następnie użyć tego identyfikatora do znalezienia problemów, poprzez przyjrzenie się wszystkim działaniom w danej sesji. Użyj następującego zapytania:

union *
| where session_Id == '[sessionIdHere]'

Które formularze są używane w różnych lokalizacjach i jaka jest wydajność ładowania formularzy w tych lokalizacjach?

pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion

Czy zewnętrzne wywołanie interfejsu API jest usterką i czy można przejść do szczegółów w stosie błędów aby ułatwić debugowanie?

Widok Przeglądarka panelu Niepowodzenia zawiera ujednolicony interfejs żądań wychodzących. Żądania przechodzące do Dataverse lub organizacji zawierają adres URL organizacji. Mogą istnieć inne żądania do innych adresów URL (na przykład, na poniższym obrazie, organizacja ma dostosowanie wywołujące na zewnątrz do dc.services.visualstudio.com). Możesz zapoznać się z kompleksowym obrazem transakcji, aby dokładniej zbadać niepowodzenia dotyczące tych zewnętrznych wywołań wychodzących.

Przeglądaj zawartość panelu Niepowodzenia.

Czy można ustawić alert dla progów wydajności dla pewnych akcji formularza? Czy po otrzymaniu alertu twórca będzie mógł diagnozować i rozwiązywać problemy?

Tak. Można skonfigurować alerty w Application Insights w celu monitorowania kondycji aplikacji.