與頁面載入和整合介面 (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唯一識別表單,並可用來使影響該特定表單的問題相互關聯。
- hostType:Browser/MobileApplication/Embedded
- isBoot:是否第一次載入工作階段?
-
loadType
- 0:首次造訪特定頁面類型 (例如,首次造訪表單)。
- 1:首次造訪特定設定 (例如,首次造訪帳戶表單)。
- 2:首次造訪特定記錄 (例如,首次造訪帳戶記錄 A2)。
- 3:先前已造訪過此 URL。
- navigationOrigin:使用者從中瀏覽的頁面類型。
- networkConnectivityState:裝置是否有連線。
- pageName:頁面載入的類型。
- serverConnectivityState:應用程式是否已連線至伺服器。
- 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 系統使用者識別碼。
持續時間:呼叫的持續時間。
customDimensions:包含下列屬性:
- appModule:發出呼叫的 appModule。
- bodySize:已編碼和解碼的回覆大小。
- 快取:要求已傳送至本機快取,或必須已傳送至伺服器。 如果終端使用者使用 Internet Explorer 瀏覽器,這就無法如預期般運作。
- 下載:下載回覆所花費的時間。
- 懸置:要求在瀏覽器佇列中等待的時間。
- 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 requests 資料表的 customDimensions 欄位中的 userAgent 屬性含有此資料。 您可以使用以下查詢,來取得使用者從不同來源存取系統的概觀:
pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id
dependencies
| where ['type'] == "UCI REQUEST"
| 當 customDimensions.userAgent 值的開頭為 | 使用者從何處存取系統? |
|---|---|
| Mozilla | 瀏覽器類型、版本 |
| azure-logic-apps | Azure Logic Apps |
| PowerApps | Power Apps |
| Microsoft Office Excel | 微軟 Excel |
| 入口網站 | 入口網站 |
| DynamicsDataIntegration | 動態資料整合 |
| XrmToolBox.exe | XrmToolBox |
| PluginRegistration | 插件註冊 |
| LogicAppsDesigner | Logic Apps 設計器 |
| Apache-HttpClient | Apache HTTP 用戶端 |
| Microsoft Flow | Power Automate |
| UnifiedServiceDesk | Unified Service Desk |
| PostmanRuntime | Postman |
| OfficeGroupsConnector | Office 群組連接器 |
| Microsoft.Data.Mashup | Power Query |
| 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 監視器有助於從整合介面端的工作階段進行即時疑難排解。有助於從整合介面端即時對工作階段進行疑難排解。 端對端交易要求或許可在 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 中設定警示,以監視應用程式的健康情況。