Sdílet prostřednictvím


Konfigurace Azure Log Analytics pro Power BI

Power BI integruje se službou Azure Log Analytics, aby správci a vlastníci pracovních prostorů Premium mohli nakonfigurovat připojení Log Analytics ke svému předplatnému Power BI. Tento článek popisuje, jak funguje integrace mezi Log Analytics a Power BI a jak ji nakonfigurovat pro vaše prostředí.

Pro fungování Azure Log Analytics pro Power BI existují dva prvky:

  • Nakonfigurujte své předplatné Azure na webu Azure Portal.
  • Povolte Log Analytics pro Power BI na portálu pro správu Power BI.

Následující části vás provedou postupem, jak to udělat.

Snímek obrazovky s kartou Připojení Azure otevřenou v podokně nastavení

Požadavky

Než budete moct nakonfigurovat integraci Log Analytics z Power BI, musíte na webu Azure Portal vytvořit pracovní prostor služby Log Analytics. Musíte také udělit oprávnění v Azure pro služba Power BI k zápisu protokolů. Přesné požadavky:

  • Přístup přispěvatele k předplatnému Azure
  • Zaregistrujte poskytovatele prostředků microsoft.insights v předplatném Azure, kde budete shromažďovat data protokolů Power BI.
  • Uživatel, který nastavuje integraci Log Analytics v Power BI, musí být v roli Přispěvatel Log Analytics pro pracovní prostor služby Log Analytics. Pokud není možné udělit roli Vlastník, podívejte se na nejčastější dotazy k alternativním řešením.

Povolení poskytovatele prostředků microsoft.insights

Log Analytics vyžaduje, aby poskytovatel prostředků Microsoft.insights byl povolený na úrovni předplatného Azure. Následující kroky vás provedou procesem.

  1. Přihlaste se k webu Azure Portal, vyberte předplatné, které chcete použít se službou Log Analytics a které obsahuje vaše pracovní prostory služby Log Analytics. V části Nastavení vyberte poskytovatele prostředků, jak je znázorněno na následujícím obrázku.

    Snímek obrazovky s možnostmi nabídky nastavení, jsou vybraní poskytovatelé prostředků.

  2. Vyhledejte microsoft.insights v části Poskytovatelé prostředků. Potom vyberte Zaregistrovat.

    Snímek obrazovky poskytovatelů prostředků v hlavním podokně se službou Microsoft.insights je zaregistrovaný

Nastavení oprávnění

  1. Ujistěte se, že uživatel, který konfiguruje integraci Log Analytics, má roli Přispěvatel Log Analytics pracovního prostoru služby Log Analytics. Když vyberete řízení přístupu (IAM) pro předplatné na webu Azure Portal a pak na panelu vyberete přiřazení rolí, musí aktuální uživatel vidět jednu položku: Přispěvatel Log Analytics pro uživatele, který konfiguruje Log Analytics:

    Snímek obrazovky podokna Řízení přístupu se zvýrazněnou rolí

Po dokončení těchto kroků se dokončí část konfigurace Azure Log Analytics. V další části se dozvíte, jak pokračovat a dokončit konfiguraci na portálu pro správu Power BI.

Povolit protokolování na úrovni pracovního prostoru z portálu pro správu

Správce Power BI musí provést následující krok, aby povolil Azure Log Analytics pro pracovní prostory Power BI Premium. Toto nastavení umožňuje správcům pracovního prostoru Power BI Premium odesílat protokoly pracovních prostorů do Azure Log Analytics, jakmile jsou splněny požadavky.

  1. Na portálu pro správu Power BI přejděte na Nastavení >tenanta Audit a nastavení využití a rozbalte připojení Azure Log Analytics pro správce pracovního prostoru. Pokud chcete správcům pracovního prostoru povolit povolení Log Analytics, nastavte posuvník na Povoleno a v části Použít zadejte potřebné skupiny zabezpečení, jak je znázorněno na následujícím obrázku.

    Snímek obrazovky s nastavením tenanta na portálu pro správu Připojení Azure Log Analytics pro správce pracovního prostoru jsou rozšířená a povolená.

Konfigurace protokolování v pracovním prostoru Premium

  1. V pracovním prostoru Premium můžou správci pracovního prostoru povolit Log Analytics. Uděláte to tak, že přejdete na Nastavení , jak je znázorněno na následujícím obrázku.

    Snímek obrazovky s podoknem nastavení v pracovním prostoru Premium

  2. V podokně Nastavení vyberte připojení Azure a pak rozbalte Log Analytics, jak je znázorněno na následujícím obrázku.

    Snímek obrazovky s kartou Připojení Azure otevřenou v podokně nastavení se rozbalí.

  3. Vyberte předplatné Azure, skupinu prostředků a pak pracovní prostor služby Log Analytics nakonfigurovaný v předchozí části. Potom zvolte Save (Uložit). Po úspěšném dokončení by rozbalený oddíl Log Analytics na úrovni tenanta měl vypadat podobně jako na následujícím obrázku.

    Snímek obrazovky s kartou Připojení Azure otevřenou v podokně nastavení s ukázkovými informacemi

Odpojení Azure Log Analytics

Od Azure Log Analytics se můžete odpojit, abyste přestali odesílat protokoly do Azure. Pokud se chcete odpojit, přejděte v nastavení pracovního prostoru Power BI do nastavení Log Analytics . Vyberte Odpojit od Azure. Potom zvolte Uložit , abyste se odpojili.

Snímek obrazovky s upozorněním na odpojení v podokně nastavení

Poznámka:

Když odpojíte pracovní prostor Power BI od Azure Log Analytics, protokoly se neodstraní. Vaše data zůstávají a řídí se zásadami úložiště a uchovávání informací, které jste tam nastavili.

Scénáře použití

Existuje mnoho způsobů, jak může Azure Log Analytics a Power BI pomoct vyřešit reálné výzvy pro vaši organizaci. Zvažte použití těchto zdrojů:

  • Identifikujte období vysoké nebo neobvyklé aktivity modulu Analysis Services podle kapacity, pracovního prostoru, sestavy nebo uživatele.
  • Analyzujte výkon a trendy dotazů, včetně externích operací DirectQuery.
  • Analyzujte sémantickou dobu trvání aktualizace modelu, překrývají se a zpracovávají kroky.
  • Analýza vlastních operací odeslaných pomocí koncového bodu XMLA úrovně Premium

Pošlete nám zpětnou vazbu v Komunita Power BI, jak používáte protokolování a jak pomohla vaší organizaci.

Chybové podmínky a jejich řešení

Následující tabulka obsahuje kolekci běžných chyb, událostí nebo konfigurací, které je aktivovaly, a navrhovaných řešení.

Podmínka triggeru Typ Zpráva
Nemáte oprávnění k zápisu do pracovního prostoru služby Log Analytics. Chyba – nejde pokračovat K připojení k Power BI potřebujete oprávnění k zápisu do tohoto pracovního prostoru služby Log Analytics. Pokud chcete tento problém vyřešit, obraťte se na osobu ve vaší organizaci, která spravuje předplatná Azure.
Nemáte oprávnění k zápisu do účtu pracovního prostoru služby Log Analytics. Chyba – nejde pokračovat K připojení k Power BI potřebujete oprávnění k zápisu do tohoto pracovního prostoru služby Log Analytics.
Nemáte přístup k žádným předplatným Azure. Chyba – nejde pokračovat Nemáte přístup k žádným předplatným Azure. Požádejte osobu, která spravuje předplatná Azure ve vaší organizaci, aby vám udělila přístup přispěvatele nebo vyšší.
Nemáte přístup k žádným pracovním prostorům Služby Azure Log Analytics v rámci daného předplatného. Chyba – nejde pokračovat Nemáte přístup k pracovnímu prostoru Azure Log Analytics. Požádejte osobu, která spravuje předplatná Azure ve vaší organizaci, aby vás přidala do role vlastníka nebo přispěvatele Log Analytics.
Služba Log Analytics na úrovni pracovního prostoru je zakázaná při pokusu o připojení Informační Požádejte správce tenanta, aby správcům pracovního prostoru udělil oprávnění pro připojení pracovních prostorů služby Log Analytics.
Služba Log Analytics na úrovni pracovního prostoru je zakázaná při pokusu o odpojení Informační Správce tenanta odvolal oprávnění správcům pracovního prostoru pro připojení vlastních pracovních prostorů Azure Log Analytics. Pokud se odpojíte, nemůžete se připojit k jinému.

Události a schéma

Jakmile povolíte Azure Log Analytics, začne protokolovat následující kategorie událostí. Další informace o těchto událostech najdete v tématu Události trasování služby Analysis Services.

  • AggregateTableRewriteQuery
  • Příkaz
  • Vzájemné zablokování
  • DirectQuery
  • Zjišťování
  • Chyba
  • ProgressReport
  • Dotaz
  • Inicializace relace
  • VertiPaqSEQuery
  • Notification

Následující tabulka popisuje schéma.

Vlastnost Existující vlastnost služby Azure Analysis Services Popis
TimeGenerated Časové razítko (UTC) při vygenerování protokolu
Název operace EventClass_s Událost trasování služby Analysis Services přidružená k záznamu protokolu. Další podrobnosti o možných událostech pro každou kategorii najdete na stránce dokumentace k událostem trasování AS.
Id korelace ID pro korelované události. Lze použít k identifikaci korelovaných událostí mezi více tabulkami.
PowerBIWorkspaceId Jedinečný identifikátor pracovního prostoru obsahujícího artefakt, na němž se pracuje.
PremiumCapacityId Jedinečný identifikátor kapacity Premium hostující artefakt, na který se pracuje.
ApplicationContext ApplicationContext_s Sada vlastností jedinečných identifikátorů poskytujících podrobnosti o aplikaci, která požadavek spouští. například ID sestavy.
NázevAplikace ApplicationName_s Obsahuje název klientské aplikace, která vytvořila připojení k serveru. Tento sloupec se naplní hodnotami předanými aplikací místo zobrazovaného názvu programu.
ArtifactId Jedinečný identifikátor prostředku, který data protokoluje.
ArtifactKind Typ artefaktu protokolování operace, například sémantický model.
CpuTimeMs CPUTime_s Doba procesoru (v milisekundách) používaná událostí
ArtifactName DatabaseName_s Název artefaktu Power BI, který tuto operaci protokoluje.
LogAnalyticsCategory Jedinečný Kategorie události trasování služby Analysis Services přidružená k záznamu protokolu. Další podrobnosti o možných kategoriích událostí najdete na stránce dokumentace k událostem trasování AS.
DatasetMode Režim sémantického modelu. Import, DirectQuery nebo složený.
Doba trvání Duration_s Doba trvání operace (v milisekundách).
Uživatel User_s Uživatel přidružený ke spuštěné operaci. Používá se, když se na serveru musí zosobnět identita koncového uživatele.
Spuštění uživatele EffectiveUsername_s Uživatel, který operaci spouští.
OperationDetailName EventSubclass_s Další podrobnosti o události trasování služby Analysis Services přidružené k záznamu protokolu. Další podrobnosti o možnýchhodnotách
XmlaObjectPath ObjectPath_s Cesta k objektu. Čárkami oddělený seznam nadřazených objektů, počínaje nadřazeným objektem.
PowerBIWorkspaceName Název pracovního prostoru Power BI obsahujícího artefakt
StatusCode Error_s Stavový kód operace. Týká se úspěchu a selhání.
ProgressCounter ProgressTotal_s Čítač průběhu
XmlaProperties RequestProperties_s Vlastnosti požadavku XMLA.
XmlaSessionId SPID_s Identifikátor relace služby Analysis Services.
Úroveň Severity_s Obsahuje úroveň závažnosti protokolované operace. Úspěch, informační, upozornění nebo chyba
Identita Informace o uživateli a deklarací identity
Stav Stav operace.
Text události TextData_s Obsahuje podrobné informace přidružené k operaci, například dotaz DAX.
CustomerTenantId Identifikátor tenanta Power BI zákazníka
XmlaRequestId RootActivityId_g Jedinečný identifikátor požadavku.
ReplicaId Identifikátor repliky, který vám umožní identifikovat repliku při povolení horizontálního navýšení kapacity dotazů (QSO). Replika pro čtení i zápis má vždy repliku ReplicaId='AAA' a repliky jen pro čtení mají identifikátor ReplicaId začínající na AAB. Pro sémantické modely bez QSO je ReplikaId vždy AAA.

Událost ExecutionMetrics

Pro každý požadavek Discover, Command a Query se vytvoří událost s názvem ExecutionMetrics na konci požadavku. Tato událost obsahuje metriky spuštění pro požadavek, které vám můžou pomoct s diagnostikou a efektivnějším řešením potíží. Trasování ExecutionMetrics koreluje s nejbližším [Discover|Příkaz|Query]End event.

Následující dotaz KQL načte události ExecutionMetrics pro všechny operace aktualizace sémantického modelu za poslední den:

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

Následující dotaz KQL načte události, které byly za poslední den omezeny pracovním prostorem, položkou a uživatelem:

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

Statistiky jsou uvedeny jako text JSON ve vlastnosti EventText , viz následující příklady.

{
    "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
}

Následující tabulka popisuje všechny možné vlastnosti. Ne každá vlastnost se v každé události vygeneruje, protože obsah bude záviset na požadavku a sémantickém modelu.

Vlastnost Popis
timeStart Časové razítko (UTC) při spuštění požadavku.
timeEnd Časové razítko (UTC) doby ukončení požadavku.
durationMs Celková doba trvání provádění.
datasourceConnectionThrottleTimeMs Celková doba omezení po dosažení limitu připojení zdroje dat Další informace o maximálním počtu souběžných připojení najdete tady.
externalQueryExecutionTimeMs Celková doba strávená při provádění všech dotazů externích zdrojů dat během požadavku
directQueryConnectionTimeMs Celková doba strávená vytvořením nového připojení DirectQuery během požadavku
directQueryIterationTimeMs Celkový čas strávený iterací výsledků vrácených dotazy DirectQuery
directQueryTotalTimeMs Celkový čas strávený spouštěním a čtením všech dotazů DirectQuery během požadavku
executionDelayMs Celková doba strávená čekáním na dostupnost vláken ve fondu vláken modulu Analysis Services
totalCpuTimeMs Celkový čas procesoru požadavku
vertipaqJobCpuTimeMs Celkový čas procesoru strávený modulem Vertipaq.
mEngineCpuTimeMs Celkový čas procesoru strávený modulem PowerQuery
queryProcessingCpuTimeMs Celkový čas procesoru strávený úlohami ve vlákně fondu vláken dotazů Analysis Services
approximatePeakMemoryConsumptionKB Přibližná celková spotřeba paměti ve špičce během požadavku.
mEnginePeakMemoryKB Přibližná velikost potvrzení paměti ve špičce (v kilobajtech) ve všech kontejnerech mashup modulu PowerQuery.
directQueryTimeoutMs Časový limit přidružený k dotazům DirectQuery
externalQueryTimeoutMs Časový limit přidružený k dotazům na externí zdroje dat
tabularConnectionTimeoutMs Časový limit přidružený k externím tabulkovým připojením zdroje dat (e.g. SQL).
refreshParallelism Efektivní MaxParallelism použitý v požadavku.
vertipaqTotalRows Celkový počet řádků zpracovaných modulem Vertipaq během operace aktualizace
queryResultRows Celkový počet řádků vrácených v důsledku dotazu DAX
directQueryTotalRows Celkový počet řádků načtených z různých dotazů DirectQuery
directQueryRequestCount Celkový počet dotazů na modul úložiště DirectQuery spuštěných modulem DAX
errorCount Celkový počet chyb aktuálního požadavku
qsoReplicaVersion Verze repliky pro sémantické modely s podporou QSO reprezentovaná ve formátu FILETIME
zamýšlená využití Zamýšlené použití: Výchozí (0); Plánovaná aktualizace nebo aktualizace rozhraní API (1); Aktualizace na vyžádání (2); Dlaždice řídicího panelu / Aktualizace mezipaměti dotazů (3)
commandType Typ příkazu Analysis Services požadovaného klientem (např. Batch, Statement, Backup,...)
discoverType Typ zjišťování požadovaného klientem Seznam typů zjišťování najdete v části EventSubclass .
queryDialect Typ klienta dialektu se použil k dotazování serveru: Neznámý (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4)
capacityThrottlingMs Celková doba zpoždění požadavku kvůli omezování kapacity Další informace o omezování najdete tady.
  • Všechny doby trvání a časy procesoru se zobrazují v milisekundách.
  • Kromě vlastností popsaných v tabulce výše mohou být zjištěny další vlastnosti, které by se měly považovat za nezdokumentované a můžou se změnit.

Ukázkové dotazy Log Analytics KQL

Následující kolekce ukázkových dotazů může být užitečná při použití Azure Log Analytics s Power BI. Můžou se spouštět přímo na webu Azure Portal nebo prostřednictvím rozhraní API pro dotazování na nejnovější data, obvykle přibližně 5 až 10 minut.

// 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

Ukázková šablona sestavy Power BI

Prozkoumejte a získejte přehled o datech Power BI v Azure Log Analytics pomocí opensourcové šablony sestav Power BI na GitHubu.

Následující články vám můžou pomoct získat další informace o Power BI a její integraci se službou Azure Log Analytics.