模型導向應用程式可以使用哪些資料?
與頁面載入和整合介面 (UCI) 輸出網路要求的效能資料,可用於模型導向應用程式。
有哪些類型的頁面載入可用?
類型 | 可用的效能和診斷資料 |
---|---|
儀表板載入 (UCI) – 瀏覽器 | .是 |
儀表板載入 (UCI) – 內嵌 | .是 |
儀表板載入 (UCI) - MobileApplication | .是 |
儀表板載入 (UCI) – MailApp | .是 |
儀表板載入 (UCI) - MobileApplication | .是 |
EditForm 載入 (UCI) – 瀏覽器 | .是 |
EditForm 載入 (UCI) – 內嵌 | .是 |
EditForm 載入 (UCI) – MailApp | .是 |
EditForm 載入 (UCI) - MobileApplication | .是 |
EntityList 載入 (UCI) – 瀏覽器 | .是 |
EntityList 載入 (UCI) – 內嵌 | .是 |
EntityList 載入 (UCI) – MailApp | .是 |
EntityList 載入 (UCI) – MobileApplication | .是 |
啟動應用程式 - (UCI) – 瀏覽器 | .是 |
啟動應用程式 - (UCI) – 內嵌 | .是 |
啟動應用程式 - (UCI) – MailApp | .是 |
啟動應用程式 (UCI) – MobileApplication | .是 |
QuickCreateForm 載入 (UCI) – 瀏覽器 | .是 |
QuickCreateForm 載入 (UCI) – 內嵌 | .是 |
QuickCreateForm 載入 (UCI) – MailApp | .是 |
QuickCreateForm 載入 (UCI) – MobileApplication | .是 |
SaveForm | 目前無法使用 |
CommandButton 動作 | 目前無法使用 |
頁面載入資料可在哪裡使用?
此資料會移至 Application Insights 的 pageViews 資料表中。 每次使用者在整合介面中載入頁面時,都會記錄一個項目。 已記錄的資料只會包括「乾淨」載入。 無法準確測量持續時間的負載快速導覽、離開應用程式、警示訊息不會包含在內。 因此,我們建議您不要使用此資料來取得與使用情況分析相關的準確數字。
customDimensions 中還有其他屬性,可提供整合介面頁面載入的詳細資料。 例如,此查詢將會傳回 pageViews 資料表中所有屬性的值。
pageViews
| take 1
PageViews 資料表屬性包括:
- appModule:應用模組名稱。
- entityName:此屬性在相關時存在。 其可用於 EditForm、EntityList 和 Dashboards 等頁面類型 (當它們繫結到實體時)。 在某些情況下,表單不會繫結到實體,而且值會以未定義的方式顯示。
- formId: formId 唯一標識表單,可用於關聯影響該特定表單的問題。
- 主機類型:瀏覽器/移動應用程式/嵌入式
- isBoot:這是會話的第一次載入嗎?
- loadType
- 0:首次造訪特定頁面類型 (例如,首次造訪表單)。
- 1:首次造訪特定設定 (例如,首次造訪帳戶表單)。
- 2:首次造訪特定記錄 (例如,首次造訪帳戶記錄 A2)。
- 3:先前已造訪過此 URL。
- navigationOrigin:使用者從中導航的頁面類型。
- networkConnectivityState:設備是否有連接。
- pageName:頁面載入的類型。
- serverConnectivityState:App 是否連接到伺服器。
- syncRequestTime:等待同步請求所花費的時間。
- coldLatency:網路延遲的第一次估計值,其中包括 SSL 握手時間。
- warmLatency:網路延遲的後續估計值,即每個請求的典型預期延遲。
- warmThroughput:網路的估計輸送量,以 Kbps 為單位。
對於 Microsoft Dataverse 事件,識別碼欄位或 Application Insights 中的 operation_ParentId 為 x-ms-service-request-id。OperationId對應到後端上的 activityId,以進行疑難排解和支援要求。
UCI 輸出網路要求可使用哪種資料?
這些是整合介面為呈現特定頁面而對其他相依性的呼叫。 它們可能是對 Dataverse 或其他整合 (如 Azure DevOps 或 Office) 的傳出呼叫。 使用以下查詢來取得此資料,其可在 UCI 要求相依性資料表中找到:
dependencies
| where type == "UCI REQUEST"
UCI 要求相依性資料表包含以下欄位:
名稱:整合介面調用的 URL。
目標:當前與 名稱 相同。
成功:調用是成功還是失敗。
UserId: Dataverse 已登錄用戶的系統使用者 ID。
Duration:通話的持續時間。
customDimensions:包含以下屬性:
- appModule:進行調用的 appModule。
- bodySize:回覆的大小,經過編碼和解碼。
- cached:請求是轉到本地緩存還是必須轉到伺服器。 如果使用者使用 Internet Explorer 瀏覽器,這將不會如預期運作。
- download:下載回覆所花費的時間。
- stall:請求在瀏覽器佇列中等待的時間。
- ttfb:等待初始回覆所花費的時間,也稱為“首位元組時間”。除了等待伺服器交付回覆所花費的時間外,此時間還會捕獲到伺服器的往返延遲。
- coldLatency:網路延遲的第一次估計值,其中包括 SSL 握手時間。
- warmLatency:網路延遲的後續估計值,即每個請求的典型預期延遲。
- warmThroughput:網路的估計輸送量,以 Kbps 為單位。
探索並分析案例
為何我的部分使用者會在整合介面上遇到速度緩慢的問題?
其中一個值得探索和分析的案例是,某個地區 (例如亞洲) 的使用者報告表單執行速度緩慢。 這個位於亞洲的使用者可能正在存取北美的環境或組織。 除了與網路相關的持續時間之外,詳細資料也會顯示總載入時間。 這很可能是使用者會認為的效能低落原因。
您可以使用 warmLatency、warmThroughput 和 coldLatency 屬性來瞭解在頁面載入和其他整合介面要求上花費時間的明細,如下圖所示。
在上述要求中,整合介面要求比實際 Dataverse API (Web API) 要求花費的時間更長。 此案例中的明細為 Dataverse API 呼叫的持續時間 (56 毫秒) 加上 CustomDimensions.warmLatency 的值 (89 毫秒),加起來幾乎等於整個作業的持續時間 (144 毫秒)。 WarmLatency 值表示該特定用戶端速度緩慢,您也許可以使用以下查詢在使用者層級分析此問題:
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
我可以判斷使用者存取系統的方式嗎?
Application Insights 要求資料表的 customDimensions 欄位中的 userAgent 屬性包含此資料。 您可以使用以下查詢,來取得使用者從不同來源存取系統的概觀:
pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id
dependencies
| where ['type'] == "UCI REQUEST"
當 customDimensions.userAgent 值的開頭為 | 使用者從何處存取系統? |
---|---|
Mozilla | 瀏覽器類型、版本 |
azure-logic-apps | Azure Logic 應用程式 |
PowerApps | Power Apps |
Microsoft Office Excel | Office Excel |
入口網站 | 入口網站 |
DynamicsDataIntegration | 動態資料整合 |
XrmToolBox.exe | XrmToolBox |
PluginRegistration | Plugin Registration |
LogicAppsDesigner | Logic Apps Designer |
Apache-HttpClient | Apache HTTP 用戶端 |
Microsoft Flow | Power Automate |
UnifiedServiceDesk | Unified Service Desk |
PostmanRuntime | Postman |
OfficeGroupsConnector | Office 群組連接器 |
Microsoft.Data.Mashup 外掛程式 | Power Query |
Apache-Olingo | Apache Olingo |
Dalvik | Android |
Jakarta Commons-Http | 雅加達 |
Informatica | Informatica |
axios | Axios |
node-fetch | NodeJS |
LinkedInBot | LinkedInBot |
如何取得從瀏覽器、行動裝置或內嵌應用程式存取的使用者計數?
pageViews
| summarize count() by tostring(customDimensions.hostType)
下圖顯示此查詢結果集的範例。
如何縮小至特定使用者?
pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)
如何將 Application Insights 與監視器一起使用?
Azure Monitor 有助於從整合介面端對會話進行即時故障排除。 端到端交易要求可能可在 Application Insights 中使用。 若要查看指定動作的記錄,請在監視器事件詳細資料頁面中,記下資料列的活動識別碼。 您可以使用以下查詢尋找記錄:
union *
| where operation_Id contains "[ActivityIdHere]"
監視器為即時偵錯工具; 但資料可能在幾個小時內無法使用。
為何使用者會遇到特定表單的問題?
使用者可以從特定組織整合介面的關於區段中,共用其工作階段識別碼 。
然後,您可以使用此識別碼查看該工作階段中的所有活動,以尋找問題。 使用以下查詢:
union *
| where session_Id == '[sessionIdHere]'
不同位置使用了哪些表單,以及這些位置表單的載入效能?
pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion
外部 API 呼叫失敗,我可以深入查看錯誤堆疊以幫助偵錯嗎?
失敗面板的瀏覽器檢視包含整合介面輸出要求。 傳送到 Dataverse 或組織的要求包含組織 URL。 可能會有其他要求傳送到其他 URL (例如,組織具有呼叫 dc.services.visualstudio.com 的自訂,如下圖所示)。 您可以查看端對端交易,以進一步檢查失敗的外部輸出呼叫。
我可以針對特定表單動作設定效能閾值警示嗎? 當收到警示後,是否允許製作者診斷並疑難排解問題?
可以。 您可以在 Application Insights 中設定警示,以監視應用程式的健全情況。