Acompanhar atividades do usuário no Power BI

Saber quem está executando uma ação em determinado item no Power BI pode ser essencial para ajudar a organização a atender a requisitos, como gerenciamento de registros e conformidade regulamentar. Esse artigo discute o log de atividades do Power BI baseado em APIs REST do Power BI.

Você pode acompanhar as atividades do usuário do Microsoft Fabric, incluindo operações do Power BI, usando o log de auditoria.

Pré-requisitos

  • Você precisa ser um administrador global ou administrador do Power BI.

  • Instale os cmdlets de Gerenciamento do Power BI localmente ou use os cmdlets de Gerenciamento do Power BI no Azure Cloud Shell.

Log de atividades

O log de atividades do Power BI contém uma cópia completa das atividades do Power BI em uma matriz JSON. Você pode encontrar uma lista de todas as atividades do Power BI na lista de operações do Fabric.

API REST ActivityEvents

Você pode usar um aplicativo administrativo com base nas APIs REST do Power BI para exportar eventos de atividade para um repositório de blob ou um banco de dados SQL. Em seguida, você pode criar um relatório de uso personalizado baseado nos dados exportados. Na chamada à API REST ActivityEvents, você deve especificar uma data de início e uma data de término e, opcionalmente, um filtro para selecionar atividades por tipo de atividade ou ID de usuário. Como o log de atividades pode conter uma grande quantidade de dados, a API ActivityEvents atualmente dá suporte a download, por solicitação, de dados equivalentes a até um dia. Em outras palavras, a data de início e a data de término devem especificar o mesmo dia, como no exemplo a seguir. Especifique os valores DateTime no formato UTC (Tempo Universal Coordenado).

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

Se o número de entradas for grande, a API ActivityEvents retornará apenas cerca de 5.000 a 10.000 entradas e um token de continuação. Chame a API ActivityEvents novamente com o token de continuação para obter o próximo lote de entradas e assim por diante, até que você tenha obtido todas as entradas e não receba mais um token de continuação. O seguinte exemplo mostra como usar o token de continuação:

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

Caso os resultados incluam um token de continuação, continue chamando a API usando esse token para obter o restante dos dados até que um token de continuação não retorne mais. É possível que uma chamada retorne um token de continuação sem entradas de evento. O exemplo a seguir mostra como executar um loop com um token de continuação retornado na resposta:

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

Se o intervalo de tempo entre startDateTime e endDateTime exceder 1 hora, serão necessárias várias solicitações para baixar os dados por meio de continuationUri em resposta.

O seguinte exemplo mostra como baixar dados por 1 hora e 5 minutos:

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
}

Para saber mais sobre como usar a API REST do Power BI, incluindo exemplos de como obter eventos de atividade de auditoria, confira Administrador – obter eventos de atividade na documentação de referência da API REST do Power BI.

Cmdlet Get-PowerBIActivityEvent

Baixe eventos de atividade usando os cmdlets de Gerenciamento do Power BI para PowerShell. O cmdlet Get-PowerBIActivityEvent lida automaticamente com o token de continuação para você. O cmdlet Get-PowerBIActivityEvent usa um parâmetro StartDateTime e EndDateTime com as mesmas restrições que a API REST ActivityEvents. Em outras palavras, a data de início e a data de término devem referenciar o mesmo valor de data, pois você só pode recuperar os dados da atividade referentes a um dia por vez.

O script a seguir demonstra como baixar todas as atividades do Power BI. O comando converte os resultados de JSON em objetos .NET para obter acesso direto a propriedades de atividade individuais. Esses exemplos mostram os menores e os maiores carimbos de data/hora possíveis para um dia com o objetivo de garantir que nenhum evento seja perdido:

Login-PowerBI

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

$activities.Count
$activities[0]

Filtrar dados da atividade

Você pode filtrar eventos de atividade por tipo de atividade e ID de usuário. O script a seguir demonstra como baixar apenas os dados de evento para a atividade ViewDashboard. Para obter informações adicionais sobre os parâmetros com suporte, use o comando 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]

Observação

Um exemplo do PowerShell está disponível para ajudá-lo a aprender como filtrar e recuperar eventos do log de atividades do Power BI. Para obter mais informações, consulte Acessar o log de atividades do Power BI.