使用 Application Insights 分析系統產生的記錄檔

您可以將畫布應用程式連接至 Application Insights 這個 Azure 監視器功能。 Application Insights 包含功能強大的分析工具,可協助您診斷問題並了解使用者實際使用應用程式執行的操作。 您可以收集資訊,協助您推動更周延的商業決策並改善您的應用程式品質。

在此快速入門中,我們使用名為 Kudos 的畫布應用程式,探索畫布應用程式中系統產生記錄檔的概念,並將這些記錄檔套用至您的應用程式。 範例 Kudos 應用程式是員工參與應用程式套件的一部分,可從員工體驗入門套件下載取得。

先決條件

注意

若要查看遙測資訊,租用戶管理員必須啟用畫布應用程式深入解析。 以系統管理員身分在 Power Platform 系統管理中心中登入。 移至設定 > 租用戶設定 > 畫布應用程式深入解析在畫布應用程式深入解析窗格中,將切換開關設定為並儲存您的變更。 如需詳細資訊,請參閱租用戶設定

選用

建立 Application Insights 資源

從應用程式傳送系統產生的記錄檔之前,您必須建立 Application Insights 資源以儲存事件。

  1. 登入 Azure 入口網站

  2. 搜尋 Application Insights:

    Application Insights。

  3. 建立 Application Insights 資源:

    新增 Application Insights 資源。

  4. 輸入適當值及選取 Review + create

    如需其他詳細資料,請參閱 建立 Application Insights 資源

    建立資源。

  5. 建立 Application Insights 執行個體之後,複製執行個體概觀中的檢測金鑰,以便在後續步驟中使用。

    複製檢測金鑰。

連線您的應用程式到 Application Insights

注意

  • 指定檢測金鑰時,請留意資料可以跨租用戶傳送。 即使目標應用程式深入解析執行個體與應用程式位於不同的租用戶中,也會將追蹤事件傳送至與您為應用程式所設定之檢測金鑰相對應的應用程式深入解析資源。
  • 匯入現有的 .msapp 檔案時,請務必小心,因為可能存在應用程式深入解析的檢測金鑰。 匯入之後,請手動開啟應用程式,以確認使用的是正確的應用程式深入解析檢測金鑰。
  1. 登入 Power Apps

  2. 在左導覽窗格中,選取 Apps。 從應用程式清單選取 Kudos 應用程式,然後選取編輯

    編輯 Kudos 應用程式。

    注意

    您也可以 建立 新應用程式或改成 編輯 任何現有的應用程式。

  3. 選取左導覽樹狀檢視中的應用程式物件,並貼上檢測金鑰

    新增檢測金鑰。

  4. SavePublish 您的應用程式。

  5. 播放發佈的應用程式,並瀏覽不同的畫面。

瀏覽應用程式各個畫面時,事件會自動記錄到 Application Insights,包括使用方式詳細資料,例如:

  • 從何處存取應用程式
  • 使用哪些裝置
  • 使用的瀏覽器類型

重要

您必須播放發佈的應用程式才能將事件傳送到 Application Insights。 當您在 Application Insights 預覽應用程式時,事件不會傳送到 Power Apps Studio。

檢視 Application Insights 中的事件

  1. 登入 Azure 入口網站 並打開您 稍早 建立的 Application Insights 資源。

  2. 在左導覽窗格中向下捲動並選取 Usage 分區下的 Users

    注意

    使用者檢視表顯示應用程式使用方式詳細資料,例如:

    • 檢視應用程式的使用者人數
    • 使用者工作階段數目
    • 記錄的事件數目
    • 使用者的作業系統及瀏覽器版本詳細資料
    • 使用者所在的區域與位置

    深入了解 Application Insights 中的使用者、工作階段及事件分析

  3. 選取其中一個使用者工作階段切入特定詳細資料。 您可以查看資訊如工作階段長度和造訪的畫面控制項:

    使用者的使用方式詳細資料。

  4. 使用方式區段下的左瀏覽窗格中選取事件檢視表。 您可以在所有應用程式工作階段中查看所有透過視圖呈現的畫面控制項摘要:

    應用程式的事件詳細資料。

提示

還有其他 Application Insights 功能可用,例如:

建立自訂追蹤事件

您可以直接將自訂追蹤寫入 Application Insights 並開始分析您的案例特定資訊。 Trace 函數可讓您收集:

  • 畫面控制項的細微使用方式資訊
  • 哪些特定使用者正在存取您的應用程式
  • 發生哪些錯誤

追蹤也可協助診斷問題,因為您可以在使用者瀏覽您的應用程式並執行不同動作時傳送資訊的蹤跡。 傳送至 Application Insights 的追蹤訊息,其嚴重性會是以下三種之一:

  • 資訊
  • 警告
  • 錯誤

根據您的案例,您可以選擇傳送嚴重性適當的追蹤訊息。 您可以查詢資料,並根據嚴重性採取特定動作。

注意

如果您要記錄任何個人資料,請注意您在各種隱私權法律和法規方面的義務。 如需詳細資訊,請參閱 Microsoft 信任中心服務信任入口網站

立即在應用程式中建立新的元件,以便收集每個畫面上的意見反應,並將事件寫入 Application Insights。

  1. 登入 Power Apps

  2. 在左導覽窗格中,選取 Apps。 從應用程式清單選取 Kudos 應用程式,然後選取編輯

    注意

    您也可以建立新的應用程式,或編輯現有的應用程式。

  3. 樹狀視圖 上選取 Components 選項:

    元件。

  4. 選取 New component,然後將寬度調整為 200,高度調整為 75:

    高度與寬度。

  5. 從功能表選取 Insert,然後選取 Icons 新增 Emoji - FrownEmoji - Smile

    新增圖示。

  6. 選取 New custom property 建立自訂屬性:

    建立自訂屬性。

  7. 輸入屬性 NameDisplay name 例如 FeedbackSceen

  8. 輸入屬性 Description

  9. 選取 Property type 作為 Input,而 Data type 作為 Screen

    自訂屬性。

    注意

    輸入屬性讓您取畫面控制項名稱及其元件,如何就可以將此資訊登入 Application Insights。

  10. 選取樹狀檢視中的元件、選取其他動作 (),然後選取重新命名,將元件重新命名為有意義的名稱,例如 FeedbackComponent

    重新命名元件及圖示。

  11. 選取圖示、選取其他動作 (),然後選取重新命名,將圖示重新命名為有意義的名稱,例如 FrownIconSmileIcon

  12. 選取 FrownIcon,選取 OnSelect 屬性,然後在公式列中輸入下列運算式:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeedbackValue: "-1"
           }
         );
    Notify("Thanks for your feedback!");
    

    Frown 圖示公式。

    注意

    公式運算式會傳送 UserNameUserEmailScreenFeedback (值為 -1) 到 Application Insights。

  13. 選取 SmileIcon,選取 OnSelect 屬性,然後在公式列中輸入下列運算式:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeebackValue: "1"
           }
         );
    Notify("Thanks for your feedback!");
    
  14. 將元件新增至應用程式中的其中一個畫面控制項:

    新增意見反應元件。

  15. 選取 Save,然後選取 Publish 儲存並發佈您的應用程式。

  16. 播放發佈的應用程式並從畫面控制項傳送微笑和苦臉的意見反應。

    重要

    您必須播放發佈的應用程式才能將事件傳送到 Application Insights。 當您在 Application Insights 預覽應用程式時,事件不會傳送到 Power Apps Studio。

    播放發佈的應用程式。

在 Application Insights 分析資料

您現在可以開始使用 Application Insights 中您的應用程式的 Trace 功能分析傳送的資料。

  1. 登入 Azure 入口網站 並打開您 稍早 建立的 Application Insights 資源:

    選取 Application Insights。

  2. 在左瀏覽窗格中的監視下選取記錄

    選取日誌。

  3. 輸入下列查詢,並選取執行,以檢視從應用程式收到的意見反應:

    traces
    | where message == "App Feedback"
    | order by timestamp
    

    檢視應用程式意見反應。

  4. 選取結果中的一列,然後展開 customDimensions 欄位。

    在您的元件中笑臉或苦臉圖示的 OnSelect 事件之 ScreenUserNameUserEmail,和 FeedbackValue 值已記錄。 還會記錄每個傳送至 Application Insights 之事件的值,例如 appIdappNameappSessionId

    展開自訂維度。

  5. 隨著使用下列範例查詢情況下,您可以擴充 JSON 自訂維度的屬性並在結果視圖中投影欄。

    traces
        | extend customdims = parse_json(customDimensions)
        | where message == "App Feedback"
        | project timestamp
            , message
            , AppName = customdims.['ms-appName']
            , AppId = customdims.['ms-appId']
            , FeedbackFrom = customdims.UserEmail
            , Screen = customdims.Screen
            , FeedbackValue = customdims.FeedbackValue
        | order by timestamp desc
    

    擴充 customDimensions 查詢。

    提示

    日誌查詢 非常強大。 您可以使用它們聯結多張資料表、聚合大量資料以及執行複雜的作業。 深入了解記錄檔查詢

監視未處理的錯誤 (實驗性)

[本節包含發佈前文件,日後可能會變更。]

重要

  • 這是實驗性功能。
  • 實驗性功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。

您無法每次都預料和盤算到所有可能在應用執行時發生的錯誤。 未處理的 Power Fx 公式錯誤會以橫幅訊息的形式回報給使用者。 這些錯誤還可能會回報給 Application Insights,協助您了解其發生頻率和嚴重性,無需依賴應用程式的使用者來報告問題。 您也可以針對發生執行階段錯誤的情況設定即時警示,以便採取更主動的方法。

啟用將錯誤傳遞至 Application Insights

您必須啟用允許 Power Apps 將未處理之執行階段錯誤傳遞給 Azure Application Insights 的設定。

警告

啟用此設定可能會產生與 Application Insights 記錄儲存相關的額外費用。

若要啟用錯誤傳遞,請移至設定 > 即將推出的功能 > 實驗性 > 將錯誤傳遞到 Azure Application Insights,同時保持畫布應用程式開啟以供編輯。 儲存並發佈 您的應用程式。

啟用將錯誤傳遞至 Azure Application Insights 設定。

Application Insights 中的錯誤事件

使用者在應用程式執行階段所遇未處理的 Power Fx 錯誤會回報至追蹤資料表。 可以透過事件訊息「未處理的錯誤」來識別未處理的錯誤,並將其與其他錯誤事件區分開來。 這些事件的「severityLevel」維度是 3 (TraceSeverity.Error)。

customDimension 屬性的「錯誤」維度中會提供詳細的錯誤訊息。 在同一作業期間發生多個錯誤的情況下,這些錯誤會合併到單一追蹤事件的「錯誤」維度中。 錯誤訊息與即時偵錯工作階段期間在監視中回報的訊息相同。

下列範例查詢會識別未處理的錯誤,並展開所有包含在追蹤事件中的錯誤訊息:

traces
    | where message == "Unhandled error"
    | extend customdims = parse_json(customDimensions)
    | extend errors = parse_json(tostring(customdims.['errors']))
    | mv-expand errors
    | project timestamp
        , itemId //unique identifier for the trace event
        , AppName = customdims.['ms-appName']
        , AppId = customdims.['ms-appId']
        , errors = errors.['Message']
    | order by timestamp desc

範例查詢的範例輸出。

關聯性追蹤 (實驗性)

[本節包含發佈前文件,日後可能會變更。]

重要

  • 這是實驗性功能。
  • 實驗性功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。

與外部資料和服務的連接是大多數應用程式的基礎。 關聯性追蹤會產生並傳播內容資訊,以跨畫布應用程式及其連接聯結系統產生的記錄檔,但受到特定限制。 例如,您的應用程式可能會呼叫自訂連接器,而該連接器又會呼叫 Azure 函數或其他 REST API。 關聯性追蹤可讓您將應用程式中執行的動作與跨層的基礎 API 呼叫相互關聯。 這對於疑難排解很有用。

畫布應用程式關聯性追蹤是內容追蹤的實作,並遵循 W3C 規格

啟用關聯性追蹤

警告

啟用此設定可能會產生與 Application Insights 記錄儲存相關的額外費用。

若要啟用關聯性追蹤功能,請移至設定 > 即將推出的功能 > 實驗性 > 啟用 Azure Application Insights 關聯性追蹤,同時讓保持畫布應用程式打開以進行編輯。 儲存並發佈 您的應用程式。

啟用 Azure Application Insights 關聯性追蹤。

限制

  • 關聯性追蹤僅適用於自訂連接器。 不支援其他連接器類型。
  • 只有在連線服務也連接至 Application Insights 時,才會在 Application Insights 中擷取 HTTP 要求。

使用關聯性追蹤

啟用時,關聯性追蹤會在畫布應用程式 Application Insights 執行個體的相依性資料表中新增系統產生的記錄檔事件。 此事件是在收到網路呼叫的回應時所記錄。 相依性事件會擷取網路呼叫的詳細資料,包括要求和回應標頭、回應狀態碼以及呼叫期間。

相依性表格中記錄的範例事件。

如果連線服務也已連接至 Application Insights,則擷取要求的其他系統產生的記錄檔會在服務的 Application Insights 執行個體的要求資料表中產生。 有些 Azure 服務 (例如 Azure Functions) 無需在 Azure 入口網站中撰寫任何程式碼即可連接。 畫布應用程式或多個應用程式和連線服務都可以連接至同一個 Application Insights 執行個體。

要求表格中記錄的範例事件。

對支援的連接器的網路呼叫可以透過「operation_Id」維度與其他系統產生的記錄檔進行聯結。 下列範例查詢顯示與應用程式工作階段期間所發出追蹤事件一起進行的網路呼叫。

traces | union dependencies | union requests | union pageViews | union customEvents
| project timestamp
    , itemType
    , name
    , operation_Name
    , message
    , severityLevel
    , customDimensions
    , operation_Id
    , operation_ParentId
| where operation_Id == "0a7729e3e83c4e4d93cb4f51149f73b9" //placeholder operation_Id, replace
| order by timestamp asc

先前範例查詢的範例輸出。

將資料匯出至 Power BI

您可以匯出您的 Application Insights 資料和查詢結果到 Power BI 進行分析和資料展示。

  1. 登入 Azure 入口網站 並打開您 稍早 建立的 Application Insights 資源:

  2. 在左瀏覽窗格中的監視下選取記錄

  3. 從記錄分析查詢視窗選取匯出功能表。

  4. 選取匯出至 Power BI (M 查詢) 選項以下載 Power BI 查詢檔案:

    匯出 Power BI 查詢。

  5. 在文字編輯器中打開下載的檔案,並將查詢複製到剪貼簿。

  6. 開啟 [Power BI]。

  7. 選取常用功能區中的取得資料功能表,然後選取空白查詢

    Power BI 空白查詢。

  8. 在查詢視窗中,選取 Advanced Editor。 在視窗中貼上查詢、選取完成,然後選取關閉並套件

    Power BI 進階查詢。

您也可以在 Power BI 中建立圖表和視覺化效果,代表您在應用程式中收到意見反應及作出資料型決策與動作。

圖表和視覺效果。

預設追蹤事件上下文和維度

一組預設維度也會新增到每個追蹤事件的 customDimensions 屬性。 這些維度可用來識別發生事件的應用程式和應用程式工作階段。 如果您使用 Trace 函數記錄其他自訂資料,它們也會顯示在自訂維度中。

維度名稱 代表
ms-appId 傳送事件的應用程式的 應用程式識別碼。
ms-appname 傳送事件的應用程式的應用程式名稱。
ms-appSessionId 應用程式工作階段識別碼。 在某些情況下,可能不會填入此值。 如果可用時,此值會覆寫標準 Application Insights sessionID 維度。
ms-tenantID 發佈應用程式之租用戶的唯一識別碼。
ms-environmentId 發佈應用程式之環境的名稱。
userId 與工作階段相關聯之使用者的唯一識別碼。
ms-duration 衡量使用者從一個畫面瀏覽到另一個畫面所需時間的估算值。 此值會覆寫標準 Application Insights PageView 期間維度。
sessionId 可用於關聯與單一應用程式工作階段關聯的所有事件的工作階段識別碼。 此值一直存在,建議用於了解唯一工作階段計數。 此值取自播放程式的工作階段識別碼,並在播放應用程式時查看工作階段詳細資料時顯示。 工作階段識別碼有時可能會取得預設、隨機和唯一的 Application Insights 產生值。 此預設值並不可靠,且與任何特定應用程式的參數無關。
期間 衡量使用者從一個畫面瀏覽到另一個畫面所需時間的估算值。 此值與 ms-duration 維度報告的期間相同。
ms-isTest 指示工作階段是否與 Test Studio 測試執行器相關聯。
ms-currentScreenName 使用者從中瀏覽之頁面的名稱 (出現在頁面瀏覽事件)。
ms-targetScreenName 使用者瀏覽至之頁面的名稱 (出現在頁面瀏覽事件)。

不支援的案例

Application Insights 不支援以下案例。

  • 不會擷取離線播放機事件。
  • 在應用程式暫停時,不會擷取行動裝置應用程式 (iOS 和 Android) 事件。
  • 不支援 GCC 和非公用雲端。

注意

是否能請您告知您偏好的慣用文件語言? 請填寫問卷。 (請注意,本問卷為英文版)

完成問卷大約需要七分鐘。 本問卷將不會收集個人資料 (隱私權聲明)。