Aracılığıyla paylaş


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.

Ayarlar bölmesinde açılan Azure bağlantıları sekmesinin ekran görüntüsü.

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

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

    Ayarlar menüsü seçeneklerinin ekran görüntüsü, kaynak sağlayıcıları seçildi.

  2. Kaynak sağlayıcıları altında microsoft.insights araması oluşturun. Ardından Kaydet’i seçin.

    Microsoft.insights'ın kayıtlı olduğu ana bölmedeki kaynak sağlayıcılarının ekran görüntüsü.

İzinleri ayarlama

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

    Rolün vurgulandığı Erişim denetim bölmesinin ekran görüntüsü.

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.

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

    Yönetici portalındaki kiracı ayarlarının ekran görüntüsü. Çalışma alanı yöneticileri için Azure log analytics bağlantıları genişletilir ve etkinleştirilir.

Premium Çalışma Alanında günlüğe kaydetmeyi yapılandırma

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

    Premium çalışma alanında ayarlar bölmesinin ekran görüntüsü.

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

    Ayarlar bölmesinde açılan Azure bağlantıları sekmesinin ekran görüntüsü, Log Analytics genişletildi.

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

    Örnek bilgileri gösteren ayarlar bölmesinde açık olan Azure bağlantıları sekmesinin ekran görüntüsü.

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.

Ayarlar bölmesindeki bağlantı kesme uyarısının ekran görüntüsü.

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.

Aşağıdaki makaleler, Power BI ve Azure Log Analytics ile tümleştirmesi hakkında daha fazla bilgi edinmenize yardımcı olabilir.