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.
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.
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.
Vyhledejte microsoft.insights v části Poskytovatelé prostředků. Potom vyberte Zaregistrovat.
Nastavení oprávnění
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:
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.
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.
Konfigurace protokolování v pracovním prostoru Premium
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.
V podokně Nastavení vyberte připojení Azure a pak rozbalte Log Analytics, jak je znázorněno na následujícím obrázku.
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.
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.
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.
Související obsah
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.