Tenere traccia delle attività degli utenti in Power BI
Il fatto di sapere chi sta eseguendo un'azione su un determinato elemento in Power BI è essenziale per aiutare l'organizzazione a soddisfare i propri requisiti, ad esempio la conformità alle normative e la gestione dei record. Questo articolo illustra il log attività di Power BI basato sulle API REST di Power BI.
È possibile tenere traccia delle attività degli utenti di Microsoft Fabric, tra cui le operazioni di Power BI, usando il log di controllo.
Prerequisiti
È necessario essere un amministratore di Fabric.
Installare i cmdlet di gestione di Power BI in locale oppure usare i cmdlet di gestione di Power BI in Azure Cloud Shell.
Log attività
Il log attività di Power BI contiene la copia completa delle attività di Power BI in una matrice JSON. È possibile trovare un elenco di tutte le attività di Power BI nell'elenco delle operazioni di Fabric.
API REST ActivityEvents
È possibile usare un'applicazione amministrativa basata sulle API REST di Power BI per esportare gli eventi di attività in un archivio BLOB o in un database SQL. È quindi possibile creare un report sull'utilizzo personalizzato in base ai dati esportati. Nella chiamata dell'API REST ActivityEvents è necessario specificare una data di inizio e una data di fine e, facoltativamente, un filtro per selezionare le attività in base al tipo di attività o all'ID utente. Poiché il log attività potrebbe contenere una grande quantità di dati, l'API ActivityEvents supporta attualmente solo il download fino a un giorno di dati per ogni richiesta. In altre parole, la data di inizio e la data di fine devono specificare lo stesso giorno, come nell'esempio seguente. Assicurarsi di specificare i valori DateTime
in formato UTC (Coordinated Universal Time).
https://api.powerbi.com/v1.0/myorg/admin/activityevents?startDateTime='2019-08-31T00:00:00'&endDateTime='2019-08-31T23:59:59'
Se il numero di voci è elevato, l'API ActivityEvents restituisce solo un numero di voci compreso all'incirca tra 5.000 e 10.000 e un token di continuazione. Chiamare di nuovo l'API ActivityEvents con il token di continuazione per ottenere il batch successivo di voci e così via fino a quando non vengono recuperate tutte le voci e non si riceve più un token di continuazione. L'esempio seguente illustra come usare il token di continuazione:
https://api.powerbi.com/v1.0/myorg/admin/activityevents?continuationToken='%2BRID%3ARthsAIwfWGcVAAAAAAAAAA%3D%3D%23RT%3A4%23TRC%3A20%23FPC%3AARUAAAAAAAAAFwAAAAAAAAA%3D'
Se i risultati includono un token di continuazione, continuare a chiamare l'API usando tale token per ottenere il resto dei dati fino a quando non viene più restituito un token di continuazione. È possibile che una chiamata restituisca un token di continuazione senza voci di evento. Nell'esempio seguente viene illustrato come eseguire il ciclo con un token di continuazione restituito nella risposta:
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 l'intervallo di tempo compreso tra startDateTime
e endDateTime
supera 1 ora, sono necessarie più richieste per scaricare i dati continuationUri
in risposta.
L'esempio seguente illustra come scaricare i dati per 1 ora e 5 minuti:
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
}
Per altre informazioni sull'uso dell'API REST di Power BI, inclusi esempi su come ottenere eventi di attività di controllo, vedere Admin - Get Activity Events (Amministrazione - Ottenere eventi di attività) nella documentazione di riferimento dell'API REST di Power BI.
Cmdlet Get-PowerBIActivityEvent
Scaricare gli eventi dell'attività usando i cmdlet di gestione di Power BI per PowerShell. Il cmdlet Get-PowerBIActivityEvent gestisce automaticamente il token di continuazione. Il cmdlet Get-PowerBIActivityEvent
accetta un parametro StartDateTime e un parametro EndDateTime con le stesse restrizioni dell'API REST ActivityEvents. In altre parole, è necessario che la data di inizio e la data di fine facciano riferimento allo stesso valore di data perché è possibile recuperare i dati delle attività solo per un giorno alla volta.
Lo script seguente dimostra come scaricare tutte le attività di Power BI. Il comando converte i risultati da JSON in oggetti .NET per accedere in modo semplice alle singole proprietà delle attività. Questi esempi illustrano i timestamp minimo e massimo possibili per un giorno per assicurarsi che non vengano persi eventi:
Login-PowerBI
$activities = Get-PowerBIActivityEvent -StartDateTime '2019-08-31T00:00:00' -EndDateTime '2019-08-31T23:59:59' | ConvertFrom-Json
$activities.Count
$activities[0]
Filtrare i dati delle attività
È possibile filtrare gli eventi di attività in base al tipo di attività e all'ID utente. Lo script seguente dimostra come scaricare solo i dati degli eventi per l'attività ViewDashboard. Per altre informazioni sui parametri supportati, usare il 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
È disponibile un esempio di PowerShell utile per apprendere come filtrare e recuperare gli eventi del log attività di Power BI. Per altre informazioni, vedere Accedere al log attività di Power BI.