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
Atrybuty tabeli pageViews obejmują:
- appModule: nazwa modułu aplikacji.
- entityName: ten atrybut jest obecny, gdy jest to istotne. 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 jednoznacznie identyfikuje formularz i może być używany do korelowania problemów wpływających na ten konkretny formularz.
- Typ hosta: Przeglądarka/Aplikacja mobilna/Osadzony
- isBoot: Czy jest to pierwsze ładowanie sesji?
- loadType (typ obciążenia)
- 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 użytkownik przeszedł do sieci.
- networkConnectivityState: określa, czy urządzenie ma połączenie.
- pageName: typ wczytywania strony.
- serverConnectivityState: określa, czy aplikacja jest połączona z serwerem.
- syncRequestTime: czas spędzony na oczekiwaniu na żądania synchroniczne.
- coldLatency: pierwsze oszacowanie opóźnienia sieci, które obejmuje czas uzgadniania 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:
Nazwa: Adres URL wywoływany przez ujednolicony interfejs.
Cel: obecnie taki sam jak nazwa.
Powodzenie: czy wywołanie zakończyło się powodzeniem, czy niepowodzeniem.
UserId: Dataverse identyfikator użytkownika systemowego zalogowanego użytkownika.
Czas trwania: czas trwania połączenia.
customDimensions: zawiera następujące atrybuty:
- appModule: moduł appModule wykonujący połączenie.
- bodySize: rozmiar odpowiedzi, zakodowany i zdekodowany.
- cached: określa, czy żądanie trafiło do lokalnej pamięci podręcznej, czy musiało przejść do serwera. Nie działa to zgodnie z oczekiwaniami, jeśli użytkownik końcowy korzystał a przeglądarki Internet Explorer.
- download: czas potrzebny na pobranie odpowiedzi.
- stall: czas, w którym żądanie oczekiwało w kolejce przeglądarki.
- ttfb: Czas spędzony na oczekiwaniu na początkową odpowiedź, znany również jako "czas do pierwszego bajtu". Ten czas przechwytuje opóźnienie podróży w obie strony do serwera, a także czas spędzony na oczekiwaniu na dostarczenie odpowiedzi przez serwer.
- coldLatency: pierwsze oszacowanie opóźnienia sieci, które obejmuje czas uzgadniania 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.
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 (Połączenie danych) | 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.
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?
Usługa Azure Monitor pomaga w rozwiązywaniu problemów w czasie rzeczywistym w sesji z poziomu 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.
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.
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.