Jaká data jsou k dispozici pro modelem řízené aplikace?
Údaje o výkonu související s načítáním stránky a odchozími síťovými požadavky na Sjednocené rozhraní (UCI) jsou k dispozici pro modelem řízené aplikace.
Jaký druh načítání stránek je k dispozici?
Typ | Dostupné údaje o výkonu a diagnostice |
---|---|
Načtení řídicího panelu (UCI) – prohlížeč | Ano |
Načtení řídicího panelu (UCI) – integrované | Ano |
Načtení řídicího panelu (UCI) – MobileApplication | Ano |
Načtení řídicího panelu (UCI) – MailApp | Ano |
Načtení řídicího panelu (UCI) – MobileApplication | Ano |
Načtení EditForm (UCI) – prohlížeč | Ano |
Načtení EditForm (UCI) – integrované | Ano |
EditForm Load (UCI) - MailApp | Ano |
Načtení EditForm (UCI) – MobileApplication | Ano |
Načtení EntityList (UCI) – prohlížeč | Ano |
Načtení EntityList (UCI) – vložené | Ano |
Načtení EntityList (UCI) – MailApp | Ano |
Načtení EntityList (UCI) – MobileApplication | Ano |
Spuštění aplikace – (UCI) – prohlížeč | Ano |
Spuštění aplikace – (UCI) – vložené | Ano |
Spuštění aplikace – (UCI) – MailApp | Ano |
Spuštění aplikace – (UCI) – MobileApplication | Ano |
Načtení QuickCreateForm (UCI) – prohlížeč | Ano |
Načtení QuickCreateForm (UCI) – vložené | Ano |
Načtení QuickCreateForm (UCI) – MailApp | Ano |
Načtení QuickCreateForm (UCI) – MobileApplication | Ano |
SaveForm | Aktuálně nedostupné |
Akce CommandButton | Aktuálně nedostupné |
Kde jsou k dispozici údaje o načtení stránky?
Tato data jsou odesílána do tabulky pageViews ve službě Application Insights. Pokaždé, když uživatel načte stránku ve Sjednoceném rozhraní, bude proveden záznam. Zaznamenaná data zahrnují pouze „čistá“ načtení. Načtení, jejichž dobu trvání nelze přesně změřit – rychlá orientace, přepnutí z aplikace, výstražná zpráva – nejsou zahrnuty. Z tohoto důvodu doporučujeme nepoužívat tato data pro přesná čísla související s analýzou využití.
V části customDimensions existují další vlastnosti, které obsahují další podrobnosti o načítání stránek Sjednoceného rozhraní. Například tento dotaz vrací hodnoty pro všechny atributy v tabulce pageViews.
pageViews
| take 1
Atributy tabulky pageViews zahrnují:
- appModule: Název modulu aplikace.
- entityName: Tento atribut je přítomen, když je relevantní. Je k dispozici u typů stránek, jako je EditForm, EntityList a Řídicí panely, když jsou vázány na entitu. V některých scénářích není formulář vázán na entitu a hodnota se zobrazí jako nedefinovaná.
- formId: formId jedinečně identifikuje formulář a lze jej použít ke korelaci problémů ovlivňujících tento konkrétní formulář.
- hostType: Prohlížeč/mobilní aplikace/embedded
- isBoot: Je to první načtení relace?
- loadType
- 0: První návštěva konkrétního typu stránky (například první návštěva formuláře).
- 1: První návštěva konkrétní konfigurace (například první návštěva formuláře účtu).
- 2: První návštěva konkrétního záznamu (například první návštěva záznamu účtu A2).
- 3: Tato adresa URL byla již dříve navštívena.
- navigationOrigin: Typ stránky, ze které uživatel navigoval.
- networkConnectivityState: Zda má zařízení připojení.
- pageName: Typ načtení stránky.
- serverConnectivityState: Zda je aplikace připojena k serveru.
- syncRequestTime: Doba strávená čekáním na synchronní požadavky.
- coldLatency: První odhad latence sítě, který zahrnuje dobu handshake SSL.
- warmLatency: Následný odhad latence sítě, což je typická očekávaná latence pro každý požadavek.
- warmThroughput: Odhadovaná propustnost sítě v kb/s.
Pro události Microsoft Dataverse je pole ID nebo operation_ParentId ve službě Application Insights x-ms-service-request-id. operationId se namapuje do activityId na pozadí pro účely řešení potíží a požadavků na podporu.
Jaký typ dat je k dispozici pro odchozí požadavky sítě UCI?
Jedná se o volání dalších závislostí provedených Sjednoceným rozhraním za účelem vykreslení určité stránky. Může jít o odchozí volání na Dataverse nebo na jiné integrace jako Azure DevOps nebo Office. Pomocí následujícího dotazu získáte tato data, která jsou k dispozici v tabulce závislostí požadavků UCI:
dependencies
| where type == "UCI REQUEST"
Tabulka závislostí požadavků UCI obsahuje následující pole:
Název: Adresa URL vyvolaná Sjednocené rozhraní.
Cíl: Aktuálně stejný jako Jméno.
Úspěch: Zda byl hovor úspěšný nebo neúspěšný.
UserId: Dataverse ID systémového uživatele přihlášeného uživatele.
Duration: Délka hovoru.
customDimensions: Obsahuje následující atributy:
- appModule: AppModule provádějící volání.
- bodySize: Velikost odpověď, zakódovaná a dekódovaná.
- cached: Zda požadavek šel do místní mezipaměti nebo musel jít na server. Toto nefunguje podle očekávání, pokud koncový uživatel používá prohlížeč Internet Explorer.
- download: Doba potřebná ke stažení odpověď.
- stall: Čas, kdy požadavek čekal ve frontě prohlížeče.
- ttfb: Čas strávený čekáním na První odpověď, také známý jako „čas do prvního bajtu“. Tento čas zachycuje latenci zpáteční cesty na server kromě času stráveného čekáním, než server doručí odpověď.
- coldLatency: První odhad latence sítě, který zahrnuje dobu handshake SSL.
- warmLatency: Následný odhad latence sítě, což je typická očekávaná latence pro každý požadavek.
- warmThroughput: Odhadovaná propustnost sítě v kb/s.
Objevujte a analyzujte scénáře
Proč někteří z mých uživatelů zažívají na Sjednoceném rozhraní zpomalení?
Jednou ze situací, kdy může být zjišťování a analýza cenná, je scénář, kdy uživatel z určité oblasti (např. z Asie) hlásí, že formulář funguje pomalu. Tento uživatel se sídlem v Asii má přístup k prostředí nebo organizaci v Severní Americe. Podrobnosti ukazují kromě doby trvání ve vztahu k síti také celkovou dobu načítání. Může se stát, že právě toto je příčinou pomalého výkonu vnímaného uživatelem.
Můžete použít atributy warmLatency, warmThroughput a coldLatency k pochopení rozpisu času stráveného načítáním stránky a dalšími požadavky ze strany Sjednoceného rozhraní, jak je znázorněno na následujícím obrázku.
Ve výše uvedeném požadavku trvá požadavek Sjednoceného rozhraní déle, než je samotný požadavek na rozhraní API systému Dataverse (Webové rozhraní API). Rozpis je v tomto případě doba trvání volání rozhraní API systému Dataverse (56 ms) plus hodnota CustomDimensions.warmLatency (89 ms), což zvyšuje dobu trvání celé operace (144 ms). Hodnota warmLatency indikuje pomalost pro konkrétního klienta a může představovat problém, který můžete analyzovat na uživatelské úrovni pomocí následujícího dotazu:
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
Mohu určit, jak uživatel přistupuje do systému?
Atribut userAgent v poli customDimensions v tabulce požadavků Application Insights obsahuje tato data. Následující dotaz můžete použít k získání přehledu o různých zdrojích, z nichž uživatelé přistupují do systému:
pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id
dependencies
| where ['type'] == "UCI REQUEST"
Když hodnota customDimensions.userAgent začíná | Odkud uživatel přistupuje do systému? |
---|---|
Mozilla | Typ prohlížeče, verze |
azure-logic-apps | Azure Logic Apps |
PowerApps | Power Apps |
Microsoft Office Excel | Office Excel |
Portály | Portály |
DynamicsDataIntegration | Integrace dat Dynamics |
XrmToolBox.exe | XrmToolBox |
PluginRegistration | Registrace modulu plug-in |
LogicAppsDesigner | Logic Apps Designer |
Apache-HttpClient | Klient HTTP Apache |
Microsoft Flow | Power Automate |
UnifiedServiceDesk | Unified Service Desk |
PostmanRuntime | Postman |
OfficeGroupsConnector | Konektor pro Skupiny 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 zjistím počet uživatelů, kteří provádějí přístup z prohlížeče, mobilních nebo integrovaných aplikací?
pageViews
| summarize count() by tostring(customDimensions.hostType)
Následující obrázek znázorňuje ukázkovou sadu výsledků z tohoto dotazu.
Jak provedu zúžení výběru na konkrétního uživatele?
pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)
Jak se používá Application Insights s monitorem?
Azure Monitor pomáhá s odstraňováním problémů v reálném čase na relaci ze strany Sjednocené rozhraní. Transakční požadavky typu end-to-end budou pravděpodobně k dispozici ve službě Application Insights. Chcete-li se podívat na protokoly pro danou akci, poznamenejte si ID aktivity z řádku na stránce podrobností události ve službě Monitor. Protokoly lze najít pomocí následujícího dotazu:
union *
| where operation_Id contains "[ActivityIdHere]"
Monitor je nástroj pro ladění v reálném čase; data však nemusí být k dispozici po dobu několika hodin.
Proč mají uživatelé problémy s konkrétním formulářem?
Uživatel může sdílet ID své relace z části O službě ve Sjednoceném rozhraní pro konkrétní organizaci.
Toto ID pak můžete použít k vyhledání problémů při prohlížení všech aktivit v dané relaci. Spusťte následující dotaz:
union *
| where session_Id == '[sessionIdHere]'
Které formuláře se používají v různých umístěních a jaký je výkon načítání formulářů v těchto umístěních?
pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion
Je volání externího rozhraní API selháním a můžu přejít k podrobnostem zásobníku chyb pro pomoc s laděním?
Náhled Prohlížeče na panel Selhání obsahuje odchozí požadavky Sjednoceného rozhraní. Žádosti na systém Dataverse nebo organizace obsahují adresu URL organizace. Na jiné adresy URL mohou přicházet jiné požadavky (například na následujícím obrázku má organizace vlastní nastavení, které volá na adresu dc.services.visualstudio.com). Můžete se podívat na transakci typu end-to-end a dále prozkoumat selhání těchto externích odchozích volání.
Mohu nastavit upozornění na prahovou hodnotu výkonu pro určité akce formuláře? Umožní po přijetí výstrahy tvůrci diagnostikovat a vyřešit problém?
Ano. Můžete nastavit výstrahy ve službě Application Insights za účelem sledování stavu vaší aplikace.