共用方式為


追蹤 Power BI 中的使用者活動

了解誰正在對 Power BI 中的哪個項目採取什麼動作,可能對於幫助貴組織符合其需求 (如符合法規合規性與記錄管理) 而言極為重要。 本文會討論以 Power BI REST API 為基礎的 Power BI 活動記錄

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

必要條件

  • 您必須是 Fabric 管理員。

  • 您已在本機安裝 Power BI 管理 Cmdlet,或使用 Azure Cloud Shell 中的 Power BI 管理 Cmdlet。

活動記錄檔

Power BI 活動記錄包含 JSON 陣列中 Power BI 活動的完整複本。 您可以在 Fabric 作業清單中找到所有 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);

startDateTimeendDateTime 之間的時間範圍超過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 會自動處理接續權杖。 Get-PowerBIActivityEvent Cmdlet 會採用 StartDateTimeEndDateTime 參數,其限制與 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 活動記錄