Power BI için Azure Log Analytics'i yapılandırma
Power BI, yöneticilerin ve Premium çalışma alanı sahiplerinin Power BI abonelikleriyle Log Analytics bağlantısı yapılandırmasına olanak tanımak için Azure Log Analytics ile tümleştiriliyor. Bu makalede Log Analytics ile Power BI arasındaki tümleştirmenin nasıl çalıştığı ve ortamınız için nasıl yapılandırıldığı açıklanır.
Azure Log Analytics'in Power BI için çalışmasını sağlamak için iki öğe vardır:
- Azure portalında Azure aboneliğinizi yapılandırın.
- Power BI Yönetim portalında Power BI için Log Analytics'i etkinleştirin.
Aşağıdaki bölümler, her ikisini de yapmak için içindeki adımlarda size yol gösterir.
Önkoşullar
Power BI'dan Log Analytics tümleştirmesini yapılandırabilmeniz için önce Azure portalında bir Log Analytics Çalışma Alanı oluşturmanız gerekir. Power BI hizmeti günlükleri yazması için Azure'da da izin vermeniz gerekir. Tam gereksinimler şunlardır:
- Azure aboneliğine katkıda bulunan erişimi.
- 'microsoft.insights' kaynak sağlayıcısını Power BI günlük verilerini toplayacağınız Azure aboneliğine kaydedin.
- Power BI'da Log Analytics tümleştirmesini ayarlayan kullanıcının Log Analytics Çalışma Alanı için Log Analytics Katılımcısı rolünde olması gerekir. Sahip rolü verilemiyorsa geçici çözümler için SSS bölümüne bakın.
'microsoft.insights' kaynak sağlayıcısını etkinleştirme
Log Analytics, Azure abonelik düzeyinde 'microsoft.insights' kaynak sağlayıcısının etkinleştirilmesini gerektirir. Aşağıdaki adımlar sizi süreç boyunca götürür.
Azure portalında oturum açın, Log Analytics ile kullanmak istediğiniz ve Log Analytics çalışma alanlarınızı içeren aboneliği seçin. Ayarlar bölümünde, aşağıdaki görüntüde gösterildiği gibi Kaynak sağlayıcıları'nı seçin.
Kaynak sağlayıcıları altında microsoft.insights araması oluşturun. Ardından Kaydet’i seçin.
İzinleri ayarlama
Log Analytics tümleştirmesini yapılandıran kullanıcının Log Analytics çalışma alanında Log Analytics Katkıda Bulunanı rolüne sahip olduğundan emin olun. Azure portalında abonelik için Erişim denetimi (IAM) seçeneğini belirleyip paneldeki en üst seçimlerden Rol atamaları'nı seçtiğinizde geçerli kullanıcının bir giriş görmesi gerekir: Log Analytics'i yapılandıran kullanıcı için Log Analytics Katkıda Bulunanı:
Bu adımları tamamladıktan sonra Azure Log Analytics yapılandırma bölümü tamamlanır. Sonraki bölümde, Power BI Yönetim portalında nasıl devam edip yapılandırmayı tamamlayacağınız gösterilmektedir.
Yönetici Portalı'ndan Çalışma Alanı düzeyinde günlüğe kaydetmeye izin ver
Power BI Premium çalışma alanları için Azure Log Analytics'i etkinleştirmek için bir Power BI yöneticisinin aşağıdaki adımı tamamlaması gerekir. Bu ayar, önkoşullar karşılandığında Power BI Premium çalışma alanı yöneticilerinin çalışma alanı günlüklerini Azure Log Analytics'e göndermesine olanak tanır.
Power BI Yönetici portalında Kiracı Ayarları > Denetim ve kullanım ayarları'na gidin ve çalışma alanı yöneticileri için Azure Log Analytics bağlantılarını genişletin. Çalışma alanı yöneticilerinin Log Analytics'i etkinleştirmesine izin vermek için kaydırıcıyı Etkin olarak ayarlayın ve aşağıdaki görüntüde gösterildiği gibi Uygula altında gerekli güvenlik gruplarını belirtin.
Premium Çalışma Alanında günlüğe kaydetmeyi yapılandırma
Premium çalışma alanında çalışma alanı yöneticileri Log Analytics'i etkinleştirebilir. Bunu yapmak için aşağıdaki görüntüde gösterildiği gibi Ayarlar'a gidin.
Ayarlar bölmesinde Azure bağlantıları'nı seçin ve aşağıdaki görüntüde gösterildiği gibi Log Analytics'i genişletin.
Önceki bölümde yapılandırılan Azure aboneliğini, Kaynak grubunu ve ardından Log Analytics çalışma alanını seçin. Ardından Kaydet'i seçin. Başarıyla tamamlandığında, genişletilmiş Kiracı düzeyinde Log Analytics bölümü aşağıdaki görüntüye benzer görünmelidir.
Azure Log Analytics bağlantısını kesme
Günlüklerin Azure'a gönderilmesini durdurmak için Azure Log Analytics bağlantısını kesebilirsiniz. Bağlantıyı kesmek için Power BI Çalışma Alanı Ayarları'nda Log Analytics ayarlarına gidin. Azure bağlantısını kes'i seçin. Ardından bağlantıyı kesmek için Kaydet'i seçin.
Not
Power BI çalışma alanının Azure Log Analytics bağlantısını kestiğiniz zaman günlükler silinmez. Verileriniz kalır ve burada ayarladığınız depolama ve saklama ilkelerini izler.
Kullanım senaryoları
Azure Log Analytics ve Power BI'ın kuruluşunuz için gerçek dünya zorluklarını çözmenize yardımcı olmanın birçok yolu vardır. Aşağıdaki topluluklara bir göz atın:
- Kapasiteye, çalışma alanına, rapora veya kullanıcıya göre yüksek veya olağan dışı Analysis Services altyapısı etkinliğinin dönemlerini belirleyin.
- Dış DirectQuery işlemleri de dahil olmak üzere sorgu performansını ve eğilimlerini analiz edin.
- Anlamsal model yenileme süresini, çakışmalarını ve işleme adımlarını analiz edin.
- Premium XMLA uç noktası kullanılarak gönderilen özel işlemleri analiz edin.
Günlüğe kaydetmeyi nasıl kullandığınız ve kuruluşunuza nasıl yardımcı olduğu hakkında Power BI Topluluğu bize geri bildirim gönderin.
Hata koşulları ve çözümleri
Aşağıdaki tabloda yaygın hataların, bunları tetikleyen olayların veya yapılandırmaların ve önerilen çözümlerin bir koleksiyonu sağlanmaktadır.
Tetikleyici Koşulu | Tür | İleti |
---|---|---|
Log Analytics Çalışma Alanına yazma izniniz yok | Hata - devam edilemiyor | Power BI'a bağlamak için bu Log Analytics çalışma alanında yazma izinlerine sahip olmanız gerekir. Bu sorunu çözmek için kuruluşunuzda Azure aboneliklerini yöneten kişiye başvurun. |
Log Analytics çalışma alanı hesabına yazma izniniz yok | Hata - devam edilemiyor | Power BI'a bağlamak için bu Log Analytics çalışma alanında yazma izinlerine sahip olmanız gerekir. |
Hiçbir Azure aboneliğine erişiminiz yok | Hata - devam edilemiyor | Hiçbir Azure aboneliğine erişiminiz yok. Kuruluşunuzda Azure aboneliklerini yöneten kişiden size katkıda bulunan erişimi veya daha yüksek bir erişim vermesini isteyin. |
Bu abonelik içindeki hiçbir Azure Log Analytics çalışma alanına erişiminiz yok | Hata - devam edilemiyor | Azure Log Analytics çalışma alanına erişiminiz yok. Kuruluşunuzda Azure aboneliklerini yöneten kişiden sizi Log Analytics sahibi veya katkıda bulunan rolüne eklemesini isteyin. |
Çalışma alanı düzeyinde Log Analytics bağlanmaya çalışırken devre dışı bırakıldı | Bilgiler | Kiracı yöneticinizden çalışma alanı yöneticilerine Log Analytics çalışma alanlarını bağlama izni vermesini isteyin. |
Çalışma alanı düzeyinde Log Analytics, bağlantıyı kesmeye çalışırken devre dışı bırakıldı | Bilgiler | Kiracı yöneticiniz, çalışma alanı yöneticilerinin kendi Azure Log Analytics çalışma alanlarını bağlama iznini iptal etti. Bağlantıyı keserseniz, başka bir bağlantı kuramazsınız. |
Olaylar ve şema
Azure Log Analytics'i etkinleştirdikten sonra aşağıdaki olay kategorilerini günlüğe kaydetmeye başlar. Bu olaylar hakkında daha fazla bilgi için bkz . Analysis Services İzleme Olayları.
- AggregateTableRewriteQuery
- Command
- Kilitlenme
- DirectQuery
- Bulma
- Hata
- ProgressReport
- Sorgu
- Oturum Başlatma
- VertiPaqSEQuery
- Bildirim
Aşağıdaki tabloda şema açıklanmaktadır.
Özellik | Mevcut Azure Analysis Services özelliği | Açıklama |
---|---|---|
TimeGenerated | Günlüğün oluşturulduğu zaman damgası (UTC). | |
OperationName | EventClass_s | Günlük kaydıyla ilişkili Analysis Services izleme olayı. Her kategori için olası olaylar hakkında daha fazla ayrıntı için AS İzleme Olayları belgeleri sayfasına bakın. |
CorrelationId | bağıntılı olayların kimliği. Birden çok tablo arasındaki bağıntılı olayları tanımlamak için kullanılabilir. | |
PowerBIWorkspaceId | Üzerinde çalıştırılan yapıtı içeren çalışma alanının benzersiz tanımlayıcısı. | |
PremiumCapacityId | Üzerinde çalıştırılan yapıtı barındıran Premium kapasitenin benzersiz tanımlayıcısı. | |
ApplicationContext | ApplicationContext_s | İsteği yürüten uygulama hakkında ayrıntılı bilgi sağlayan benzersiz tanımlayıcıların özellik paketi. örneğin, rapor kimliği. |
ApplicationName | ApplicationName_s | Sunucu bağlantısını oluşturan istemci uygulamasının adını içerir. Bu sütun, programın görüntülenen adı yerine uygulama tarafından geçirilen değerlerle doldurulur. |
ArtifactId | Verilerin günlüğe kaydedilmesi için kaynağın benzersiz tanımlayıcısı. | |
ArtifactKind | İşlemi günlüğe kaydetme yapıt türü, örneğin anlamsal model. | |
CpuTimeMs | CPUTime_s | Olay tarafından kullanılan CPU süresi (milisaniye cinsinden). |
ArtifactName | DatabaseName_s | Bu işlemi günlüğe kaydetmek için Power BI yapıtının adı. |
LogAnalyticsCategory | Benzersiz | Günlük kaydıyla ilişkili Analysis Services izleme olayı kategorisi. Olası olay kategorileri hakkında daha fazla bilgi için AS İzleme Olayları belge sayfasına bakın. |
DatasetMode | Anlamsal modelin modu. İçeri aktarma, DirectQuery veya Bileşik. | |
SüreM'ler | Duration_s | İşlem tarafından geçen süre (milisaniye cinsinden). |
Kullanıcı | User_s | Çalışan işlemle ilişkili kullanıcı. Son kullanıcı kimliğinin sunucuda kimliğine bürünülmesi gerektiğinde kullanılır. |
YürütenKullanıcı | EffectiveUsername_s | İşlemi çalıştıran kullanıcı. |
OperationDetailName | EventSubclass_s | Günlük kaydıyla ilişkili Analysis Services izleme olayı hakkında daha fazla ayrıntı. Olası değerler hakkında daha fazla ayrıntı için izleme olayı belgeleri sayfasının 'Alt Sınıf' özelliğine bakın, örneğin Command Begin. |
XmlaObjectPath | ObjectPath_s | Nesne yolu. Nesnenin üst öğesinden başlayarak virgülle ayrılmış üst öğe listesi. |
PowerBIWorkspaceName | Yapıtı içeren Power BI çalışma alanının adı. | |
StatusCode | Error_s | İşlemin durum kodu. Başarıyı ve başarısızlığı kapsar. |
ProgressCounter | ProgressTotal_s | İlerleme sayacı. |
XmlaProperties | RequestProperties_s | XMLA isteğinin özellikleri. |
XmlaSessionId | SPID_s | Analysis Services oturum tanımlayıcısı. |
Düzey | Severity_s | Günlüğe kaydedilen işlemin önem düzeyini içerir. Başarı, Bilgilendirme, Uyarı veya Hata. |
Kimlik | Kullanıcı ve talepler hakkında bilgi. | |
Statü | İşlemin durumu. | |
EventText | TextData_s | İşlemle ilişkilendirilmiş ayrıntılı bilgileri (örneğin, DAX Sorgusu) içerir. |
CustomerTenantId | Müşterinin Power BI kiracı tanımlayıcısı. | |
XmlaRequestId | RootActivityId_g | İsteğin Benzersiz Tanımlayıcısı. |
ReplicaId | Sorgu Ölçeği Genişletme (QSO) etkinleştirildiğinde çoğaltmayı tanımlamanızı sağlayacak çoğaltma tanımlayıcısı. Okuma-yazma çoğaltması her zaman ReplicaId='AAA' ve salt okunur çoğaltmalarda 'AAB' ile başlayan ReplicaId değeri bulunur. QSO etkin olmayan anlam modelleri için ReplicaId her zaman 'AAA' |
ExecutionMetrics olayı
Her Bulma, Komut ve Sorgu isteği için isteğin sonunda ExecutionMetrics adlı bir olay oluşturulur. Bu olay, isteğin yürütme ölçümlerini içerir ve bu ölçümler tanılama ve sorun giderme işlemlerini daha etkili bir şekilde gerçekleştirmenize yardımcı olabilir. ExecutionMetrics izlemesi en yakın [Bul| ile ilişkilendirilirKomut|Sorgu]Olayı sonlandır .
Aşağıdaki KQL sorgusu, bir Anlam Modelinin son gün içindeki tüm yenileme işlemleri için ExecutionMetrics olaylarını alır:
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
Aşağıdaki KQL sorgusu çalışma alanı, öğe ve kullanıcı tarafından son gün kısıtlanmış olayları alır:
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
İstatistikler EventText özelliğinde JSON metni olarak sunulur, aşağıdaki örneklere bakın.
{
"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
}
Aşağıdaki tabloda tüm olası özellikler açıklanmaktadır. İçerikler isteğe ve anlam modeline bağlı olacağı için her olayda her özellik gösterilmez.
Özellik | Açıklama |
---|---|
timeStart | İsteğin ne zaman başladığının zaman damgası (UTC). |
timeEnd | İsteğin sona erdiğinde zaman damgası (UTC). |
durationMs | Yürütmenin toplam süresi. |
datasourceConnectionThrottleTimeMs | Veri kaynağı bağlantı sınırına ulaştıktan sonra toplam azaltma süresi. En fazla eşzamanlı bağlantı hakkında daha fazla bilgiyi burada bulabilirsiniz. |
externalQueryExecutionTimeMs | İstek sırasında tüm dış veri kaynağı sorgularını yürütmek için harcanan toplam süre. |
directQueryConnectionTimeMs | İstek sırasında yeni DirectQuery bağlantısı oluşturmak için harcanan toplam süre |
directQueryIterationTimeMs | DirectQuery sorguları tarafından döndürülen sonuçları yinelemek için harcanan toplam süre. |
directQueryTotalTimeMs | İstek sırasında tüm DirectQuery sorgularını yürütmek ve okumak için harcanan toplam süre. |
executionDelayMs | Analysis Services altyapısı iş parçacığı havuzu iş parçacığı kullanılabilirliğini beklerken harcanan toplam süre. |
totalCpuTimeMs | İsteğin toplam CPU süresi. |
vertipaqJobCpuTimeMs | Vertipaq altyapısı tarafından harcanan toplam CPU süresi. |
mEngineCpuTimeMs | PowerQuery altyapısı tarafından harcanan toplam CPU süresi. |
queryProcessingCpuTimeMs | Analysis Services sorgu iş parçacığı havuzu iş parçacığındaki görevler tarafından harcanan toplam CPU süresi. |
approximatePeakMemoryConsumptionKB | İstek sırasında yaklaşık en yüksek toplam bellek tüketimi. |
mEnginePeakMemoryKB | Tüm PowerQuery altyapısı karma kapsayıcılarında yaklaşık en yüksek bellek işleme boyutu (kilobayt cinsinden). |
directQueryTimeoutMs | DirectQuery sorguları ile ilişkili zaman aşımı. |
externalQueryTimeoutMs | Dış veri kaynaklarına yönelik sorgularla ilişkili zaman aşımı. |
tabularConnectionTimeoutMs | Dış tablosal veri kaynağı bağlantıları (e.g. SQL) ile ilişkili zaman aşımı. |
refreshParallelism | İstekte kullanılan geçerli MaxParallelism. |
vertipaqTotalRows | Yenileme işlemi sırasında Vertipaq altyapısı tarafından işlenen toplam satır sayısı. |
queryResultRows | DAX sorgusunun sonucu olarak döndürülen toplam satır sayısı. |
directQueryTotalRows | Çeşitli DirectQuery sorgularından okunan toplam satır sayısı. |
directQueryRequestCount | DAX altyapısı tarafından yürütülen toplam DirectQuery depolama altyapısı sorgusu sayısı. |
errorCount | Geçerli istek için toplam hata sayısı. |
qsoReplicaVersion | FILETIME biçiminde temsil edilen QSO özellikli anlam modelleri için çoğaltma sürümü. |
intendedUsage | Amaçlanan kullanım: Varsayılan (0); Zamanlanmış veya API yenileme (1); İsteğe Bağlı Yenileme (2); Pano kutucuğu/Sorgu önbelleği yenileme (3) |
commandType | İstemci tarafından istenen Analysis Services komutunun türü (örn. Batch, Deyimi, Yedekleme,...) |
discoverType | İstemci tarafından istenen Bulma türü. Bulma türlerinin listesi için EventSubclass'a bakın. |
queryDialect | Sunucuyu sorgulamak için kullanılan Diyalekt istemcisinin türü: Bilinmiyor (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4) |
capacityThrottlingMs | Kapasite azaltma nedeniyle isteğin gecikme süresi. Azaltma hakkında daha fazla bilgiyi burada bulabilirsiniz. |
- Tüm süreler ve CPU süreleri milisaniye cinsinden sunulur.
- Yukarıdaki tabloda açıklananların ötesinde ek özelliklerle karşılaşılabilir ve bunlar belgelenmemiş olarak kabul edilmeli ve değiştirilebilir.
Örnek Log Analytics KQL sorguları
Power BI ile Azure Log Analytics kullandığınızda aşağıdaki örnek sorgu koleksiyonu yararlı olabilir. Bunlar doğrudan Azure portalında veya API'ler aracılığıyla çalıştırarak genellikle yaklaşık 5-10 dakikalık en son verileri sorgulayabilir.
// 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
Örnek Power BI Rapor Şablonu
GitHub'da açık kaynaklı bir Power BI Rapor Şablonu kullanarak Azure Log Analytics Power BI verileriyle ilgili içgörüler edinin.
İlgili içerik
Aşağıdaki makaleler, Power BI ve Azure Log Analytics ile tümleştirmesi hakkında daha fazla bilgi edinmenize yardımcı olabilir.