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-administrationsportalen.
I følgende afsnit gennemgås trinnene i for at gøre begge dele.
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.
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.
Søg efter microsoft.insights under Ressourceudbydere. Vælg derefter Registrer.
Angiv tilladelser
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:
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 på Power BI-administrationsportalen.
Tillad logføring på arbejdsområdeniveau fra administrationsportalen
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.
På Power BI-administrationsportalen skal du gå til Lejerindstillinger > Overvågning og forbrugsindstillinger og udvide Azure Log Analytics-forbindelser for administratorer af arbejdsområder. 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.
Konfigurer logføring i et Premium-arbejdsområde
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.
I ruden Indstillinger skal du vælge Azure-forbindelser og derefter udvide Log Analytics som vist på følgende billede.
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.
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 for Power BI-arbejdsområde. Vælg Afbryd forbindelsen til Azure. Vælg derefter Gem for at afbryde forbindelsen.
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 Analysis Services-sporingshændelse, der er knyttet til logposten. Se dokumentationssiden for AS Trace Events for at få flere oplysninger om mulige hændelser for hver kategori. |
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 | Den Analysis Services-sporingshændelseskategori, der er knyttet til logposten. Se dokumentationssiden for AS Trace Events for at få flere oplysninger om mulige hændelseskategorier. |
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 | Du kan finde flere oplysninger om den Analysis Services-sporingshændelse, der er knyttet til logposten. Se egenskaben 'Subclass' for siden med dokumentation til sporingshændelser for at få flere oplysninger om mulige værdier, f.eks . Command Begin. |
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. |
datasourceConnectionThrottleTimeMs | Samlet begrænsningstid, efter at du har nået datakildens forbindelsesgrænse. Få mere at vide om maksimalt antal samtidige forbindelser her. |
externalQueryExecutionTimeMs | Den samlede tid, der er brugt på at udføre alle eksterne datakildeforespørgsler under anmodningen. |
directQueryConnectionTimeMs | 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. |
tabularConnectionTimeoutMs | 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) |
commandType | Typen af Analysis Services-kommando, der er anmodet af klienten (f.eks. Batch, Sætning, Sikkerhedskopiering,...) |
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.
Relateret indhold
Følgende artikler kan hjælpe dig med at få mere at vide om Power BI og om dens integration med Azure Log Analytics.