Отслеживание действий пользователей в Power BI
Зная, кто принимает какие действия в Power BI может быть критически важным в оказании помощи вашей организации в выполнении своих требований, таких как соответствие нормативным требованиям и управление записями. В этой статье рассматривается журнал действий Power BI, основанный на REST API Power BI.
Вы можете отслеживать действия пользователей Microsoft Fabric, включая операции Power BI, с помощью журнала аудита.
Необходимые компоненты
Вам нужно быть администратором Fabric.
Установите командлеты управления Power BI локально или используйте командлеты управления Power BI в Azure Cloud Shell.
Журнал действий
Журнал действий 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".