Konfigurer Azure Log Analytics for Power BI
Power BI integrerer med Azure Log Analytics for å gjøre det mulig for administratorer og Eiere av Premium-arbeidsområder å konfigurere en Log Analytics-tilkobling til Power BI-abonnementet. Denne artikkelen beskriver hvordan integreringen mellom Log Analytics og Power BI fungerer, og hvordan du konfigurerer den for miljøet ditt.
Det finnes to elementer for å få Azure Log Analytics til å fungere for Power BI:
- Konfigurer Azure-abonnementet i Azure-portalen.
- Aktiver logganalyse for Power BI i administrasjonsportalen for Power BI.
De følgende inndelingene tar deg gjennom trinnene i å gjøre begge deler.
Forutsetning
Før du kan konfigurere Log Analytics-integrering fra Power BI, må du opprette et log analytics-arbeidsområde i Azure-portalen. Du må også gi tillatelse i Azure for Power Bi-tjeneste til å skrive logger. De nøyaktige kravene er:
- Bidragsytertilgang til Azure-abonnement.
- Registrer ressursleverandøren microsoft.insights i Azure-abonnementet der du samler inn Power BI-loggdata.
- Brukeren som konfigurerer Log Analytics-integrasjon i Power BI, må være i rollen Log Analytics Contributor for Log Analytics Workspace. Se vanlige spørsmål om midlertidige løsninger hvis eierrollen ikke kan gis.
Aktiver ressursleverandøren microsoft.insights
Log Analytics krever at ressursleverandøren microsoft.insights er aktivert på Azure-abonnementsnivå. Følgende trinn tar deg gjennom prosessen.
Logg på Azure-portalen, velg abonnementet du vil bruke med Log Analytics, og som inneholder arbeidsområdene for Log Analytics. I Innstillinger-delen velger du Ressursleverandører som vist i illustrasjonen nedenfor.
Søk etter microsoft.insights under Ressursleverandører. Velg deretter Registrer.
Angi tillatelser
Kontroller at brukeren som konfigurerer Log Analytics-integrasjon, har rollen Log Analytics Contributor i Log Analytics-arbeidsområdet. Når du velger Access-kontroll (IAM) for abonnementet i Azure-portalen, og deretter velger Rolletilordninger fra de øverste valgene i panelet, må gjeldende bruker se én oppføring: Log Analytics Contributor for brukeren som konfigurerer Log Analytics:
Når du har fullført disse trinnene, er konfigurasjonsdelen for Azure Log Analytics fullført. Den neste delen viser deg hvordan du fortsetter og fullfører konfigurasjonen i administrasjonsportalen for Power BI.
Tillat logging på arbeidsområdenivå fra administrasjonsportalen
En Power BI-administrator må fullføre følgende trinn for å aktivere Azure Log Analytics for Power BI Premium-arbeidsområder. Med denne innstillingen kan administratorer for Power BI Premium-arbeidsområder sende arbeidsområdeloggene sine til Azure Log Analytics når forutsetningene er oppfylt.
Gå til overvåkings- og bruksinnstillingene for leierinnstillinger > i administrasjonsportalen for Power BI, og utvid Azure Log Analytics-tilkoblinger for administratorer for arbeidsområder. Hvis du vil tillate at administratorer av arbeidsområdet aktiverer Log Analytics, angir du glidebryteren til Aktivert og angir de nødvendige sikkerhetsgruppene under Bruk på, som vist i illustrasjonen nedenfor.
Konfigurere logging i et Premium-arbeidsområde
I Premium-arbeidsområdet kan administratorer for arbeidsområder aktivere Log Analytics. Hvis du vil gjøre dette, går du til Innstillinger som vist på bildet nedenfor.
Velg Azure-tilkoblinger i Innstillinger-ruten, og utvid deretter Log Analytics som vist i bildet nedenfor.
Velg Azure-abonnementet, ressursgruppen, og deretter logganalysearbeidsområdet som er konfigurert i forrige del. Velg deretter Lagre. Når den utvidede log analytics-delen på leiernivå er fullført, skal den se omtrent slik ut.
Koble fra Azure Log Analytics
Du kan koble fra Azure Log Analytics for å slutte å sende logger til Azure. Hvis du vil koble fra, går du til innstillingene for logganalyse i innstillingene for Power BI-arbeidsområdet. Velg Koble fra Azure. Velg deretter Lagre for å koble fra.
Merk
Når du kobler fra et Power BI-arbeidsområde fra Azure Log Analytics, slettes ikke logger. Dataene dine forblir og følger lagrings- og oppbevaringspolicyene du angir der.
Bruksscenarier
Det finnes mange måter Azure Log Analytics og Power BI kan bidra til å løse virkelige utfordringer for organisasjonen. Vurder følgende:
- Identifiser perioder med høy eller uvanlig Analysis Services-motoraktivitet etter kapasitet, arbeidsområde, rapport eller bruker.
- Analyser spørringsytelse og trender, inkludert eksterne DirectQuery-operasjoner.
- Analyser varighet for semantisk modelloppdatering, overlappinger og behandlingstrinn.
- Analyser egendefinerte operasjoner som sendes ved hjelp av Premium XMLA-endepunktet.
Send oss tilbakemelding i Power BI-fellesskap for hvordan du bruker logging og hvordan det har hjulpet organisasjonen.
Feilbetingelser og løsninger
Tabellen nedenfor inneholder en samling vanlige feil, hendelser eller konfigurasjoner som utløste dem, og foreslåtte løsninger.
Utløserbetingelse | Type | Melding |
---|---|---|
Du har ikke tillatelse til å skrive til arbeidsområdet for logganalyse | Feil – kan ikke fortsette | Du trenger skrivetillatelser på dette logganalysearbeidsområdet for å koble det til Power BI. Kontakt personen i organisasjonen som administrerer Azure-abonnementer for å løse dette problemet. |
Du har ikke tillatelse til å skrive til logganalysearbeidsområdekontoen | Feil – kan ikke fortsette | Du trenger skrivetillatelser på dette logganalysearbeidsområdet for å koble det til Power BI. |
Du har ikke tilgang til azure-abonnementer | Feil – kan ikke fortsette | Du har ikke tilgang til azure-abonnementer. Be personen som administrerer Azure-abonnementer i organisasjonen, om å gi deg bidragsytertilgang eller høyere. |
Du har ikke tilgang til azure log analytics-arbeidsområder i dette abonnementet | Feil – kan ikke fortsette | Du har ikke tilgang til et Azure Log Analytics-arbeidsområde. Be personen som administrerer Azure-abonnementer i organisasjonen, om å legge deg til i log analytics-eieren eller bidragsyterrollen. |
Logganalyse på arbeidsområdenivå deaktivert når du prøver å koble til | Informasjon | Be leieradministratoren om å gi administratorer tillatelse til å koble til Arbeidsområder for logganalyse. |
Logganalyse på arbeidsområdenivå deaktivert når du prøver å koble fra | Informasjon | Leieradministratoren opphevet tillatelsen for arbeidsområdeadministratorer til å koble til sine egne Azure Log Analytics-arbeidsområder. Hvis du kobler fra, kan du ikke koble til en annen. |
Hendelser og skjema
Når du har aktivert Azure Log Analytics, begynner den å logge følgende hendelseskategorier. Hvis du vil ha mer informasjon om disse hendelsene, kan du se Sporingshendelser for Analysis Services.
- AggregateTableRewriteQuery
- Command
- Stillstand
- DirectQuery
- Oppdag
- Feil
- Fremdriftsrapport
- Query
- Initialiser økt
- VertiPaqSEQuery
- Varsel
Tabellen nedenfor beskriver skjemaet.
Egenskap | Eksisterende Azure Analysis Services-egenskap | Bekrivelse |
---|---|---|
TimeGenerated | Tidsstempelet (UTC) for når loggen ble generert. | |
OperationName | EventClass_s | Sporingshendelsen for Analysis Services som er knyttet til loggposten. Se dokumentasjonssiden for AS Trace Events for mer informasjon om mulige hendelser for hver kategori. |
Korrelasjons-ID | ID-en for korrelerte hendelser. Kan brukes til å identifisere korrelerte hendelser mellom flere tabeller. | |
PowerBIWorkspaceId | Unik identifikator for arbeidsområdet som inneholder artefakten som betjenes. | |
PremiumCapacityId | Unik identifikator for Premium-kapasiteten som er vert for artefakten som betjenes. | |
ApplicationContext | ApplicationContext_s | Egenskapspose med unike identifikatorer som gir detaljer om programmet som utfører forespørselen. for eksempel rapport-ID. |
ApplicationName | ApplicationName_s | Inneholder navnet på klientprogrammet som opprettet tilkoblingen til serveren. Denne kolonnen fylles ut med verdiene som sendes av programmet i stedet for det viste navnet på programmet. |
Artefakt-ID | Unik identifikator for ressurslogging av dataene. | |
Artefaktkind | Type artefakt som logger operasjonen, for eksempel semantisk modell. | |
CpuTimeMs | CPUTime_s | Mengden CPU-tid (i millisekunder) som brukes av hendelsen. |
Artefaktnavn | DatabaseName_s | Navnet på Power BI-artefaktloggingen for denne operasjonen. |
LogAnalyticsCategory | Unik | Kategorien Analysis Services-sporingshendelse som er knyttet til loggposten. Se dokumentasjonssiden for AS Trace Events for mer informasjon om mulige hendelseskategorier. |
DatasetMode | Modusen for den semantiske modellen. Import, DirectQuery eller Composite. | |
DurationMs | Duration_s | Tiden (i millisekunder) som er tatt av operasjonen. |
Bruker | User_s | Brukeren som er knyttet til operasjonen som kjører. Brukes når en sluttbrukeridentitet må representeres på serveren. |
ExecutingUser | EffectiveUsername_s | Brukeren som kjører operasjonen. |
OperationDetailName | EventSubclass_s | Mer detaljert informasjon om Sporingshendelse for Analysis Services som er knyttet til loggposten. Se underklasseegenskapen for dokumentasjonssiden for sporingshendelsen for mer informasjon om mulige verdier, for eksempel Kommandostart. |
XmlaObjectPath | ObjectPath_s | Objektbane. En kommadelt liste over foreldre, som begynner med objektets overordnede. |
PowerBIWorkspaceName | Navnet på Power BI-arbeidsområdet som inneholder artefakten. | |
Statuskode | Error_s | Statuskode for operasjonen. Den dekker suksess og fiasko. |
ProgressCounter | ProgressTotal_s | Fremdriftsteller. |
XmlaProperties | RequestProperties_s | Egenskaper for XMLA-forespørselen. |
XmlaSessionId | SPID_s | Analysis Services-øktidentifikator. |
Nivå | Severity_s | Inneholder alvorsgraden for operasjonen som loggføres. Vellykket, informasjonsmessig, advarsel eller feil. |
Identitet | Informasjon om bruker og krav. | |
Status | Status for operasjonen. | |
EventText | TextData_s | Inneholder detaljert informasjon som er knyttet til operasjonen, for eksempel DAX Query. |
CustomerTenantId | Kundens Power BI-leieridentifikator. | |
XmlaRequestId | RootActivityId_g | Unik identifikator for forespørsel. |
ReplicaId | Replikaidentifikator som lar deg identifisere replikaen når QSO (Query Scale Out) er aktivert. Skrivebeskyttet replika har alltid ReplicaId='AAA' og skrivebeskyttede replikaer har ReplicaId som starter 'AAB' og fremover. For semantiske modeller som ikke er QSO-aktiverte, er ReplicaId alltid AAA |
ExecutionMetrics-hendelse
For hver discover-, kommando- og spørringsforespørsel produseres en hendelse kalt ExecutionMetrics på slutten av forespørselen. Denne hendelsen inneholder kjøringsmåledata for forespørselen, som kan hjelpe deg med å diagnostisere og feilsøke mer effektivt. ExecutionMetrics-sporingen er korrelert med nærmeste [Discover|Kommando|Spørring]Avslutt hendelse.
Følgende KQL-spørring henter ExecutionMetrics-hendelsene for alle oppdateringsoperasjoner for en semantisk modell den siste 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ølgende KQL-spørring henter hendelser som ble begrenset den siste dagen etter arbeidsområde, element og bruker:
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 presenteres som en JSON-tekst i EventText-egenskapen , se 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
}
Tabellen nedenfor beskriver alle mulige egenskaper. Ikke alle egenskaper sendes ut i hver hendelse, da innholdet avhenger av forespørselen og den semantiske modellen.
Egenskap | Bekrivelse |
---|---|
timeStart | Tidsstempelet (UTC) for når forespørselen startet. |
timeEnd | Tidsstempelet (UTC) for når forespørselen ble avsluttet. |
durationMs | Total varighet for kjøringen. |
datakildenConnectionThrottleTimeMs | Total begrensningstid etter å ha nådd tilkoblingsgrensen for datakilden. Mer informasjon om maksimalt antall samtidige tilkoblinger her. |
externalQueryExecutionTimeMs | Total tid brukt på å utføre alle eksterne datakildespørringer under forespørselen. |
directQueryConnectionTimeMs | Total tid brukt på å opprette ny DirectQuery-tilkobling under forespørselen |
directQueryIterationTimeMs | Total tid brukt på gjentakelse av resultatene som returneres av DirectQuery-spørringene. |
directQueryTotalTimeMs | Total tid brukt på å kjøre og lese alle DirectQuery-spørringer under forespørselen. |
executionDelayMs | Total tid brukt på å vente på tilgjengelighet for Analysis Services-motorens trådutvalgstråd. |
totalCpuTimeMs | Total CPU-tid for forespørselen. |
vertipaqJobCpuTimeMs | Total CPU-tid brukt av Vertipaq-motoren. |
mEngineCpuTimeMs | Total CPU-tid brukt av PowerQuery-motoren. |
queryProcessingCpuTimeMs | Total CPU-tid brukt av oppgaver på Analysis Services spørringstrådutvalgstråd. |
approximatePeakMemoryConsumptionKB | Omtrentlig maksimalt minneforbruk under forespørselen. |
mEnginePeakMemoryKB | Omtrentlig maksimal minnestørrelse (i kilobyte) på tvers av alle PowerQuery-motor-mashup-beholdere. |
directQueryTimeoutMs | Tidsavbrudd knyttet til DirectQuery-spørringer. |
externalQueryTimeoutMs | Tidsavbrudd knyttet til spørringer til eksterne datakilder. |
tabularConnectionTimeoutMs | Tidsavbrudd knyttet til eksterne datakildetilkoblinger (e.g. SQL). |
refreshParallelism | Effektiv MaxParallelism som brukes i forespørselen. |
vertipaqTotalRows | Totalt antall rader behandlet av Vertipaq-motoren under en oppdateringsoperasjon. |
queryResultRows | Totalt antall rader som returneres som et resultat av DAX-spørringen. |
directQueryTotalRows | Totalt antall rader som leses fra de ulike DirectQuery-spørringene. |
directQueryRequestCount | Totalt antall DirectQuery-lagringsmotorspørringer utført av DAX-motoren. |
errorCount | Totalt antall feil for gjeldende forespørsel. |
qsoReplicaVersion | Replikaversjon for QSO-aktiverte semantiske modeller, representert i FILETIME-format . |
intendedUsage | Tiltenkt bruk: Standard (0); Planlagt oppdatering eller API-oppdatering (1); Oppdatering ved behov (2); Oppdatering av buffer for instrumentbordflis/spørringsbuffer (3) |
commandType | Type Analysis Services-kommando forespurt av klienten (f.eks. bunke, setning, sikkerhetskopiering,...) |
discoverType | Type Discover forespurt av klienten. Se EventSubclass for liste over oppdagingstyper. |
queryDialect | Type dialektklient har brukt til å spørre serveren: Ukjent (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4) |
capacityThrottlingMs | Total tid forespørselen ble forsinket på grunn av kapasitetsbegrensning. Mer informasjon om begrensning her. |
- Alle varigheter og prosessortider presenteres i millisekunder.
- Det kan oppstå flere egenskaper utover de som er beskrevet i tabellen ovenfor, og disse bør betraktes som udokumenterte og kan endres.
KQL-spørringer for eksempellogganalyse
Følgende samling av eksempelspørringer kan være nyttig når du bruker Azure Log Analytics med Power BI. De kan kjøres direkte i Azure-portalen eller via API-er for å spørre de nyeste dataene, vanligvis omtrent 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å rapportmal for Power BI
Utforsk og få innsikt i Azure Log Analytics Power BI-data ved hjelp av en åpen kildekode-rapportmal for Power BI på GitHub.
Relatert innhold
Følgende artikler kan hjelpe deg med å lære mer om Power BI og integreringen med Azure Log Analytics.