Bagikan melalui


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.

Cuplikan layar tab koneksi Azure terbuka di panel pengaturan.

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.

  1. 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.

    Cuplikan layar opsi menu pengaturan, penyedia sumber daya dipilih.

  2. Cari microsoft.insights di bawah Penyedia sumber daya. Lalu, pilih Daftar.

    Cuplikan layar penyedia sumber daya di panel utama dengan Microsoft.insights terdaftar.

Mengatur izin

  1. 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:

    Cuplikan layar panel Kontrol akses dengan peran disorot.

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.

  1. 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.

    Cuplikan layar pengaturan penyewa di portal Admin. Koneksi analitik log Azure untuk administrator ruang kerja diperluas dan diaktifkan.

Mengonfigurasi pengelogan di Ruang Kerja Premium

  1. Di ruang kerja Premium, admin ruang kerja dapat mengaktifkan Analitik Log. Untuk melakukannya, buka Pengaturan seperti yang ditunjukkan pada gambar berikut.

    Cuplikan layar panel pengaturan di ruang kerja Premium.

  2. Di panel Pengaturan, pilih Koneksi Azure, lalu perluas Analitik Log seperti yang ditunjukkan pada gambar berikut.

    Cuplikan layar tab koneksi Azure terbuka di panel pengaturan, Analitik Log diperluas.

  3. 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.

    Cuplikan layar tab koneksi Azure terbuka di panel pengaturan memperlihatkan informasi sampel.

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.

Cuplikan layar peringatan putuskan sambungan pada panel pengaturan.

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.

Artikel berikut ini dapat membantu Anda mempelajari selengkapnya tentang Power BI dan tentang integrasinya dengan Azure Log Analytics.