Mengonfigurasi Azure Log Analytics untuk Power BI
Power BI terintegrasi dengan Azure Log Analytics untuk memungkinkan administrator dan pemilik ruang kerja Premium mengonfigurasi koneksi Analitik Log ke langganan Power BI mereka. Artikel ini menjelaskan cara kerja integrasi antara Analitik Log dan Power BI dan cara mengonfigurasinya untuk lingkungan Anda.
Ada dua elemen untuk membuat Azure Log Analytics berfungsi untuk Power BI:
- Konfigurasikan langganan Azure Anda di portal Azure.
- Aktifkan Analitik log untuk Power BI di portal Admin Power BI.
Bagian berikut membawa Anda melalui langkah-langkah untuk melakukan keduanya.
Prasyarat
Sebelum dapat mengonfigurasi integrasi Analitik Log dari Power BI, Anda perlu membuat Ruang Kerja Log Analytics di portal Microsoft Azure. Anda juga harus memberikan izin di Azure agar layanan Power BI menulis log. Persyaratan yang tepat adalah:
- Akses kontributor ke langganan Azure.
- Daftarkan penyedia sumber daya 'microsoft.insights' di langganan Azure tempat Anda akan mengumpulkan data log Power BI.
- Pengguna yang menyiapkan integrasi Analitik Log di Power BI harus berada dalam peran Kontributor Analitik Log untuk Ruang Kerja Analitik Log. Lihat FAQ untuk solusinya jika peran Pemilik tidak dapat diberikan.
Mengaktifkan penyedia sumber daya 'microsoft.insights'
Log Analytics memerlukan penyedia sumber daya 'microsoft.insights' yang diaktifkan di tingkat langganan Azure. Langkah-langkah berikut membawa Anda melalui proses.
Masuk ke portal Azure, pilih langganan yang ingin Anda gunakan dengan Analitik Log dan yang berisi ruang kerja Analitik Log Anda. Di bagian Pengaturan, pilih Penyedia sumber daya seperti yang diperlihatkan dalam gambar berikut.
Cari microsoft.insights di bawah Penyedia sumber daya. Lalu, pilih Daftar.
Mengatur izin
Pastikan pengguna yang mengonfigurasi integrasi Log Analytics memiliki peran Kontributor Analitik Log dari ruang kerja Analitik Log. Saat Anda memilih Kontrol akses (IAM) untuk langganan di portal Azure, lalu pilih Penetapan peran dari pilihan teratas di panel, pengguna saat ini harus melihat satu entri: Kontributor Analitik Log untuk pengguna yang mengonfigurasi Analitik Log:
Setelah Anda menyelesaikan langkah-langkah tersebut, bagian konfigurasi Azure Log Analytics selesai. Bagian berikutnya menunjukkan kepada Anda cara melanjutkan dan menyelesaikan konfigurasi di portal Admin Power BI.
Perbolehkan pengelogan tingkat Ruang Kerja dari Portal Admin
Administrator Power BI harus menyelesaikan langkah berikut untuk mengaktifkan Azure Log Analytics untuk ruang kerja Power BI Premium. Pengaturan ini memungkinkan administrator ruang kerja Power BI Premium mengirim log ruang kerja mereka ke Azure Log Analytics saat prasyarat telah terpenuhi.
Di portal Admin Power BI, buka Pengaturan Penyewa > Audit dan pengaturan penggunaan, dan perluas koneksi Azure Log Analytics untuk administrator ruang kerja. Untuk mengizinkan admin ruang kerja mengaktifkan Analitik Log, atur penggeser ke Diaktifkan dan tentukan grup keamanan yang diperlukan di bawah Terapkan ke, seperti yang ditunjukkan pada gambar berikut.
Mengonfigurasi pengelogan di Ruang Kerja Premium
Di ruang kerja Premium, admin ruang kerja dapat mengaktifkan Analitik Log. Untuk melakukannya, buka Pengaturan seperti yang ditunjukkan pada gambar berikut.
Di panel Pengaturan, pilih Koneksi Azure, lalu perluas Analitik Log seperti yang ditunjukkan pada gambar berikut.
Pilih langganan Azure, Grup sumber daya, lalu ruang kerja Analitik Log yang dikonfigurasi di bagian sebelumnya. Lalu pilih Simpan. Setelah berhasil diselesaikan, bagian Analitik Log tingkat Penyewa yang diperluas akan terlihat mirip dengan gambar berikut.
Memutuskan sambungan Azure Log Analytics
Anda dapat memutuskan sambungan dari Azure Log Analytics untuk berhenti mengirim log ke Azure. Untuk memutuskan sambungan, di Pengaturan Ruang Kerja Power BI, buka pengaturan Analitik Log. Pilih Putuskan sambungan dari Azure. Lalu pilih Simpan untuk memutuskan sambungan.
Catatan
Saat Anda memutuskan Power BI ruang kerja dari Azure Log Analytics, log tidak akan dihapus. Data Anda tetap ada dan mengikuti kebijakan penyimpanan dan retensi yang Anda tetapkan di sana.
Skenario penggunaan
Ada banyak cara agar Azure Log Analytics dan Power BI dapat membantu menyelesaikan tantangan dunia nyata bagi organisasi Anda. Pertimbangkan hal berikut:
- Identifikasi periode aktivitas mesin Analysis Services yang tinggi atau tidak biasa berdasarkan kapasitas, ruang kerja, laporan, atau pengguna.
- Menganalisis performa dan tren kueri, termasuk operasi DirectQuery eksternal.
- Analisis durasi refresh model semantik, tumpang tindih, dan langkah-langkah pemrosesan.
- Analisis operasi kustom yang dikirim menggunakan titik akhir XMLA Premium.
Kirimi kami umpan balik di Komunitas Power BI tentang cara Anda menggunakan pengelogan dan bagaimana hal itu telah membantu organisasi Anda.
Kondisi dan resolusi kesalahan
Tabel berikut ini menyediakan kumpulan kesalahan umum, peristiwa atau konfigurasi yang memicunya, dan resolusi yang disarankan.
Kondisi Pemicu | Jenis | Pesan |
---|---|---|
Anda tidak memiliki izin untuk menulis ke Ruang Kerja Analitik Log | Kesalahan - tidak dapat melanjutkan | Anda memerlukan izin tulis di ruang kerja Log Analytics ini untuk menyambungkannya ke Power BI. Hubungi orang di organisasi Anda yang mengelola langganan Azure untuk memperbaiki masalah ini. |
Anda tidak memiliki izin untuk menulis ke akun ruang kerja Analitik Log | Kesalahan - tidak dapat melanjutkan | Anda memerlukan izin tulis di ruang kerja Log Analytics ini untuk menyambungkannya ke Power BI. |
Anda tidak memiliki akses ke langganan Azure apa pun | Kesalahan - tidak dapat melanjutkan | Anda tidak memiliki akses ke langganan Azure apa pun. Minta seseorang yang mengelola langganan Azure di organisasi Anda untuk memberi Anda akses kontributor atau yang lebih tinggi. |
Anda tidak memiliki akses ke ruang kerja Azure Log Analytics apa pun dalam langganan tersebut | Kesalahan - tidak dapat melanjutkan | Anda tidak memiliki akses ke ruang kerja Log Analytics Azure. Minta seseorang yang mengelola langganan Azure di organisasi Anda untuk menambahkan Anda ke peran pemilik atau kontributor Log Analytics. |
Log Analytics tingkat ruang kerja dinonaktifkan saat mencoba menyambungkan | Informasi | Minta admin penyewa Anda untuk memberikan izin admin ruang kerja untuk menyambungkan ruang kerja Log Analytics. |
Log Analytics tingkat ruang kerja dinonaktifkan saat mencoba memutuskan sambungan | Informasi | Admin penyewa Anda mencabut izin bagi admin ruang kerja untuk menyambungkan ruang kerja Azure Log Analytics mereka sendiri. Jika terputus, Anda tidak dapat tersambung ke yang lain. |
Peristiwa dan skema
Setelah Anda mengaktifkan Azure Log Analytics, azure Log Analytics mulai mencatat kategori peristiwa berikut. Untuk informasi selengkapnya tentang peristiwa ini, lihat Peristiwa Pelacakan Analysis Services.
- AggregateTableRewriteQuery
- Perintah
- Kebuntuan
- DirectQuery
- Temukan
- Kesalahan
- ProgressReport
- Kueri
- Inisialisasi Sesi
- VertiPaqSEQuery
- Pemberitahuan
Tabel berikut menjelaskan skema.
Properti | Properti Azure Analysis Services yang sudah ada | Deskripsi |
---|---|---|
TimeGenerated | Tanda waktu (UTC) saat log dihasilkan. | |
OperationName | EventClass_s | Peristiwa pelacakan Analysis Services yang terkait dengan catatan log. Lihat halaman dokumentasi Peristiwa Pelacakan AS untuk detail selengkapnya tentang kemungkinan peristiwa untuk setiap kategori. |
CorrelationId | ID untuk kejadian berkorelasi. Dapat digunakan untuk mengidentifikasi kejadian yang berkorelasi di antara beberapa tabel. | |
PowerBIWorkspaceId | Pengidentifikasi unik ruang kerja yang berisi artefak yang sedang dioperasikan. | |
PremiumCapacityId | Pengidentifikasi unik kapasitas Premium yang menghosting artefak yang sedang dioperasikan. | |
ApplicationContext | ApplicationContext_s | Tas properti pengidentifikasi unik memberikan detail tentang aplikasi yang menjalankan permintaan. misalnya, ID laporan. |
ApplicationName | ApplicationName_s | Berisi nama aplikasi klien yang membuat koneksi ke server. Kolom ini diisi dengan nilai yang diteruskan oleh aplikasi daripada nama program yang ditampilkan. |
ArtifactId | Pengidentifikasi unik dari pengelogan sumber daya data. | |
ArtifactKind | Jenis operasi pengelogan artefak, misalnya, model semantik. | |
CpuTimeMs | CPUTime_s | Jumlah waktu CPU (dalam milidetik) yang digunakan oleh peristiwa. |
ArtifactName | DatabaseName_s | Nama artefak Power BI yang mencatat operasi ini. |
LogAnalyticsCategory | Unik | Kategori peristiwa pelacakan Analysis Services yang terkait dengan catatan log. Lihat halaman dokumentasi Peristiwa Pelacakan AS untuk detail selengkapnya tentang kemungkinan kategori peristiwa. |
DatasetMode | Mode model semantik. Impor, DirectQuery, atau Komposit. | |
DurasiM | Duration_s | Jumlah waktu (dalam milidetik) yang diambil oleh operasi. |
Pengguna | User_s | Pengguna yang terkait dengan operasi yang sedang berjalan. Digunakan ketika identitas pengguna akhir harus ditiru di server. |
ExecutingUser | EffectiveUsername_s | Pengguna yang menjalankan operasi. |
OperationDetailName | EventSubclass_s | Detail selengkapnya tentang peristiwa pelacakan Analysis Services yang terkait dengan catatan log. Lihat properti 'Subkelas' dari halaman dokumentasi peristiwa pelacakan untuk detail selengkapnya tentang kemungkinan nilai, misalnya Command Begin. |
XmlaObjectPath | ObjectPath_s | Jalur objek. Daftar induk yang dipisahkan koma, dimulai dengan induk objek. |
PowerBIWorkspaceName | Nama ruang kerja Power BI yang berisi artefak. | |
StatusCode | Error_s | Kode status operasi. Ini mencakup keberhasilan dan kegagalan. |
ProgressCounter | ProgressTotal_s | Penghitung kemajuan. |
XmlaProperties | RequestProperties_s | Properti permintaan XMLA. |
XmlaSessionId | SPID_s | Pengidentifikasi sesi Analysis Services. |
Tingkat | Severity_s | Berisi tingkat keparahan operasi yang masuk. Berhasil, Informasi, Peringatan, atau Kesalahan. |
Identitas | Informasi tentang pengguna dan klaim. | |
Keadaan | Status operasi. | |
EventText | TextData_s | Berisi informasi verbose yang terkait dengan operasi, misalnya, Kueri DAX. |
CustomerTenantId | Pengidentifikasi penyewa Power BI pelanggan. | |
XmlaRequestId | RootActivityId_g | Pengidentifikasi unik permintaan. |
ReplicaId | Pengidentifikasi replika yang akan memungkinkan Anda mengidentifikasi replika saat Query Scale Out (QSO) diaktifkan. Replika baca-tulis selalu memiliki ReplicaId='AAA' dan replika baca-saja memiliki ReplicaId mulai 'AAB' dan seterusnya. Untuk model semantik yang diaktifkan non-QSO, ReplicaId selalu 'AAA' |
Peristiwa ExecutionMetrics
Untuk setiap permintaan Temukan, Perintah, dan Kueri, peristiwa bernama ExecutionMetrics diproduksi di akhir permintaan. Kejadian ini berisi metrik eksekusi untuk permintaan, yang dapat membantu Anda dalam mendiagnosis dan memecahkan masalah secara lebih efektif. Jejak ExecutionMetrics berkorelasi dengan [Temukan| terdekat Perintah|Kueri]Akhiri kejadian.
Kueri KQL berikut mengambil peristiwa ExecutionMetrics untuk semua operasi refresh Model Semantik di hari terakhir:
let commands = PowerBIDatasetsWorkspace
| where TimeGenerated > ago(1d)
| where ArtifactId =~ "[Semantic Model Id]"
| where OperationName in ("CommandEnd")
| where EventText contains "<Refresh"
| project TimeGenerated, ArtifactId, CommandOperationName = OperationName, XmlaRequestId, CorrelationId, CommandText = EventText;
let executionMetrics = PowerBIDatasetsWorkspace
| where OperationName == "ExecutionMetrics"
| project TimeGenerated, XmlaRequestId, CorrelationId, EventText;
commands
| join kind=leftouter executionMetrics on XmlaRequestId
Kueri KQL berikut mengambil peristiwa yang dibatasi di hari terakhir menurut ruang kerja, item, dan pengguna:
let executionMetrics = PowerBIDatasetsWorkspace
| where TimeGenerated > ago(1d)
| where OperationName == "ExecutionMetrics"
| extend eventTextJson = parse_json(EventText)
| extend capacityThrottlingMs=toint(eventTextJson.capacityThrottlingMs)
| where capacityThrottlingMs > 0;
let commands = PowerBIDatasetsWorkspace
| where OperationName in ("CommandEnd", "QueryEnd", "DiscoverEnd")
| project
TimeGenerated,
ExecutingUser,
ArtifactId,
PowerBIWorkspaceId,
CommandOperationName = OperationName,
XmlaRequestId,
CorrelationId,
CommandText = EventText;
commands
| join kind=inner executionMetrics on XmlaRequestId
| project
TimeGenerated,
ArtifactId,
PowerBIWorkspaceId,
ExecutingUser,
CommandOperationName,
XmlaRequestId,
EventText,
CommandText,
capacityThrottlingMs
| summarize countThrottling = count(), avgThrottlingDuration = avg(capacityThrottlingMs) by PowerBIWorkspaceId, ArtifactId, ExecutingUser, CommandOperationName
Statistik disajikan sebagai teks JSON di properti EventText , lihat contoh berikut.
{
"timeStart": "2024-03-20T12:39:59.681Z",
"timeEnd": "2024-03-20T13:01:14.241Z",
"durationMs": 1274559,
"vertipaqJobCpuTimeMs": 156,
"mEngineCpuTimeMs": 9617484,
"totalCpuTimeMs": 9618469,
"executionDelayMs": 10,
"approximatePeakMemConsumptionKB": 1683409,
"mEnginePeakMemoryKB": 1676816,
"tabularConnectionTimeoutMs": 18000000,
"refreshParallelism": 16,
"vertipaqTotalRows": 114,
"intendedUsage": 2
}
Tabel berikut ini menjelaskan semua properti yang mungkin. Tidak setiap properti dipancarkan di setiap peristiwa, karena konten akan bergantung pada permintaan dan model semantik.
Properti | Deskripsi |
---|---|
timeStart | Tanda waktu (UTC) saat permintaan dimulai. |
timeEnd | Tanda waktu (UTC) ketika permintaan berakhir. |
durationMs | Total durasi eksekusi. |
datasourceConnectionThrottleTimeMs | Total waktu pembatasan setelah mencapai batas koneksi sumber data. Pelajari selengkapnya tentang koneksi bersamaan maksimum di sini. |
externalQueryExecutionTimeMs | Total waktu yang dihabiskan untuk mengeksekusi semua kueri sumber data eksternal selama permintaan. |
directQueryConnectionTimeMs | Total waktu yang dihabiskan untuk membuat koneksi DirectQuery baru selama permintaan |
directQueryIterationTimeMs | Total waktu yang dihabiskan untuk iterasi hasil yang dikembalikan oleh kueri DirectQuery. |
directQueryTotalTimeMs | Total waktu yang dihabiskan untuk mengeksekusi dan membaca semua kueri DirectQuery selama permintaan. |
executionDelayMs | Total waktu yang dihabiskan untuk menunggu ketersediaan utas kumpulan utas mesin Analysis Services. |
totalCpuTimeMs | Total waktu CPU permintaan. |
vertipaqJobCpuTimeMs | Total waktu CPU yang dihabiskan oleh mesin Vertipaq. |
mEngineCpuTimeMs | Total waktu CPU yang dihabiskan oleh mesin PowerQuery. |
queryProcessingCpuTimeMs | Total waktu CPU yang dihabiskan oleh tugas pada utas kumpulan utas kueri Analysis Services. |
approximatePeakMemoryConsumptionKB | Perkiraan puncak total konsumsi memori selama permintaan. |
mEnginePeakMemoryKB | Perkiraan ukuran penerapan memori puncak (dalam kilobyte) di semua kontainer mashup mesin PowerQuery. |
directQueryTimeoutMs | Batas waktu yang terkait dengan kueri DirectQuery. |
externalQueryTimeoutMs | Batas waktu yang terkait dengan kueri ke sumber data eksternal. |
tabularConnectionTimeoutMs | Batas waktu yang terkait dengan koneksi sumber data tabular eksternal (e.g. SQL). |
refreshParallelism | MaxParallelism efektif yang digunakan dalam permintaan. |
vertipaqTotalRows | Jumlah total baris yang diproses oleh mesin Vertipaq selama operasi refresh. |
queryResultRows | Jumlah total baris yang dikembalikan sebagai hasil dari kueri DAX. |
directQueryTotalRows | Jumlah total baris yang dibaca dari berbagai kueri DirectQuery. |
directQueryRequestCount | Jumlah total kueri mesin penyimpanan DirectQuery yang dijalankan oleh mesin DAX. |
errorCount | Jumlah total kesalahan untuk permintaan saat ini. |
qsoReplicaVersion | Versi replika untuk model semantik yang diaktifkan QSO, diwakili dalam format FILETIME . |
intendedUsage | Penggunaan yang dimaksudkan: Default (0); Refresh terjadwal atau API (1); Refresh Sesuai Permintaan (2); Petak peta dasbor/Refresh cache kueri (3) |
commandType | Jenis perintah Analysis Services yang diminta oleh klien (misalnya Batch, Statement, Backup,...) |
discoverType | Jenis Temukan yang diminta oleh klien. Lihat EventSubclass untuk daftar jenis penemuan. |
queryDialect | Jenis klien Dialect telah digunakan untuk mengkueri server: Tidak Diketahui (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4) |
capacityThrottlingMs | Total waktu permintaan tertunda karena pembatasan kapasitas. Pelajari selengkapnya tentang pembatasan di sini. |
- Semua durasi dan waktu CPU disajikan dalam milidetik.
- Properti tambahan di luar yang dijelaskan dalam tabel di atas mungkin ditemukan dan ini harus dianggap tidak terdokumentasi dan dapat berubah.
Sampel kueri KQL Analitik Log
Kumpulan kueri sampel berikut mungkin berguna saat Anda menggunakan Azure Log Analytics dengan Power BI. Mereka dapat dijalankan langsung di portal Azure atau melalui API untuk mengkueri data terbaru, biasanya sekitar 5-10 menit.
// log count per day for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| summarize count() by format_datetime(TimeGenerated, 'yyyy-MM-dd')
// average query duration by day for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| where OperationName == 'QueryEnd'
| summarize avg(DurationMs) by format_datetime(TimeGenerated, 'yyyy-MM-dd')
//query duration percentiles for a single day in 1 hour bins
PowerBIDatasetsWorkspace
| where TimeGenerated >= todatetime('2021-04-28') and TimeGenerated <= todatetime('2021-04-29')
| where OperationName == 'QueryEnd'
| summarize percentiles(DurationMs, 0.5, 0.9) by bin(TimeGenerated, 1h)
// refresh durations by workspace and semantic model for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| where OperationName == 'CommandEnd'
| where ExecutingUser contains 'Power BI Service'
| where EventText contains 'refresh'
| project PowerBIWorkspaceName, DatasetName = ArtifactName, DurationMs
// query count, distinctUsers, avgCPU, avgDuration by workspace for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| where OperationName == "QueryEnd"
| summarize QueryCount=count()
, Users = dcount(ExecutingUser)
, AvgCPU = avg(CpuTimeMs)
, AvgDuration = avg(DurationMs)
by PowerBIWorkspaceId
Contoh Templat Laporan Power BI
Jelajahi dan dapatkan wawasan data Azure Log Analytics Power BI menggunakan Templat Laporan Power BI sumber terbuka di GitHub.
Konten terkait
Artikel berikut ini dapat membantu Anda mempelajari selengkapnya tentang Power BI dan tentang integrasinya dengan Azure Log Analytics.