Śledzenie działań użytkowników w usłudze Power BI

Wiedza na temat tego, kto podejmuje jakie działania w usłudze Power BI może mieć kluczowe znaczenie dla ułatwienia organizacji spełnienia wymagań, takich jak spełnianie wymagań dotyczących zgodności z przepisami i zarządzania rekordami. W tym artykule omówiono dziennik aktywności usługi Power BI oparty na interfejsach API REST usługi Power BI.

Możesz śledzić działania użytkowników usługi Microsoft Fabric, w tym operacje usługi Power BI, przy użyciu dziennika inspekcji.

Wymagania wstępne

  • Musisz być administratorem globalnym lub administratorem usługi Power BI

  • Zainstaluj polecenia cmdlet zarządzania usługi Power BI lokalnie lub użyj poleceń cmdlet zarządzania usługą Power BI w usłudze Azure Cloud Shell.

Dziennik aktywności

Dziennik aktywności usługi Power BI zawiera pełną kopię działań usługi Power BI w tablicy JSON. Listę wszystkich działań usługi Power BI można znaleźć na liście operacji sieci szkieletowej.

ActivityEvents REST API

Możesz użyć aplikacji administracyjnej opartej na interfejsach API REST usługi Power BI, aby wyeksportować zdarzenia aktywności do magazynu obiektów blob lub bazy danych SQL. Następnie możesz utworzyć niestandardowy raport użycia na podstawie wyeksportowanych danych. W wywołaniu interfejsu API REST ActivityEvents należy określić datę rozpoczęcia i datę zakończenia oraz opcjonalnie filtr, aby wybrać działania według typu działania lub identyfikatora użytkownika. Ponieważ dziennik aktywności może zawierać dużą ilość danych, interfejs API ActivityEvents obecnie obsługuje pobieranie maksymalnie jednego dnia danych na żądanie. Innymi słowy, data rozpoczęcia i data zakończenia muszą określać ten sam dzień, co w poniższym przykładzie. Upewnij się, że określono DateTime wartości w formacie uniwersalnego czasu koordynowanego (UTC).

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

Jeśli liczba wpisów jest duża, interfejs API ActivityEvents zwraca tylko około 5000 do 10 000 wpisów i token kontynuacji. Ponownie wywołaj interfejs API ActivityEvents przy użyciu tokenu kontynuacji, aby pobrać kolejną partię wpisów i tak dalej, dopóki nie otrzymasz wszystkich wpisów i nie otrzymasz już tokenu kontynuacji. W poniższym przykładzie pokazano, jak używać tokenu kontynuacji:

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

Jeśli wyniki zawierają token kontynuacji, kontynuuj wywoływanie interfejsu API przy użyciu tego tokenu, aby uzyskać resztę danych, dopóki token kontynuacji nie zostanie już zwrócony. Wywołanie może zwrócić token kontynuacji bez żadnych wpisów zdarzeń. W poniższym przykładzie pokazano, jak utworzyć pętlę z tokenem kontynuacji zwróconym w odpowiedzi:

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

Jeśli przedział czasu między startDateTime i endDateTime przekracza 1 godzinę, pobieranie danych w continuationUri odpowiedzi wymaga wielu żądań.

W poniższym przykładzie pokazano, jak pobrać dane przez 1 godzinę i 5 minut:

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
}

Aby dowiedzieć się więcej na temat korzystania z interfejsu API REST usługi Power BI, w tym przykłady uzyskiwania zdarzeń działania inspekcji, zobacz Administracja — Pobieranie zdarzeń działań w dokumentacji interfejsu API REST usługi Power BI.

Polecenie cmdlet Get-PowerBIActivityEvent

Pobieranie zdarzeń działań przy użyciu poleceń cmdlet zarządzania usługi Power BI dla programu PowerShell. Polecenie cmdlet Get-PowerBIActivityEvent automatycznie obsługuje token kontynuacji. Polecenie Get-PowerBIActivityEvent cmdlet przyjmuje parametr StartDateTime i EndDateTime z tymi samymi ograniczeniami co interfejs API REST ActivityEvents. Innymi słowy, data rozpoczęcia i data zakończenia muszą odwoływać się do tej samej wartości daty, ponieważ dane aktywności można pobrać tylko przez jeden dzień w danym momencie.

Poniższy skrypt przedstawia sposób pobierania wszystkich działań usługi Power BI. Polecenie konwertuje wyniki z formatu JSON na obiekty platformy .NET w celu uzyskania prostego dostępu do poszczególnych właściwości działania. Te przykłady pokazują najmniejsze i największe znaczniki czasu możliwe przez jeden dzień, aby upewnić się, że żadne zdarzenia nie zostaną pominięte:

Login-PowerBI

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

$activities.Count
$activities[0]

Filtrowanie danych działań

Zdarzenia aktywności można filtrować według typu działania i identyfikatora użytkownika. Poniższy skrypt pokazuje, jak pobrać tylko dane zdarzenia dla działania ViewDashboard . Aby uzyskać dodatkowe informacje o obsługiwanych parametrach, użyj polecenia 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]

Uwaga

Dostępny jest przykład programu PowerShell, który ułatwia filtrowanie i pobieranie zdarzeń dziennika aktywności usługi Power BI. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do dziennika aktywności usługi Power BI.