Power BI'da kullanıcı etkinliklerini izleme
Power BI'da hangi öğe üzerinde kimin hangi eylemi gerçekleştirebileceğini bilmek, kuruluşunuzun mevzuat uyumluluğunu ve kayıt yönetimini karşılama gibi gereksinimlerini karşılamasına yardımcı olma açısından kritik öneme sahiptir. Bu makalede, Power BI REST API'lerini temel alan Power BI etkinlik günlüğü ele alınmaktadır.
Denetim günlüğünü kullanarak Power BI işlemleri de dahil olmak üzere Microsoft Fabric kullanıcı etkinliklerini izleyebilirsiniz.
Önkoşullar
Doku yöneticisi olmanız gerekir.
Power BI Yönetimi cmdlet'lerini yerel olarak yükleyin veya Azure Cloud Shell'de Power BI Yönetimi cmdlet'lerini kullanın.
Etkinlik günlüğü
Power BI etkinlik günlüğü, bir JSON dizisindeki Power BI etkinliklerinin tam kopyasını içerir. Tüm Power BI etkinliklerinin listesini Doku işlem listesinde bulabilirsiniz.
ActivityEvents REST API
Etkinlik olaylarını bir blob deposuna veya SQL veritabanına aktarmak için Power BI REST API'lerini temel alan bir yönetim uygulaması kullanabilirsiniz. Daha sonra dışarı aktarılan verilerin üzerine özel bir kullanım raporu oluşturabilirsiniz. ActivityEvents REST API çağrısında, etkinlik türüne veya kullanıcı kimliğine göre etkinlikleri seçmek için bir başlangıç tarihi ve bitiş tarihi ve isteğe bağlı olarak bir filtre belirtmeniz gerekir. Etkinlik günlüğü büyük miktarda veri içerebileceğinden, ActivityEvents API'si şu anda istek başına yalnızca bir günlük veri indirmeyi destekler. Başka bir deyişle, başlangıç tarihi ve bitiş tarihi, aşağıdaki örnekte olduğu gibi aynı günü belirtmelidir. Değerleri Eşgüdümlü Evrensel Saat (UTC) biçiminde belirttiğinizden DateTime
emin olun.
https://api.powerbi.com/v1.0/myorg/admin/activityevents?startDateTime='2019-08-31T00:00:00'&endDateTime='2019-08-31T23:59:59'
Girdi sayısı büyükse, ActivityEvents API'si yalnızca 5.000 ile 10.000 arasında girdi ve bir devamlılık belirteci döndürür. Sonraki girdi toplu işlemini almak için ActivityEvents API'sini devamlılık belirteci ile yeniden çağırın. Tüm girişleri alıp artık bir devamlılık belirteci almayana kadar bu şekilde devam eder. Aşağıdaki örnekte devamlılık belirtecinin nasıl kullanılacağı gösterilmektedir:
https://api.powerbi.com/v1.0/myorg/admin/activityevents?continuationToken='%2BRID%3ARthsAIwfWGcVAAAAAAAAAA%3D%3D%23RT%3A4%23TRC%3A20%23FPC%3AARUAAAAAAAAAFwAAAAAAAAA%3D'
Sonuçlar bir devamlılık belirteci içerirse, devam belirteci döndürülmeyene kadar verilerin geri kalanını almak için bu belirteci kullanarak API'yi çağırmaya devam edin. Herhangi bir olay girdisi olmadan bir çağrının devamlılık belirteci döndürmesi mümkündür. Aşağıdaki örnek, yanıtta döndürülen bir devamlılık belirteciyle döngü yapmayı gösterir:
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);
ile arasındaki startDateTime
endDateTime
süre 1 saati aşarsa, verileri continuationUri
yanıt olarak indirmek için birden çok istek gerekir.
Aşağıdaki örnekte 1 saat 5 dakika boyunca verilerin nasıl indirilme işlemi gösterilmektedir:
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
}
Denetim etkinliği olaylarını alma örnekleri de dahil olmak üzere Power BI REST API'sini kullanma hakkında daha fazla bilgi edinmek için Power BI REST API başvuru belgelerindeki Yönetici - Etkinlik Olaylarını Alma makalesine bakın.
Get-PowerBIActivityEvent cmdlet'i
PowerShell için Power BI Yönetim cmdlet'lerini kullanarak etkinlik olaylarını indirin. Get-PowerBIActivityEvent cmdlet'i devamlılık belirtecini sizin için otomatik olarak işler. Cmdlet, ActivityEvents REST API'siyle aynı kısıtlamalara sahip bir StartDateTime ve endDateTime parametresi alır.Get-PowerBIActivityEvent
Başka bir deyişle, bir kerede yalnızca bir gün için etkinlik verilerini alabildiğiniz için başlangıç tarihi ve bitiş tarihi aynı tarih değerine başvurmalıdır.
Aşağıdaki betikte tüm Power BI etkinliklerinin nasıl indirilmesi gösterilmektedir. komutu, tek tek etkinlik özelliklerine kolay erişim için JSON'dan sonuçları .NET nesnelerine dönüştürür. Bu örnekler, hiçbir olayın kaçırılmamasını sağlamak için bir gün için mümkün olan en küçük ve en büyük zaman damgalarını gösterir:
Login-PowerBI
$activities = Get-PowerBIActivityEvent -StartDateTime '2019-08-31T00:00:00' -EndDateTime '2019-08-31T23:59:59' | ConvertFrom-Json
$activities.Count
$activities[0]
Etkinlik verilerini filtreleme
Etkinlik olaylarını etkinlik türüne ve kullanıcı kimliğine göre filtreleyebilirsiniz. Aşağıdaki betikte Yalnızca ViewDashboard etkinliği için olay verilerinin nasıl indirilmeye devam olduğu gösterilmektedir. Desteklenen parametreler hakkında ek bilgi için komutunu Get-Help Get-PowerBIActivityEvent
kullanın.
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]
Not
Power BI etkinlik günlüğü olaylarını filtrelemeyi ve almayı öğrenmenize yardımcı olacak bir PowerShell örneği sağlanır. Daha fazla bilgi için bkz . Power BI etkinlik günlüğüne erişme.