Seguimiento de actividades de usuario en Power BI

Es fundamental saber quién realiza cada acción en cada elemento de Power BI para ayudar a la organización a satisfacer sus requisitos, como el cumplimiento normativo y la administración de registros. En este artículo se analiza el registro de actividad de Power BI, que se basa en las API de REST de Power BI.

Puede hacer un seguimiento de las actividades de los usuarios de Microsoft Fabric, incluidas las operaciones de Power BI, usando el registro de auditoría.

Requisitos previos

Registro de actividad

El registro de actividad de Power BI contiene una copia completa de las actividades de Power BI en una matriz JSON. Puede encontrar una lista de todas las actividades de Power BI en la lista de operaciones de Fabric.

API REST ActivityEvents

Puede usar una aplicación administrativa basada en las API REST de Power BI para exportar eventos de actividad a un almacén de blobs o a una base de datos SQL. Después, puede crear un informe de uso personalizado sobre los datos exportados. En la llamada a la API REST ActivityEvents, debe especificar una fecha de inicio y una fecha de finalización y, opcionalmente, un filtro para seleccionar actividades por tipo de actividad o identificador de usuario. Como el registro de actividad puede contener una gran cantidad de datos, actualmente la API ActivityEvents solo admite la descarga de hasta un día de datos por solicitud. Es decir, la fecha de inicio y la fecha de finalización deben especificar el mismo día, como en el ejemplo siguiente. Asegúrese de especificar los DateTime valores en formato hora universal coordinada (UTC).

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

Si el número de entradas es grande, la API ActivityEvents solo devuelve entre 5 000 y 10 000 entradas, y un token de continuación. Vuelva a llamar a la API ActivityEvents con el token de continuación para obtener el siguiente lote de entradas, y así sucesivamente, hasta que tenga todas las entradas y ya no reciba un token de continuación. En el ejemplo siguiente se muestra cómo usar el token de continuación:

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

Si los resultados incluyen un token de continuación, siga llamando a la API usando ese token para obtener los demás datos, hasta que ya no se devuelva un token de continuación. Es posible que una llamada devuelva un token de continuación sin entradas de evento. En el ejemplo siguiente se muestra cómo crear un bucle con un token de continuación devuelto en la respuesta:

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

Si el intervalo de tiempo entre startDateTime and endDateTime supera 1 hora, se necesitan varias solicitudes para descargar los datos mediante el objeto continuationUri en respuesta.

En el ejemplo siguiente se muestra cómo descargar datos durante 1 hora y 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 obtener más información sobre el uso de la API de REST de Power BI, incluidos ejemplos de cómo obtener eventos de actividad de auditoría, vea Administración: obtención de eventos de auditoría en la documentación de referencia de la API de REST de Power BI.

Cmdlet Get-PowerBIActivityEvent

Descargue eventos de actividad con los cmdlets de administración de Power BI para PowerShell. El cmdlet Get-PowerBIActivityEvent controla de forma automática el token de continuación. El Get-PowerBIActivityEventcmdlet toma un parámetro StartDateTime y EndDateTime con las mismas restricciones que la API REST ActivityEvents. Es decir, la fecha de inicio y la fecha de finalización deben hacer referencia al mismo valor de fecha porque solo se pueden recuperar los datos de actividad de un día a la vez.

En el script siguiente se muestra cómo descargar todas las actividades de Power BI. El comando convierte los resultados de JSON en objetos de .NET para un acceso sencillo a las propiedades de cada actividad. En estos ejemplos se muestran las marcas de tiempo más pequeñas y más grandes posibles de un día para asegurarse de que no se pierde ningún evento:

Login-PowerBI

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

$activities.Count
$activities[0]

Filtrado de datos de actividad

Puede filtrar los eventos de actividad por tipo de actividad e identificador de usuario. En el script siguiente se muestra cómo descargar solo los datos de evento para la actividad ViewDashboard. Para obtener más información sobre los parámetros admitidos, use el 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]

Nota

Hay disponible una muestra de PowerShell para ayudarle a obtener información sobre cómo filtrar y recuperar eventos de registro de actividad de Power BI. Para obtener más información, consulte Acceso al registro de actividad de Power BI.