Dela via


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-portalen.
  • 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.

Skärmbild av fliken Azure-anslutningar öppna i inställningsfönstret.

Förutsättningar

Innan du kan konfigurera Log Analytics-integrering från Power BI måste du skapa en Log Analytics-arbetsyta i Azure-portalen. Du måste också ge behörighet i Azure för usluga Power BI att 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.

  1. Logga in på Azure-portalen, 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.

    Skärmbild av menyalternativen inställningar, resursprovidrar har valts.

  2. Sök efter microsoft.insights under Resursprovidrar. Välj sedan Registrera.

    Skärmbild av resursprovidrar i huvudfönstret med Microsoft.insights är registrerad.

Ställa in behörigheter

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

    Skärmbild av fönstret Åtkomstkontroll med rollen markerad.

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.

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

    Skärmbild av klientinställningarna i administratörsportalen. Azure Log Analytics-anslutningar för arbetsyteadministratörer expanderas och aktiveras.

Konfigurera loggning på en Premium-arbetsyta

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

    Skärmbild av inställningsfönstret på en Premium-arbetsyta.

  2. I fönstret Inställningar väljer du Azure-anslutningar och expanderar sedan Log Analytics enligt följande bild.

    Skärmbild av fliken Azure-anslutningar som är öppen i inställningsfönstret, Log Analytics expanderas.

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

    Skärmbild av fliken Azure-anslutningar som öppnas i inställningsfönstret med exempelinformation.

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.

Skärmbild av frånkopplingsvarningen i inställningsfönstret.

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

Följande artiklar kan hjälpa dig att lära dig mer om Power BI och dess integrering med Azure Log Analytics.