Del via


Konfigurer Azure Log Analytics til Power BI

Power BI integrerer med Azure Log Analytics for at gøre det muligt for administratorer og Ejere af Premium-arbejdsområder at konfigurere en Log Analytics-forbindelse til deres Power BI-abonnement. I denne artikel beskrives det, hvordan integrationen mellem Log Analytics og Power BI fungerer, og hvordan du konfigurerer den til dit miljø.

Der er to elementer til at få Azure Log Analytics til at fungere i Power BI:

  • Konfigurer dit Azure-abonnement i Azure-portal.
  • Aktivér loganalyse for Power BI på Power BI-Administration-portalen.

I følgende afsnit gennemgås trinnene i for at gøre begge dele.

Skærmbillede af fanen Azure-forbindelser, der åbnes i ruden Indstillinger.

Forudsætninger

Før du kan konfigurere Log Analytics-integration fra Power BI, skal du oprette et Log Analytics Workspace i Azure-portal. Du skal også give tilladelse i Azure, for at Power BI-tjeneste kan skrive logge. De nøjagtige krav er:

  • Bidragyderadgang til Azure-abonnement.
  • Registrer ressourceudbyderen 'microsoft.insights' i Azure-abonnementet, hvor du indsamler Power BI-logdata.
  • Den bruger, der konfigurerer Log Analytics-integration i Power BI, skal have rollen Log Analytics Contributor for Log Analytics Workspace. Se Ofte stillede spørgsmål for at få løsninger, hvis rollen Ejer ikke kan angives.

Aktivér ressourceudbyderen 'microsoft.insights'

Log Analytics kræver, at ressourceudbyderen 'microsoft.insights' er aktiveret på Azure-abonnementsniveau. Følgende trin fører dig gennem processen.

  1. Log på Azure-portal, vælg det abonnement, du vil bruge sammen med Log Analytics, og som indeholder dine Log Analytics-arbejdsområder. I afsnittet Indstillinger skal du vælge Ressourceudbydere som vist på følgende billede.

    Skærmbillede af menuindstillingerne for indstillinger, ressourceudbydere er valgt.

  2. Søg efter microsoft.insights under Ressourceudbydere. Vælg derefter Registrer.

    Skærmbillede af ressourceudbydere i hovedruden med Microsoft.insights er registreret.

Angiv tilladelser

  1. Sørg for, at den bruger, der konfigurerer Log Analytics-integration, har rollen Log Analytics Contributor i Log Analytics-arbejdsområdet. Når du vælger Adgangskontrol (IAM) for abonnementet i Azure-portal og derefter vælger Rolletildelinger fra de øverste valg i panelet, skal den aktuelle bruger se én post: Log Analytics Contributor for den bruger, der konfigurerer Log Analytics:

    Skærmbillede af ruden Adgangskontrol med rollen fremhævet.

Når du har fuldført disse trin, er konfigurationsdelen af Azure Log Analytics fuldført. I næste afsnit kan du se, hvordan du fortsætter og fuldfører konfigurationen i Power BI Administration-portalen.

Tillad logføring på arbejdsområdeniveau fra Administration Portal

En Power BI-administrator skal fuldføre følgende trin for at aktivere Azure Log Analytics til Power BI Premium-arbejdsområder. Denne indstilling gør det muligt for administratorer af Power BI Premium-arbejdsområder at sende deres arbejdsområdelogge til Azure Log Analytics, når forudsætningerne er opfyldt.

  1. På Power BI-Administration-portalen skal du gå til Lejer Indstillinger > Indstillinger for overvågning og brug og udvide Azure Log Analytics-forbindelser for arbejdsområdeadministratorer. Hvis du vil tillade arbejdsområdeadministratorer at aktivere Log Analytics, skal du angive skyderen til Aktiveret og angive de nødvendige sikkerhedsgrupper under Anvend på som vist på følgende billede.

    Skærmbillede af lejerindstillinger på Administration-portalen. Azure Log Analytics-forbindelser for administratorer af arbejdsområder er udvidet og aktiveret.

Konfigurer logføring i et Premium-arbejdsområde

  1. I Premium-arbejdsområdet kan administratorer af arbejdsområdet aktivere Log Analytics. Det gør du ved at gå til Indstillinger som vist på følgende billede.

    Skærmbillede af ruden Indstillinger i et Premium-arbejdsområde.

  2. I ruden Indstillinger skal du vælge Azure-forbindelser og derefter udvide Log Analytics som vist på følgende billede.

    Skærmbillede af fanen Azure-forbindelser, der åbnes i ruden Indstillinger, Log Analytics er udvidet.

  3. Vælg Azure-abonnementet, ressourcegruppen og derefter arbejdsområdet Log Analytics, der er konfigureret i det forrige afsnit. Vælg derefter Gem. Når det er fuldført, bør det udvidede loganalyseafsnit på lejerniveau se ud som på følgende billede.

    Skærmbillede af fanen Azure-forbindelser, der åbnes i ruden Indstillinger, der viser eksempeloplysninger.

Afbryd forbindelsen til Azure Log Analytics

Du kan afbryde forbindelsen til Azure Log Analytics for at stoppe med at sende logge til Azure. Hvis du vil afbryde forbindelsen, skal du gå til indstillingerne for Log Analytics i Indstillinger i Power BI-arbejdsområdet. Vælg Afbryd forbindelsen til Azure. Vælg derefter Gem for at afbryde forbindelsen.

Skærmbillede af advarslen om afbrydelse i ruden Indstillinger.

Bemærk

Når du afbryder forbindelsen mellem et Power BI-arbejdsområde og Azure Log Analytics, slettes loggene ikke. Dine data forbliver og følger de lager- og opbevaringspolitikker, du angiver der.

Brugsscenarier

Azure Log Analytics og Power BI kan hjælpe med at løse udfordringer i den virkelige verden for din organisation på mange måder. Overvej følgende:

  • Identificer perioder med høj eller usædvanlig Analysis Services-programaktivitet efter kapacitet, arbejdsområde, rapport eller bruger.
  • Analysér forespørgslens ydeevne og tendenser, herunder eksterne DirectQuery-handlinger.
  • Analysér varighed af opdatering af semantisk model, overlap og behandlingstrin.
  • Analysér brugerdefinerede handlinger, der sendes ved hjælp af Premium XMLA-slutpunktet.

Send os feedback i Power BI-community'et for, hvordan du bruger logføring, og hvordan det har hjulpet din organisation.

Fejltilstande og -løsninger

Følgende tabel indeholder en samling almindelige fejl, de hændelser eller konfigurationer, der udløste dem, og forslag til løsninger.

Udløserbetingelse Skriv Message
Du har ikke tilladelse til at skrive til Log Analytics-arbejdsområdet Fejl - kan ikke fortsætte Du skal have skrivetilladelser til dette Log Analytics-arbejdsområde for at oprette forbindelse til Power BI. Kontakt den person i din organisation, der administrerer Azure-abonnementer, for at løse problemet.
Du har ikke tilladelse til at skrive til log analytics-arbejdsområdekontoen Fejl - kan ikke fortsætte Du skal have skrivetilladelser til dette Log Analytics-arbejdsområde for at oprette forbindelse til Power BI.
Du har ikke adgang til nogen Azure-abonnementer Fejl - kan ikke fortsætte Du har ikke adgang til nogen Azure-abonnementer. Bed den person, der administrerer Azure-abonnementer i din organisation, om at give dig bidragyderadgang eller nyere.
Du har ikke adgang til Azure Log Analytics-arbejdsområder i det pågældende abonnement Fejl - kan ikke fortsætte Du har ikke adgang til et Azure Log Analytics-arbejdsområde. Bed den person, der administrerer Azure-abonnementer i din organisation, om at føje dig til rollen Log Analytics-ejer eller bidragyder.
Loganalyse på arbejdsområdeniveau er deaktiveret, når der forsøges at oprette forbindelse Information Bed din lejeradministrator om at give arbejdsområdeadministratorer tilladelse til at oprette forbindelse til Log Analytics-arbejdsområder.
Loganalyse på arbejdsområdeniveau er deaktiveret, når der forsøges at afbryde forbindelsen Information Din lejeradministrator har tilbagekaldt tilladelsen for arbejdsområdeadministratorer til at oprette forbindelse til deres egne Azure Log Analytics-arbejdsområder. Hvis du afbryder forbindelsen, kan du ikke oprette forbindelse til en anden.

Hændelser og skema

Når du har aktiveret Azure Log Analytics, begynder den at logføre følgende hændelseskategorier. Du kan finde flere oplysninger om disse hændelser under Analysis Services Trace Events.

  • AggregateTableRewriteQuery
  • Command
  • Dødvande
  • DirectQuery
  • Find
  • Error
  • Statusrapport
  • Anmodning
  • Initialiser session
  • VertiPaqSEQuery
  • Meddelelse

I følgende tabel beskrives skemaet.

Egenskab Eksisterende Azure Analysis Services-egenskab Beskrivelse
Tid genereret Tidsstemplet (UTC) for, hvornår loggen blev genereret.
OperationName EventClass_s Den handling, der er knyttet til logposten.
CorrelationId Id'et for korrelerede hændelser. Kan bruges til at identificere korrelerede hændelser mellem flere tabeller.
PowerBIWorkspaceId Entydigt id for det arbejdsområde, der indeholder det artefakt, der arbejdes på.
PremiumCapacityId Entydigt id for den Premium-kapacitet, der er vært for den artefakt, der betjenes.
ApplicationContext ApplicationContext_s Egenskabspose med entydige id'er, der indeholder oplysninger om det program, der udfører anmodningen. for eksempel rapport-id.
ApplicationName ApplicationName_s Indeholder navnet på det klientprogram, der oprettede forbindelsen til serveren. Denne kolonne udfyldes med de værdier, der overføres af programmet, i stedet for programmets viste navn.
ArtifactId Entydigt id for den ressource, der logfører dataene.
ArtifactKind Type af artefakt, der logfører handlingen, f.eks. semantisk model.
CpuTimeMs CPUTime_s Den CPU-tid (i millisekunder), der bruges af hændelsen.
ArtifactName DatabaseName_s Navnet på power BI-artefaktet, der logfører denne handling.
LogAnalyticsCategory Unik Kategori for hændelserne, f.eks. Audit/Security/Request.
DatasetMode Tilstanden for den semantiske model. Importér, DirectQuery eller Sammensat.
Varighedsbeskeder Duration_s Den tid (i millisekunder), som handlingen har taget.
Bruger User_s Den bruger, der er knyttet til den kørende handling. Bruges, når en slutbrugeridentitet skal repræsenteres på serveren.
Udfører bruger EffectiveUsername_s Den bruger, der kører handlingen.
OperationDetailName EventSubclass_s Flere oplysninger om handlingen.
XmlaObjectPath ObjectPath_s Objektsti. En kommasepareret liste over overordnede elementer, der starter med objektets overordnede.
PowerBIWorkspaceName Navnet på det Power BI-arbejdsområde, der indeholder artefaktet.
Statuscode Error_s Statuskoden for handlingen. Det dækker succes og fejl.
Statustæller ProgressTotal_s Statustæller.
XmlaProperties RequestProperties_s Egenskaber for XMLA-anmodningen.
XmlaSessionId SPID_s Analysis Services-sessions-id.
Niveau Severity_s Indeholder alvorsgradsniveauet for den handling, der logføres. Success, Informational, Warning eller Error.
Identitet Oplysninger om bruger og krav.
Status Status for handlingen.
Hændelsestekst TextData_s Indeholder detaljerede oplysninger, der er knyttet til handlingen, f.eks. DAX-forespørgsel.
CustomerTenantId Kundens Power BI-lejer-id.
XmlaRequestId RootActivityId_g Entydigt id for anmodning.
Replicaid Replika-id, der giver dig mulighed for at identificere replikaen, når QSO (Query Scale Out) er aktiveret. Replika med læse-/skriveadgang har altid ReplicaId='AAA', og skrivebeskyttede replikaer har ReplicaId, der starter 'AAB' og fremefter. For semantiske modeller, der ikke er QSO-aktiverede, er ReplicaId altid 'AAA'

ExecutionMetrics-hændelse

For hver Discover-, Command - og Query-anmodning oprettes der en hændelse med navnet ExecutionMetrics i slutningen af anmodningen. Denne hændelse indeholder udførelsesdata for anmodningen, som kan hjælpe dig med at diagnosticere og foretage fejlfinding mere effektivt. Sporingen af ExecutionMetrics er korreleret med den nærmeste [Discover|Kommando|Forespørgsel]Afslut hændelse.

Følgende KQL-forespørgsel henter ExecutionMetrics-hændelserne for alle opdateringshandlinger i en semantisk model den sidste dag:

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ølgende KQL-forespørgsel henter hændelser, der blev begrænset den sidste dag efter arbejdsområde, element og bruger:

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

Statistikken præsenteres som en JSON-tekst i egenskaben EventText i følgende eksempler.

{
    "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ølgende tabel beskrives alle de mulige egenskaber. Det er ikke alle egenskaber, der udsendes i hver hændelse, da indholdet afhænger af anmodningen og den semantiske model.

Egenskab Beskrivelse
timeStart Tidsstemplet (UTC) for, hvornår anmodningen startede.
timeEnd Tidsstemplet (UTC) for, hvornår anmodningen blev afsluttet.
varighedsbeskeder Den samlede varighed af udførelsen.
datakilde Forbind ionThrottleTimeMs Samlet begrænsningstid, efter at du har nået datakildens forbindelsesgrænse. Få mere at vide om maksimalt antal samtidige forbindelser her.
directQuery Forbind ionTimeMs Den samlede tid, der er brugt på at oprette en ny DirectQuery-forbindelse under anmodningen
directQueryIterationTimeMs Den samlede tid, der er brugt på at gentage de resultater, der returneres af DirectQuery-forespørgslerne.
directQueryTotalTimeMs Den samlede tid, der er brugt på at udføre og læse alle DirectQuery-forespørgsler under anmodningen.
executionDelayMs Den samlede tid, der er brugt på at vente på tilgængeligheden af Trådtråde i Analysis Services-programmet.
totalCpuTimeMs Anmodningens samlede CPU-tid.
vertipaqJobCpuTimeMs Samlet CPU-tid brugt af Vertipaq-programmet.
mEngineCpuTimeMs Samlet CPU-tid brugt af PowerQuery-programmet.
queryProcessingCpuTimeMs Samlet CPU-tid brugt af opgaver på Analysis Services-forespørgselstrådgruppetråd.
approximatePeakMemoryConsumptionKB Samlet hukommelsesforbrug for spidsbelastning under anmodningen.
mEnginePeakMemoryKB Omtrentlig størrelse på allokeret spidshukommelse (i kilobyte) på tværs af alle PowerQuery-motor miksbeholdere.
directQueryTimeoutMs Timeout knyttet til DirectQuery-forespørgsler.
externalQueryTimeoutMs Timeout knyttet til forespørgsler til eksterne datakilder.
tabellariske Forbind ionTimeoutMs Timeout knyttet til eksterne datakildeforbindelser i tabelformat (e.g. SQL).
refreshParallelism Effektiv MaxParallelism, der bruges i anmodningen.
vertipaqTotalRows Det samlede antal rækker, der behandles af Vertipaq-programmet under en opdateringshandling.
queryResultRows Det samlede antal rækker, der returneres som et resultat af DAX-forespørgslen.
directQueryTotalRows Det samlede antal rækker, der er læst fra de forskellige DirectQuery-forespørgsler.
directQueryRequestCount Det samlede antal DirectQuery-lagerprogramforespørgsler udført af DAX-programmet.
errorCount Det samlede antal fejl for den aktuelle anmodning.
qsoReplicaVersion Replikaversion for QSO-aktiverede semantiske modeller repræsenteret i FILETIME-format .
intendedUsage Tiltænkt brug: Standard (0); Planlagt opdatering eller API-opdatering (1); Opdatering efter behov (2); Opdatering af dashboardfelt/forespørgselscache (3)
discoverType Type af Find anmodet af klienten. Se EventSubclass for at få en liste over registreringstyper.
queryDialect Dialektklienttypen har brugt til at forespørge serveren: Ukendt (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4)
capacityThrottlingMs Den samlede tid, anmodningen blev forsinket på grund af kapacitetsbegrænsning. Få mere at vide om begrænsning her.
  • Alle varigheder og CPU-tider vises i millisekunder.
  • Der kan opstå yderligere egenskaber ud over dem, der er beskrevet i tabellen ovenfor, og disse bør betragtes som udokumenterede og kan ændres.

KQL-eksempel på loganalyseforespørgsler

Følgende samling af eksempelforespørgsler kan være nyttige, når du bruger Azure Log Analytics med Power BI. De kan køres direkte i Azure-portal eller via API'er for at forespørge de nyeste data, typisk ca. 5-10 minutter gamle.

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

Eksempel på Power BI-rapportskabelon

Udforsk og få indsigt i Azure Log Analytics Power BI-data ved hjælp af en Power BI-rapportskabelon med åben kildekode på GitHub.

Følgende artikler kan hjælpe dig med at få mere at vide om Power BI og om dens integration med Azure Log Analytics.