Share via


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 Beheer-portal.

In de volgende secties doorloopt u de stappen om beide uit te voeren.

Schermopname van het tabblad Azure-verbindingen dat is geopend in het deelvenster Instellingen.

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.

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

    Schermopname van de menuopties voor instellingen, resourceproviders is geselecteerd.

  2. Zoek naar microsoft.insights onder Resourceproviders. Selecteer vervolgens Registreren.

    Schermopname van resourceproviders in het hoofdvenster met Microsoft.insights is geregistreerd.

Machtigingen instellen

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

    Schermopname van het deelvenster Toegangsbeheer met de rol gemarkeerd.

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 Beheer-portal.

Logboekregistratie op werkruimteniveau vanuit de Beheer-portal 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.

  1. Ga in de Power BI Beheer-portal naar Tenant Instellingen > Instellingen voor controle en gebruik 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.

    Schermopname van tenantinstellingen in de Beheer-portal. Azure Log Analytics-verbindingen voor werkruimtebeheerders worden uitgebreid en ingeschakeld.

Logboekregistratie configureren in een Premium-werkruimte

  1. In de Premium-werkruimte kunnen werkruimtebeheerders Log Analytics inschakelen. Hiervoor gaat u naar Instellingen, zoals wordt weergegeven in de volgende afbeelding.

    Schermopname van het deelvenster Instellingen in een Premium-werkruimte.

  2. Selecteer Azure-verbindingen in het deelvenster Instellingen en vouw Log Analytics uit, zoals wordt weergegeven in de volgende afbeelding.

    Schermopname van het tabblad Azure-verbindingen dat is geopend in het deelvenster Instellingen. Log Analytics is uitgevouwen.

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

    Schermopname van het tabblad Azure-verbindingen dat is geopend in het deelvenster Instellingen met voorbeeldinformatie.

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 Power BI-werkruimte Instellingen naar de Log Analytics-instellingen. Selecteer Verbinding verbreken vanuit Azure. Kies Vervolgens Opslaan om de verbinding te verbreken.

Schermopname van de waarschuwing voor de verbinding verbreken in het deelvenster Instellingen.

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 bewerking die is gekoppeld aan de logboekrecord.
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 Categorie van de gebeurtenissen, zoals Controle/Beveiliging/Aanvraag.
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 de bewerking.
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.
datasource Verbinding maken ionThrottleTimeMs Totale vertragingstijd nadat de verbindingslimiet voor de gegevensbron is bereikt. Meer informatie over maximum aantal gelijktijdige verbindingen vindt u hier.
directQuery Verbinding maken ionTimeMs 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.
tabular Verbinding maken ionTimeoutMs 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)
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.

De volgende artikelen kunnen u helpen meer te weten te komen over Power BI en over de integratie met Azure Log Analytics.