Отслеживание действий пользователей в Power BI

Зная, кто принимает какие действия в Power BI может быть критически важным в оказании помощи вашей организации в выполнении своих требований, таких как соответствие нормативным требованиям и управление записями. В этой статье рассматривается журнал действий Power BI, основанный на REST API Power BI.

Вы можете отслеживать действия пользователей Microsoft Fabric, включая операции Power BI, с помощью журнала аудита.

Необходимые компоненты

Журнал действий

Журнал действий Power BI содержит полную копию действий Power BI в массиве JSON. Список всех действий Power BI можно найти в списке операций Fabric.

ActivityEvents REST API

Вы можете использовать административное приложение на основе REST API Power BI для экспорта событий действий в хранилище BLOB-объектов или базу данных SQL. Затем можно создать пользовательский отчет об использовании на основе экспортированных данных. В вызове REST API ActivityEvents необходимо указать дату начала и дату окончания, а также фильтр для выбора действий по типу действия или идентификатору пользователя. Так как журнал действий может содержать большой объем данных, API ActivityEvents в настоящее время поддерживает скачивание до одного дня данных на запрос. Другими словами, дата начала и дата окончания должны указывать тот же день, как в следующем примере. Убедитесь, что вы указали DateTime значения в формате UTC.

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

Если количество записей большое, API ActivityEvents возвращает только около 50000 до 10 000 записей и маркер продолжения. Вызовите API ActivityEvents еще раз с маркером продолжения, чтобы получить следующий пакет записей и т. д., пока вы не получите все записи и больше не получите маркер продолжения. В следующем примере показано, как использовать токен продолжения:

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);

Если интервал времени от startDateTime endDateTime 1 часа превышает 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
}

Дополнительные сведения об использовании REST API Power BI, включая примеры получения событий активности аудита, см. в справочной документации по REST API Power BI.

Командлет Get-PowerBIActivityEvent

Скачайте события действий с помощью командлетов управления Power BI для PowerShell. Командлет Get-PowerBIActivityEvent автоматически обрабатывает маркер продолжения. Командлет принимает параметр StartDateTime и EndDateTime с теми же ограничениями, что и REST API ActivityEvents.Get-PowerBIActivityEvent Иными словами, дата начала и дата окончания должны ссылаться на одно и то же значение даты, так как данные действия можно получить только за один день.

В следующем сценарии показано, как скачать все действия 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".