Tenere traccia delle attività degli utenti in Power BI

Sapere chi sta eseguendo l'azione su quale elemento in Power BI può essere fondamentale per aiutare l'organizzazione a soddisfare i propri requisiti, ad esempio soddisfare 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, incluse le operazioni di Power BI, usando il log di controllo.

Prerequisiti

  • È necessario essere un amministratore globale o un amministratore di Power BI

  • Installare i cmdlet di gestione di Power BI in locale o usare i cmdlet di gestione di Power BI in Azure Cloud Shell.

Log attività

Il log attività di Power BI contiene una 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 Infrastruttura.

ActivityEvents REST API

È 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 di utilizzo personalizzato sui dati esportati. Nella chiamata ALL'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 DateTime valori 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 da circa 5.000 a 10.000 voci 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 sono state ottenute 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. L'esempio seguente illustra come eseguire un 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 di come ottenere eventi di attività di controllo, vedere Amministrazione - Ottenere eventi attività nella documentazione di riferimento dell'API REST di Power BI.

Cmdlet Get-PowerBIActivityEvent

Scaricare gli eventi di attività usando i cmdlet di gestione di Power BI per PowerShell. Il cmdlet Get-PowerBIActivityEvent gestisce automaticamente il token di continuazione. Il Get-PowerBIActivityEvent cmdlet accetta un valore StartDateTime e un parametro EndDateTime con le stesse restrizioni dell'API REST ActivityEvents . In altre parole, la data di inizio e la data di fine devono fare riferimento allo stesso valore di data perché è possibile recuperare solo i dati dell'attività per un giorno alla volta.

Lo script seguente illustra come scaricare tutte le attività di Power BI. Il comando converte i risultati da JSON in oggetti .NET per un accesso diretto alle singole proprietà di attività. Questi esempi mostrano i timestamp più piccoli e più grandi 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 dell'attività

È possibile filtrare gli eventi di attività in base al tipo di attività e all'ID utente. Lo script seguente illustra come scaricare solo i dati dell'evento 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

Un esempio di PowerShell è disponibile per informazioni su come filtrare e recuperare gli eventi del log attività di Power BI. Per altre informazioni, vedere Accedere al log attività di Power BI.