Konfigurera Azure Log Analytics för Power BI
Power BI integrerar med Azure Log Analytics så att administratörer och Premium-arbetsyteägare kan konfigurera en Log Analytics-anslutning till sin Power BI-prenumeration. Den här artikeln beskriver hur integreringen mellan Log Analytics och Power BI fungerar och hur du konfigurerar den för din miljö.
Det finns två element för att få Azure Log Analytics att fungera för Power BI:
- Konfigurera din Azure-prenumeration i Azure Portal.
- Aktivera Log Analytics för Power BI i Power BI-administratörsportalen.
Följande avsnitt tar dig igenom stegen i för att göra båda.
Förutsättningar
Innan du kan konfigurera Log Analytics-integrering från Power BI måste du skapa en Log Analytics-arbetsyta i Azure Portal. Du måste också ge behörighet i Azure för att Power BI-tjänst ska kunna skriva loggar. De exakta kraven är:
- Deltagaråtkomst till Azure-prenumeration.
- Registrera resursprovidern "microsoft.insights" i Azure-prenumerationen där du samlar in Power BI-loggdata.
- Den användare som konfigurerar Log Analytics-integrering i Power BI måste ha rollen Log Analytics-deltagare för Log Analytics-arbetsytan. Se Vanliga frågor och svar om lösningar om ägarrollen inte kan ges.
Aktivera resursprovidern "microsoft.insights"
Log Analytics kräver att resursprovidern "microsoft.insights" är aktiverad på Azure-prenumerationsnivå. Följande steg tar dig igenom processen.
Logga in på Azure Portal, välj den prenumeration som du vill använda med Log Analytics och som innehåller dina Log Analytics-arbetsytor. I avsnittet Inställningar väljer du Resursprovidrar enligt följande bild.
Sök efter microsoft.insights under Resursprovidrar. Välj sedan Registrera.
Ställa in behörigheter
Kontrollera att användaren som konfigurerar Log Analytics-integreringen har Rollen Log Analytics-deltagare för Log Analytics-arbetsytan. När du väljer Åtkomstkontroll (IAM) för prenumerationen i Azure Portal och sedan väljer Rolltilldelningar från de översta valen i panelen, måste den aktuella användaren se en post: Log Analytics-deltagare för den användare som konfigurerar Log Analytics:
När du har slutfört de här stegen är Azure Log Analytics-konfigurationsdelen klar. Nästa avsnitt visar hur du fortsätter och slutför konfigurationen i Power BI-administratörsportalen.
Tillåt loggning på arbetsytenivå från administratörsportalen
En Power BI-administratör måste slutföra följande steg för att aktivera Azure Log Analytics för Power BI Premium-arbetsytor. Med den här inställningen kan Power BI Premium-arbetsyteadministratörer skicka sina arbetsyteloggar till Azure Log Analytics när förutsättningarna har uppfyllts.
I Power BI-administratörsportalen går du till Klientinställningar > Gransknings- och användningsinställningar och expanderar Azure Log Analytics-anslutningar för arbetsyteadministratörer. Om du vill tillåta att arbetsyteadministratörer aktiverar Log Analytics ställer du in skjutreglaget på Aktiverad och anger de säkerhetsgrupper som behövs under Tillämpa på, enligt följande bild.
Konfigurera loggning på en Premium-arbetsyta
I Premium-arbetsytan kan arbetsyteadministratörer aktivera Log Analytics. Om du vill göra det går du till Inställningar enligt följande bild.
I fönstret Inställningar väljer du Azure-anslutningar och expanderar sedan Log Analytics enligt följande bild.
Välj Azure-prenumerationen, resursgruppen och sedan Log Analytics-arbetsytan som konfigurerades i föregående avsnitt. Välja sedan Spara. När det har slutförts bör det expanderade log analytics-avsnittet på klientorganisationsnivå se ut ungefär som i följande bild.
Koppla från Azure Log Analytics
Du kan koppla från Azure Log Analytics för att sluta skicka loggar till Azure. Om du vill koppla från går du till Log Analytics-inställningarna i Power BI-arbetsyteinställningarna. Välj Koppla från Azure. Välj sedan Spara för att koppla från.
Kommentar
När du kopplar från en Power BI-arbetsyta från Azure Log Analytics tas inte loggar bort. Dina data finns kvar och följer de lagrings- och kvarhållningsprinciper som du anger där.
Användningsscenarier
Det finns många sätt som Azure Log Analytics och Power BI kan hjälpa dig att lösa verkliga utmaningar för din organisation. Tänk också på följande:
- Identifiera perioder med hög eller ovanlig Analysis Services-motoraktivitet efter kapacitet, arbetsyta, rapport eller användare.
- Analysera frågeprestanda och trender, inklusive externa DirectQuery-åtgärder.
- Analysera varaktigheten för semantisk modelluppdatering, överlappningar och bearbetningssteg.
- Analysera anpassade åtgärder som skickas med hjälp av Premium XMLA-slutpunkten.
Skicka feedback till oss i Power BI Community om hur du använder loggning och hur den har hjälpt din organisation.
Feltillstånd och lösningar
Följande tabell innehåller en samling vanliga fel, händelser eller konfigurationer som utlöste dem och föreslagna lösningar.
Utlösarvillkor | Typ | Meddelande |
---|---|---|
Du har inte behörighet att skriva till Log Analytics-arbetsytan | Fel – det går inte att fortsätta | Du behöver skrivbehörigheter på den här Log Analytics-arbetsytan för att ansluta den till Power BI. Kontakta den person i organisationen som hanterar Azure-prenumerationer för att åtgärda problemet. |
Du har inte behörighet att skriva till Log Analytics-arbetsytans konto | Fel – det går inte att fortsätta | Du behöver skrivbehörigheter på den här Log Analytics-arbetsytan för att ansluta den till Power BI. |
Du har inte åtkomst till några Azure-prenumerationer | Fel – det går inte att fortsätta | Du har inte åtkomst till några Azure-prenumerationer. Be den person som hanterar Azure-prenumerationer i din organisation att ge dig deltagaråtkomst eller senare. |
Du har inte åtkomst till några Azure Log Analytics-arbetsytor i den prenumerationen | Fel – det går inte att fortsätta | Du har inte åtkomst till en Azure Log Analytics-arbetsyta. Be den person som hanterar Azure-prenumerationer i din organisation att lägga till dig i Log Analytics-ägar- eller deltagarrollen. |
Log Analytics på arbetsytenivå har inaktiverats när du försöker ansluta | Information | Be klientadministratören att ge arbetsyteadministratörer behörighet att ansluta Log Analytics-arbetsytor. |
Log Analytics på arbetsytenivå har inaktiverats när du försöker koppla från | Information | Klientadministratören har återkallat behörigheten för arbetsyteadministratörer att ansluta sina egna Azure Log Analytics-arbetsytor. Om du kopplar från kan du inte ansluta till en annan. |
Händelser och schema
När du har aktiverat Azure Log Analytics börjar den logga följande händelsekategorier. Mer information om dessa händelser finns i Analysis Services Trace Events (Analysis Services-spårningshändelser).
- AggregateTableRewriteQuery
- Command
- Dödläge
- DirectQuery
- Identifiera
- Fel
- ProgressReport
- Fråga
- Initiera session
- VertiPaqSEQuery
- Meddelande
I följande tabell beskrivs schemat.
Property | Befintlig Azure Analysis Services-egenskap | beskrivning |
---|---|---|
TimeGenerated | Tidsstämpeln (UTC) för när loggen genererades. | |
OperationName | EventClass_s | Analysis Services-spårningshändelsen som är associerad med loggposten. Mer information om möjliga händelser för varje kategori finns på dokumentationssidan för AS Trace Events. |
CorrelationId | ID:t för korrelerade händelser. Kan användas för att identifiera korrelerade händelser mellan flera tabeller. | |
PowerBIWorkspaceId | Unik identifierare för arbetsytan som innehåller artefakten som körs på. | |
PremiumCapacityId | Unik identifierare för Premium-kapaciteten som är värd för artefakten som körs på. | |
ApplicationContext | ApplicationContext_s | Egenskapsväska med unika identifierare som ger information om programmet som kör begäran. till exempel rapport-ID. |
ApplicationName | ApplicationName_s | Innehåller namnet på klientprogrammet som skapade anslutningen till servern. Den här kolumnen fylls i med de värden som skickas av programmet i stället för programmets visade namn. |
ArtifactId | Unik identifierare för resursen som loggar data. | |
ArtifactKind | Typ av artefaktloggning av åtgärden, till exempel semantisk modell. | |
CpuTimeMs | CPUTime_s | Mängden CPU-tid (i millisekunder) som används av händelsen. |
ArtifactName | DatabaseName_s | Namnet på Power BI-artefakten som loggar den här åtgärden. |
LogAnalyticsCategory | Unik | Analysis Services-spårningshändelsekategorin som är associerad med loggposten. Mer information om möjliga händelsekategorier finns på dokumentationssidan för AS Trace Events. |
DatasetMode | Läget för den semantiska modellen. Import, DirectQuery eller Sammansatt. | |
Varaktigheter | Duration_s | Hur lång tid åtgärden tar (i millisekunder). |
Användare | User_s | Användaren som är associerad med körningsåtgärden. Används när en slutanvändares identitet måste personifieras på servern. |
KörAnvändare | EffectiveUsername_s | Användaren som kör åtgärden. |
OperationDetailName | EventSubclass_s | Mer information om Analysis Services-spårningshändelsen som är associerad med loggposten. Mer information om möjliga värden finns i underklassegenskapen för dokumentationssidan för spårningshändelser, till exempel Kommandot Börja. |
XmlaObjectPath | ObjectPath_s | Objektsökväg. En kommaavgränsad lista över överordnade objekt som börjar med objektets överordnade. |
PowerBIWorkspaceName | Namnet på Den Power BI-arbetsyta som innehåller artefakten. | |
StatusKod | Error_s | Statuskod för åtgärden. Den omfattar framgång och misslyckande. |
ProgressCounter | ProgressTotal_s | Förloppsräknare. |
XmlaEgenskaper | RequestProperties_s | Egenskaper för XMLA-begäran. |
XmlaSessionId | SPID_s | Analysis Services-sessionsidentifierare. |
Nivå | Severity_s | Innehåller allvarlighetsgraden för den åtgärd som loggas. Success, Informational, Warning eller Error. |
Identitet | Information om användare och anspråk. | |
Status | Status för åtgärden. | |
EventText | TextData_s | Innehåller utförlig information som är associerad med åtgärden, till exempel DAX-fråga. |
CustomerTenantId | Kundens Power BI-klientidentifierare. | |
XmlaRequestId | RootActivityId_g | Unik identifierare för begäran. |
ReplicaId | Replikidentifierare som gör att du kan identifiera repliken när QSO (Query Scale Out) är aktiverat. Skrivskyddad replik har alltid ReplicaId='AAA' och skrivskyddade repliker har ReplicaId från och med AAB. För icke-QSO-aktiverade semantiska modeller är ReplicaId alltid "AAA" |
ExecutionMetrics-händelse
För varje begäran om identifiering, kommando och fråga skapas en händelse med namnet ExecutionMetrics i slutet av begäran. Den här händelsen innehåller körningsmått för begäran, vilket kan hjälpa dig att diagnostisera och felsöka mer effektivt. ExecutionMetrics-spårningen är korrelerad med närmaste [Discover|Kommando|Fråga]Avsluta händelse.
Följande KQL-fråga hämtar ExecutionMetrics-händelserna för alla uppdateringsåtgärder för en semantisk modell under den senaste dagen:
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
Följande KQL-fråga hämtar händelser som begränsades den senaste dagen av arbetsyta, objekt och användare:
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
Statistiken visas som en JSON-text i egenskapen EventText , se följande exempel.
{
"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
}
I följande tabell beskrivs alla möjliga egenskaper. Alla egenskaper genereras inte i varje händelse, eftersom innehållet beror på begäran och semantikmodellen.
Property | beskrivning |
---|---|
timeStart | Tidsstämpeln (UTC) för när begäran startades. |
timeEnd | Tidsstämpeln (UTC) för när begäran avslutades. |
durationMs | Total varaktighet för körningen. |
datasourceConnectionThrottleTimeMs | Total begränsningstid efter att ha nått gränsen för datakällans anslutning. Läs mer om maximala samtidiga anslutningar här. |
externalQueryExecutionTimeMs | Total tid som lagts på att köra alla externa datakällafrågor under begäran. |
directQueryConnectionTimeMs | Total tid för att skapa en ny DirectQuery-anslutning under begäran |
directQueryIterationTimeMs | Total tid för iterering av resultaten som returneras av DirectQuery-frågorna. |
directQueryTotalTimeMs | Total tid för att köra och läsa alla DirectQuery-frågor under begäran. |
executionDelayMs | Total tid som lagts på att vänta på analysis services-motorns trådpoolstillgänglighet. |
totalCpuTimeMs | Total CPU-tid för begäran. |
vertipaqJobCpuTimeMs | Total CPU-tid som används av Vertipaq-motorn. |
mEngineCpuTimeMs | Total CPU-tid som förbrukas av PowerQuery-motorn. |
queryProcessingCpuTimeMs | Total CPU-tid som lagts på aktiviteter i Analysis Services-trådtrådstråd för frågetrådar. |
approxPeakMemoryConsumptionKB | Ungefärlig maximal total minnesförbrukning under begäran. |
mEnginePeakMemoryKB | Ungefärlig maximal minnesincheckningsstorlek (i kilobyte) för alla PowerQuery-motorkombinationscontainrar. |
directQueryTimeoutMs | Tidsgräns som är associerad med DirectQuery-frågor. |
externalQueryTimeoutMs | Tidsgräns som är associerad med frågor till externa datakällor. |
tabularConnectionTimeoutMs | Tidsgräns som är associerad med externa anslutningar till tabelldatakällor (e.g. SQL). |
refreshParallelism | Effektiv MaxParallelism som används i begäran. |
vertipaqTotalRows | Totalt antal rader som bearbetas av Vertipaq-motorn under en uppdateringsåtgärd. |
queryResultRows | Totalt antal rader som returneras som ett resultat av DAX-frågan. |
directQueryTotalRows | Totalt antal rader som lästs från de olika DirectQuery-frågorna. |
directQueryRequestCount | Totalt antal DirectQuery-lagringsmotorfrågor som körs av DAX-motorn. |
errorCount | Totalt antal fel för den aktuella begäran. |
qsoReplicaVersion | Replikversion för QSO-aktiverade semantiska modeller, som representeras i FILETIME-format . |
intendedUsage | Avsedd användning: Standard (0); Schemalagd uppdatering eller API-uppdatering (1); Uppdatering på begäran (2); Panel på instrumentpanelen/Uppdatering av frågecache (3) |
commandType | Typ av Analysis Services-kommando som begärs av klienten (t.ex. Batch, Statement, Backup,...) |
discoverType | Typ av identifiering som begärs av klienten. Se EventSubclass för en lista över identifieringstyper. |
queryDialect | Typ av dialektklient har använt för att fråga servern: Okänd (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4) |
capacityThrottlingMs | Total tid då begäran försenades på grund av kapacitetsbegränsning. Läs mer om begränsning här. |
- Alla varaktigheter och CPU-tider visas i millisekunder.
- Ytterligare egenskaper utöver de som beskrivs i tabellen ovan kan påträffas och dessa bör betraktas som odokumenterade och kan komma att ändras.
Exempel på KQL-frågor för Log Analytics
Följande samling exempelfrågor kan vara till hjälp när du använder Azure Log Analytics med Power BI. De kan köras direkt i Azure Portal eller via API:er för att köra frågor mot de senaste data, vanligtvis cirka 5–10 minuter gamla.
// 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
Exempel på Power BI-rapportmall
Utforska och få insikter om Azure Log Analytics Power BI-data med hjälp av en Power BI-rapportmall med öppen källkod på GitHub.
Relaterat innehåll
Följande artiklar kan hjälpa dig att lära dig mer om Power BI och dess integrering med Azure Log Analytics.