Share via


追蹤 Power BI 中的使用者活動

瞭解誰正在對 Power BI 中的哪些專案採取哪些動作,對於協助貴組織滿足其需求至關重要,例如符合法規合規性和記錄管理。 本文討論以 Power BI REST API 為基礎的 Power BI 活動記錄

您可以使用稽核記錄 來追蹤 Microsoft Fabric 使用者活動,包括 Power BI 作業

必要條件

活動記錄檔

Power BI 活動記錄包含 JSON 陣列中 Power BI 活動的完整複本。 您可以在網狀架構 作業清單中找到所有 Power BI 活動的清單

ActivityEvents REST API

您可以使用以 Power BI REST API 為基礎的系統管理應用程式,將活動事件匯出至 Blob 存放區或 SQL 資料庫。 接著,您可以在匯出的資料之上建置自訂使用量報告。 在 ActivityEvents REST API 呼叫中,您必須指定開始日期和結束日期,以及選擇性地依活動類型或使用者識別碼選取活動的篩選。 因為活動記錄檔可能包含大量資料, 所以 ActivityEvents API 目前僅支援每個要求最多下載一天的資料。 換句話說,開始日期和結束日期必須指定相同的日期,如下列範例所示。 請確定您以國際標準時間 (UTC) 格式指定 DateTime 值。

https://api.powerbi.com/v1.0/myorg/admin/activityevents?startDateTime='2019-08-31T00:00:00'&endDateTime='2019-08-31T23:59:59'

如果專案數目很大, ActivityEvents API 只會傳回大約 5,000 到 10,000 個專案和接續權杖。 再次使用接續權杖呼叫 ActivityEvents API,以取得下一批專案等等,直到您取得所有專案,不再收到接續權杖為止。 下列範例示範如何使用接續權杖:

https://api.powerbi.com/v1.0/myorg/admin/activityevents?continuationToken='%2BRID%3ARthsAIwfWGcVAAAAAAAAAA%3D%3D%23RT%3A4%23TRC%3A20%23FPC%3AARUAAAAAAAAAFwAAAAAAAAA%3D'

如果結果包含接續權杖,請繼續使用該權杖呼叫 API,以取得其餘的資料,直到不再傳回接續權杖為止。 呼叫可以傳回接續權杖,而不需要任何事件專案。 下列範例示範如何以回應中傳回的接續權杖迴圈:

while(response.ContinuationToken != null)
{
   // Store the activity event results in a list for example
    completeListOfActivityEvents.AddRange(response.ActivityEventEntities);

    // Make another call to the API with continuation token
    response = GetPowerBIActivityEvents(response.ContinuationToken)
}
completeListOfActivityEvents.AddRange(response.ActivityEventEntities);

如果 介於 和 endDateTime 之間的 startDateTime 時間範圍超過 1 小時,則需要多個要求,才能透過 continuationUri 回應下載資料。

下列範例示範如何下載 1 小時 5 分鐘的資料:

GET https://wabi-staging-us-east-redirect.analysis.windows.net/v1.0/myorg/admin/activityevents?startDateTime='2020-08-13T07:55:00Z'&endDateTime='2020-08-13T09:00:00Z'
{
  "activityEventEntities": […],
  "continuationUri": https://wabi-staging-us-east-redirect.analysis.windows.net/v1.0/myorg/admin/activityevents?continuationToken='LDIwMjAtMDgtMTNUMDc6NTU6MDBaLDIwMjAtMDgtMTNUMDk6MDA6MDBaLDEsLA%3D%3D',
  "continuationToken": "LDIwMjAtMDgtMTNUMDc6NTU6MDBaLDIwMjAtMDgtMTNUMDk6MDA6MDBaLDEsLA%3D%3D",
  "lastResultSet": false
}

GET https://wabi-staging-us-east-redirect.analysis.windows.net/v1.0/myorg/admin/activityevents?continuationToken='LDIwMjAtMDgtMTNUMDc6NTU6MDBaLDIwMjAtMDgtMTNUMDk6MDA6MDBaLDEsLA%3D%3D'
{
  "activityEventEntities": [],
  "continuationUri": null,
  "continuationToken": null,
  "lastResultSet": false
}

若要深入瞭解如何使用 Power BI REST API,包括如何取得稽核活動事件的範例,請參閱 Power BI REST API 參考檔中的管理員 - 取得活動事件

Get-PowerBIActivityEvent Cmdlet

使用 PowerShell 的 Power BI 管理 Cmdlet 下載活動事件。 Get-PowerBIActivityEvent Cmdlet 會自動為您處理接續權杖。 Cmdlet Get-PowerBIActivityEvent 採用 StartDateTime 和 EndDateTime 參數,其限制與 ActivityEvents REST API 相同。 換句話說,開始日期和結束日期必須參考相同的日期值,因為您一次只能擷取一天的活動資料。

下列腳本示範如何下載所有 Power BI 活動。 命令會將 JSON 的結果轉換成 .NET 物件,以便直接存取個別活動屬性。 這些範例顯示一天中可能的最小和最大時間戳記,以確保不會遺漏任何事件:

Login-PowerBI

$activities = Get-PowerBIActivityEvent -StartDateTime '2019-08-31T00:00:00' -EndDateTime '2019-08-31T23:59:59' | ConvertFrom-Json

$activities.Count
$activities[0]

篩選活動資料

您可以依活動類型和使用者識別碼來篩選活動事件。 下列腳本示範如何只下載 ViewDashboard 活動的事件資料 。 如需支援參數的其他資訊,請使用 命令 Get-Help Get-PowerBIActivityEvent

Login-PowerBI

$activities = Get-PowerBIActivityEvent -StartDateTime '2019-08-31T00:00:00' -EndDateTime '2019-08-31T23:59:59' -ActivityType 'ViewDashboard' | ConvertFrom-Json

$activities.Count
$activities[0]

注意

PowerShell 範例可協助您瞭解如何篩選和擷取 Power BI 活動記錄事件。 如需詳細資訊,請參閱 存取 Power BI 活動記錄