Azure Log Analytics configureren voor Power BI
Power BI integreert met Azure Log Analytics om beheerders en Premium-werkruimte-eigenaren in staat te stellen een Log Analytics-verbinding met hun Power BI-abonnement te configureren. In dit artikel wordt beschreven hoe de integratie tussen Log Analytics en Power BI werkt en hoe u deze configureert voor uw omgeving.
Er zijn twee elementen om Azure Log Analytics te laten werken voor Power BI:
- Configureer uw Azure-abonnement in Azure Portal.
- Schakel Log Analytics in voor Power BI in de Power BI-beheerportal.
In de volgende secties doorloopt u de stappen om beide uit te voeren.
Vereisten
Voordat u Log Analytics-integratie vanuit Power BI kunt configureren, moet u een Log Analytics-werkruimte maken in Azure Portal. U moet ook toestemming geven in Azure voor de Power BI-service om logboeken te schrijven. De exacte vereisten zijn:
- Inzendertoegang tot Azure-abonnement.
- Registreer de resourceprovider microsoft.insights in het Azure-abonnement waar u Power BI-logboekgegevens verzamelt.
- De gebruiker die Log Analytics-integratie in Power BI instelt, moet de rol Log Analytics-inzender hebben voor de Log Analytics-werkruimte. Zie de veelgestelde vragen voor tijdelijke oplossingen als de rol Eigenaar niet kan worden opgegeven.
De resourceprovider microsoft.insights inschakelen
Log Analytics vereist dat de resourceprovider microsoft.insights is ingeschakeld op azure-abonnementsniveau. Met de volgende stappen doorloopt u het proces.
Meld u aan bij Azure Portal, selecteer het abonnement dat u wilt gebruiken met Log Analytics en die uw Log Analytics-werkruimten bevat. Selecteer resourceproviders in de sectie Instellingen, zoals wordt weergegeven in de volgende afbeelding.
Zoek naar microsoft.insights onder Resourceproviders. Selecteer vervolgens Registreren.
Machtigingen instellen
Zorg ervoor dat de gebruiker die Log Analytics-integratie configureert, de rol Log Analytics-inzender heeft van de Log Analytics-werkruimte. Wanneer u Toegangsbeheer (IAM) selecteert voor het abonnement in Azure Portal en vervolgens roltoewijzingen selecteert in de bovenste selecties in het deelvenster, moet de huidige gebruiker één vermelding zien: Log Analytics-inzender voor de gebruiker die Log Analytics configureert:
Nadat u deze stappen hebt voltooid, is het configuratiegedeelte van Azure Log Analytics voltooid. In de volgende sectie ziet u hoe u de configuratie kunt voortzetten en voltooien in de Power BI-beheerportal.
Logboekregistratie op werkruimteniveau vanuit de beheerportal toestaan
Een Power BI-beheerder moet de volgende stap uitvoeren om Azure Log Analytics voor Power BI Premium-werkruimten in te schakelen. Met deze instelling kunnen Power BI Premium-werkruimtebeheerders hun werkruimtelogboeken verzenden naar Azure Log Analytics wanneer aan de vereisten is voldaan.
Ga in de Power BI-beheerportal naar Tenantinstellingen > controleren en gebruiksinstellingen en vouw Azure Log Analytics-verbindingen uit voor werkruimtebeheerders. Als u wilt toestaan dat werkruimtebeheerders Log Analytics inschakelen, stelt u de schuifregelaar in op Ingeschakeld en geeft u de benodigde beveiligingsgroepen op onder Toepassen op, zoals wordt weergegeven in de volgende afbeelding.
Logboekregistratie configureren in een Premium-werkruimte
In de Premium-werkruimte kunnen werkruimtebeheerders Log Analytics inschakelen. Hiervoor gaat u naar Instellingen , zoals wordt weergegeven in de volgende afbeelding.
Selecteer Azure-verbindingen in het deelvenster Instellingen en vouw Log Analytics uit, zoals wordt weergegeven in de volgende afbeelding.
Selecteer het Azure-abonnement, de resourcegroep en vervolgens de Log Analytics-werkruimte die in de vorige sectie is geconfigureerd. Kies vervolgens Opslaan. Wanneer dit is voltooid, moet de uitgevouwen log analytics-sectie op tenantniveau er ongeveer uitzien als in de volgende afbeelding.
Verbinding verbreken met Azure Log Analytics
U kunt de verbinding met Azure Log Analytics verbreken om te stoppen met het verzenden van logboeken naar Azure. Als u de verbinding wilt verbreken, gaat u in de Instellingen van de Power BI-werkruimte naar de Log Analytics-instellingen . Selecteer Verbinding verbreken vanuit Azure. Kies Vervolgens Opslaan om de verbinding te verbreken.
Notitie
Wanneer u een Power BI-werkruimte loskoppelt van Azure Log Analytics, worden logboeken niet verwijderd. Uw gegevens blijven en volgen het opslag- en bewaarbeleid dat u daar hebt ingesteld.
Gebruiksscenario's
Er zijn veel manieren waarop Azure Log Analytics en Power BI u kunnen helpen bij het oplossen van echte uitdagingen voor uw organisatie. Overweeg de volgende:
- Identificeer perioden met een hoge of ongebruikelijke Analysis Services-engineactiviteit op basis van capaciteit, werkruimte, rapport of gebruiker.
- Analyseer queryprestaties en trends, waaronder externe DirectQuery-bewerkingen.
- Analyseer de vernieuwingsduur van het semantische model, overlapt en verwerkingsstappen.
- Analyseer aangepaste bewerkingen die worden verzonden met behulp van het Premium XMLA-eindpunt.
Stuur ons feedback in de Power BI-community voor hoe u logboekregistratie gebruikt en hoe het uw organisatie heeft geholpen.
Foutvoorwaarden en oplossingen
De volgende tabel bevat een verzameling veelvoorkomende fouten, de gebeurtenissen of configuraties die deze hebben geactiveerd en voorgestelde oplossingen.
Triggervoorwaarde | Type | Bericht |
---|---|---|
U bent niet gemachtigd om naar de Log Analytics-werkruimte te schrijven | Fout: kan niet doorgaan | U hebt schrijfmachtigingen nodig voor deze Log Analytics-werkruimte om deze te verbinden met Power BI. Neem contact op met de persoon in uw organisatie die Azure-abonnementen beheert om dit probleem op te lossen. |
U bent niet gemachtigd om naar het Log Analytics-werkruimteaccount te schrijven | Fout: kan niet doorgaan | U hebt schrijfmachtigingen nodig voor deze Log Analytics-werkruimte om deze te verbinden met Power BI. |
U hebt geen toegang tot Azure-abonnementen | Fout: kan niet doorgaan | U hebt geen toegang tot Azure-abonnementen. Vraag de persoon die Azure-abonnementen beheert in uw organisatie om u inzendertoegang of hoger te verlenen. |
U hebt geen toegang tot Azure Log Analytics-werkruimten binnen dat abonnement | Fout: kan niet doorgaan | U hebt geen toegang tot een Azure Log Analytics-werkruimte. Vraag de persoon die Azure-abonnementen beheert in uw organisatie om u toe te voegen aan de rol log analytics-eigenaar of inzender. |
Log Analytics op werkruimteniveau is uitgeschakeld wanneer u verbinding probeert te maken | Gegevens | Vraag uw tenantbeheerder om werkruimtebeheerders toestemming te geven om Verbinding te maken met Log Analytics-werkruimten. |
Log Analytics op werkruimteniveau uitgeschakeld bij het verbreken van de verbinding | Gegevens | Uw tenantbeheerder heeft de machtiging voor werkruimtebeheerders ingetrokken om verbinding te maken met hun eigen Azure Log Analytics-werkruimten. Als u de verbinding verbreekt, kunt u geen verbinding maken met een andere verbinding. |
Gebeurtenissen en schema
Nadat u Azure Log Analytics hebt ingeschakeld, worden de volgende gebeurteniscategorieën vastgelegd. Zie Analysis Services Trace Events voor meer informatie over deze gebeurtenissen.
- AggregateTableRewriteQuery
- Opdracht
- Impasse
- DirectQuery
- Ontdekken
- Error
- Voortgangsrapport
- Query
- Sessie initialiseren
- VertiPaqSEQuery
- Melding
In de volgende tabel wordt het schema beschreven.
Eigenschappen | Bestaande azure Analysis Services-eigenschap | Beschrijving |
---|---|---|
TimeGenerated | De timestamp (UTC) van het moment waarop het logboek werd gegenereerd. | |
OperationName | EventClass_s | De Analysis Services-tracerings gebeurtenis die is gekoppeld aan de logboekrecord. Raadpleeg de documentatiepagina voor AS Trace Events voor meer informatie over mogelijke gebeurtenissen voor elke categorie. |
CorrelationId | De id voor gecorreleerde gebeurtenissen. Kan worden gebruikt om gecorreleerde gebeurtenissen tussen meerdere tabellen te identificeren. | |
PowerBIWorkspaceId | Unieke id van de werkruimte met het artefact waarop het artefact wordt uitgevoerd. | |
PremiumCapacityId | Unieke id van de Premium-capaciteit die als host fungeert voor het artefact waarop het artefact wordt uitgevoerd. | |
ApplicationContext | ApplicationContext_s | Eigenschappenverzameling met unieke id's die details geven over de toepassing die de aanvraag uitvoert. Bijvoorbeeld rapport-id. |
ApplicationName | ApplicationName_s | Bevat de naam van de clienttoepassing die de verbinding met de server heeft gemaakt. Deze kolom wordt gevuld met de waarden die door de toepassing worden doorgegeven in plaats van de weergegeven naam van het programma. |
ArtifactId | De unieke id van de resource die de gegevens in logboekregistratie opgeeft. | |
ArtifactKind | Type artefactregistratie van de bewerking, bijvoorbeeld semantisch model. | |
CpuTimeMs | CPUTime_s | De hoeveelheid CPU-tijd (in milliseconden) die door de gebeurtenis wordt gebruikt. |
ArtifactName | DatabaseName_s | De naam van het Power BI-artefact dat deze bewerking aanmeldt. |
LogAnalyticsCategory | Uniek | De analysis Services-tracerings gebeurteniscategorie die is gekoppeld aan de logboekrecord. Raadpleeg de documentatiepagina voor AS Trace Events voor meer informatie over mogelijke gebeurteniscategorieën. |
DatasetMode | De modus van het semantische model. Importeren, DirectQuery of Samengesteld. | |
DurationMs | Duration_s | De hoeveelheid tijd (in milliseconden) die door de bewerking wordt genomen. |
Gebruiker | User_s | De gebruiker die is gekoppeld aan de actieve bewerking. Wordt gebruikt wanneer een identiteit van een eindgebruiker moet worden geïmiteerd op de server. |
ExecutingUser | EffectiveUsername_s | De gebruiker die de bewerking uitvoert. |
OperationDetailName | EventSubclass_s | Meer informatie over analysis Services-traceringsbeurtenis die is gekoppeld aan de logboekrecord. Raadpleeg de eigenschap Subklasse van de documentatiepagina voor traceringsgebeurtenissen voor meer informatie over mogelijke waarden, bijvoorbeeld Opdracht begin. |
XmlaObjectPath | ObjectPath_s | Objectpad. Een door komma's gescheiden lijst met bovenliggende items, te beginnen met het bovenliggende object. |
PowerBIWorkspaceName | Naam van de Power BI-werkruimte die het artefact bevat. | |
StatusCode | Error_s | Statuscode van de bewerking. Het behandelt succes en mislukking. |
ProgressCounter | ProgressTotal_s | Voortgangsteller. |
XmlaProperties | RequestProperties_s | Eigenschappen van de XMLA-aanvraag. |
XmlaSessionId | SPID_s | Analysis Services-sessie-id. |
Niveau | Severity_s | Bevat het ernstniveau van de bewerking die wordt geregistreerd. Geslaagd, informatief, waarschuwing of fout. |
Identiteit | Informatie over gebruikers en claims. | |
-Status | Status van de bewerking. | |
EventText | TextData_s | Bevat uitgebreide informatie die is gekoppeld aan de bewerking, bijvoorbeeld DAX Query. |
CustomerTenantId | De Power BI-tenant-id van de klant. | |
XmlaRequestId | RootActivityId_g | Unieke id van aanvraag. |
ReplicaId | Replica-id waarmee u de replica kunt identificeren wanneer Query Scale Out (QSO) is ingeschakeld. Replica voor lezen/schrijven heeft altijd ReplicaId='AAA' en alleen-lezen replica's hebben ReplicaId vanaf AAB. Voor niet-QSO ingeschakelde semantische modellen is de ReplicaId altijd 'AAA' |
ExecutionMetrics-gebeurtenis
Voor elke detectie-, opdracht - en queryaanvraag wordt aan het einde van de aanvraag een gebeurtenis met de naam ExecutionMetrics geproduceerd. Deze gebeurtenis bevat metrische uitvoeringsgegevens voor de aanvraag, die u kunnen helpen bij het effectiever diagnosticeren en oplossen van problemen. De ExecutionMetrics-tracering is gecorreleerd met de dichtstbijzijnde [Discover|Opdracht |Query]Gebeurtenis beëindigen .
Met de volgende KQL-query worden de ExecutionMetrics-gebeurtenissen opgehaald voor alle vernieuwingsbewerkingen van een Semantisch model in de afgelopen 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
Met de volgende KQL-query worden gebeurtenissen opgehaald die in de afgelopen dag zijn beperkt door werkruimte, item en gebruiker:
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
De statistieken worden weergegeven als een JSON-tekst in de eigenschap EventText . Zie de volgende voorbeelden.
{
"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
}
In de volgende tabel worden alle mogelijke eigenschappen beschreven. Niet elke eigenschap wordt in elke gebeurtenis verzonden, omdat de inhoud afhankelijk is van de aanvraag en het semantische model.
Eigenschappen | Beschrijving |
---|---|
timeStart | De tijdstempel (UTC) van het moment waarop de aanvraag is gestart. |
timeEnd | De tijdstempel (UTC) van het moment waarop de aanvraag is beëindigd. |
durationMs | Totale duur van de uitvoering. |
datasourceConnectionThrottleTimeMs | Totale vertragingstijd nadat de verbindingslimiet voor de gegevensbron is bereikt. Meer informatie over maximum aantal gelijktijdige verbindingen vindt u hier. |
externalQueryExecutionTimeMs | Totale tijd die is besteed aan het uitvoeren van alle externe gegevensbronquery's tijdens de aanvraag. |
directQueryConnectionTimeMs | Totale tijd besteed aan het maken van een nieuwe DirectQuery-verbinding tijdens de aanvraag |
directQueryIterationTimeMs | Totale tijd die is besteed aan het herhalen van de resultaten die worden geretourneerd door de DirectQuery-query's. |
directQueryTotalTimeMs | Totale tijd die is besteed aan het uitvoeren en lezen van alle DirectQuery-query's tijdens de aanvraag. |
executionDelayMs | Totale tijd die is besteed aan het wachten op de beschikbaarheid van thread-threads van Analysis Services-engine. |
totalCpuTimeMs | Totale CPU-tijd van de aanvraag. |
vertipaqJobCpuTimeMs | De totale CPU-tijd die door de Vertipaq-engine is besteed. |
mEngineCpuTimeMs | Totale CPU-tijd die door de PowerQuery-engine is besteed. |
queryProcessingCpuTimeMs | Totale CPU-tijd die is besteed aan taken in threadgroepthreadthreadthreadthreads van Analysis Services. |
approximatePeakMemoryConsumptionKB | Geschatte piek in het totale geheugenverbruik tijdens de aanvraag. |
mEnginePeakMemoryKB | Geschatte maximale doorvoergrootte voor geheugen (in kilobytes) in alle Mashup-containers van de PowerQuery-engine. |
directQueryTimeoutMs | Time-out die is gekoppeld aan DirectQuery-query's. |
externalQueryTimeoutMs | Time-out die is gekoppeld aan query's voor externe gegevensbronnen. |
tabularConnectionTimeoutMs | Time-out die is gekoppeld aan externe gegevensbronverbindingen in tabelvorm (e.g. SQL). |
refreshParallelism | Effectief MaxParallelism dat in de aanvraag wordt gebruikt. |
vertipaqTotalRows | Het totale aantal rijen dat door de Vertipaq-engine wordt verwerkt tijdens een vernieuwingsbewerking. |
queryResultRows | Totaal aantal rijen dat wordt geretourneerd als gevolg van de DAX-query. |
directQueryTotalRows | Totaal aantal rijen dat is gelezen uit de verschillende DirectQuery-query's. |
directQueryRequestCount | Het totale aantal DirectQuery-opslagenginequery's dat door de DAX-engine wordt uitgevoerd. |
errorCount | Totaal aantal fouten voor de huidige aanvraag. |
qsoReplicaVersion | Replicaversie voor semantische modellen met QSO,vertegenwoordigd in FILETIME-indeling . |
beoogdeusage | Bedoeld gebruik: standaard (0); Geplande of API-vernieuwing (1); Vernieuwen op aanvraag (2); Dashboardtegel/Querycache vernieuwen (3) |
commandType | Het type Analysis Services-opdracht dat door de client is aangevraagd (bijvoorbeeld Batch, Instructie, Back-up,...) |
discoverType | Type Discover aangevraagd door de client. Raadpleeg EventSubclass voor een lijst met discover-typen. |
queryDialect | Het type Dialect-client heeft gebruikt om een query uit te voeren op de server: Onbekend (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4) |
capaciteitsbeperkingsm's | Totale tijd dat de aanvraag is vertraagd vanwege capaciteitsbeperking. Meer informatie over beperking vindt u hier. |
- Alle duur en CPU-tijden worden weergegeven in milliseconden.
- Aanvullende eigenschappen dan de eigenschappen die in de bovenstaande tabel worden beschreven, kunnen worden aangetroffen en deze moeten worden beschouwd als niet-gedocumenteerd en kunnen worden gewijzigd.
Voorbeeld van KQL-query's in Log Analytics
De volgende verzameling voorbeeldquery's kan handig zijn wanneer u Azure Log Analytics met Power BI gebruikt. Ze kunnen rechtstreeks worden uitgevoerd in Azure Portal of via API's om een query uit te voeren op de meest recente gegevens, meestal ongeveer 5-10 minuten oud.
// 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
Power BI-voorbeeldrapportsjabloon
Verken en krijg inzichten in Azure Log Analytics Power BI-gegevens met behulp van een opensource Power BI-rapportsjabloon op GitHub.
Gerelateerde inhoud
De volgende artikelen kunnen u helpen meer te weten te komen over Power BI en over de integratie met Azure Log Analytics.