Konfigurowanie usługi Azure Log Analytics dla usługi Power BI

Usługa Power BI integruje się z usługą Azure Log Analytics, aby umożliwić administratorom i właścicielom obszarów roboczych Premium skonfigurowanie połączenia usługi Log Analytics z subskrypcją usługi Power BI. W tym artykule opisano sposób działania integracji usługi Log Analytics z usługą Power BI oraz sposobu konfigurowania jej dla danego środowiska.

Istnieją dwa elementy umożliwiające rozpoczęcie pracy usługi Azure Log Analytics dla usługi Power BI:

  • Skonfiguruj subskrypcję platformy Azure w witrynie Azure Portal.
  • Włącz usługę Log Analytics dla usługi Power BI w portalu administracyjnym usługi Power BI.

W poniższych sekcjach wykonasz kroki opisane w temacie , aby wykonać oba te czynności.

Zrzut ekranu przedstawiający kartę Połączenia platformy Azure otwartą w okienku ustawień.

Wymagania wstępne

Przed skonfigurowaniem integracji usługi Log Analytics z usługi Power BI należy utworzyć obszar roboczy usługi Log Analytics w witrynie Azure Portal. Musisz również udzielić uprawnień na platformie Azure, aby usługa Power BI zapisywać dzienniki. Dokładne wymagania są następujące:

  • Dostęp współautora do subskrypcji platformy Azure.
  • Zarejestruj dostawcę zasobów "microsoft.insights" w subskrypcji platformy Azure, w której będziesz zbierać dane dziennika usługi Power BI.
  • Użytkownik, który konfiguruje integrację usługi Log Analytics w usłudze Power BI, musi należeć do roli Współautor usługi Log Analytics dla obszaru roboczego usługi Log Analytics. Zobacz Często zadawane pytania, aby uzyskać obejścia, jeśli nie można podać roli właściciela.

Włączanie dostawcy zasobów "microsoft.insights"

Usługa Log Analytics wymaga dostawcy zasobów "microsoft.insights" włączonego na poziomie subskrypcji platformy Azure. Poniższe kroki umożliwiają wykonanie tego procesu.

  1. Zaloguj się do witryny Azure Portal, wybierz subskrypcję, której chcesz używać z usługą Log Analytics i która zawiera obszary robocze usługi Log Analytics. W sekcji Ustawienia wybierz pozycję Dostawcy zasobów, jak pokazano na poniższej ilustracji.

    Zrzut ekranu przedstawiający opcje menu ustawień i wybrano dostawców zasobów.

  2. Wyszukaj ciąg microsoft.insights w obszarze Dostawcy zasobów. Następnie wybierz pozycję Zarejestruj.

    Zrzut ekranu przedstawiający dostawców zasobów w okienku głównym z zarejestrowaną usługą Microsoft.insights.

Ustawianie uprawnień

  1. Upewnij się, że użytkownik konfigurujący integrację usługi Log Analytics ma rolę Współautor usługi Log Analytics w obszarze roboczym usługi Log Analytics. Po wybraniu pozycji Kontrola dostępu (Zarządzanie dostępem i tożsamościami) dla subskrypcji w witrynie Azure Portal, a następnie wybraniu pozycji Przypisania ról z górnej części panelu bieżący użytkownik musi zobaczyć jeden wpis: Współautor usługi Log Analytics dla użytkownika, który konfiguruje usługę Log Analytics:

    Zrzut ekranu przedstawiający okienko Kontrola dostępu z wyróżnioną rolą.

Po wykonaniu tych kroków część konfiguracji usługi Azure Log Analytics zostanie ukończona. W następnej sekcji pokazano, jak kontynuować i ukończyć konfigurację w portalu administracyjnym usługi Power BI.

Zezwalaj na rejestrowanie na poziomie obszaru roboczego z poziomu portalu administracyjnego

Administrator usługi Power BI musi wykonać następujący krok, aby włączyć usługę Azure Log Analytics dla obszarów roboczych usługi Power BI Premium. To ustawienie umożliwia administratorom obszarów roboczych usługi Power BI Premium wysyłanie dzienników obszarów roboczych do usługi Azure Log Analytics po spełnieniu wymagań wstępnych.

  1. W portalu administracyjnym usługi Power BI przejdź do pozycji Ustawienia > dzierżawy Inspekcja i ustawienia użycia, a następnie rozwiń węzeł Połączenia usługi Azure Log Analytics dla administratorów obszaru roboczego. Aby zezwolić administratorom obszaru roboczego na włączanie usługi Log Analytics, ustaw suwak na Włączone i określ wymagane grupy zabezpieczeń w obszarze Zastosuj do, jak pokazano na poniższej ilustracji.

    Zrzut ekranu przedstawiający ustawienia dzierżawy w portalu administracyjnym. Połączenia usługi Azure Log Analytics dla administratorów obszarów roboczych są rozszerzane i włączone.

Konfigurowanie rejestrowania w obszarze roboczym Premium

  1. W obszarze roboczym Premium administratorzy obszaru roboczego mogą włączyć usługę Log Analytics. W tym celu przejdź do pozycji Ustawienia , jak pokazano na poniższej ilustracji.

    Zrzut ekranu przedstawiający okienko ustawień w obszarze roboczym Premium.

  2. W okienku Ustawienia wybierz pozycję Połączenia platformy Azure, a następnie rozwiń węzeł Log Analytics , jak pokazano na poniższej ilustracji.

    Zrzut ekranu przedstawiający kartę Połączenia platformy Azure otwartą w okienku ustawień, która została rozwinięta.

  3. Wybierz subskrypcję platformy Azure, grupę zasobów, a następnie obszar roboczy usługi Log Analytics skonfigurowany w poprzedniej sekcji. Następnie wybierz polecenie Zapisz. Po pomyślnym zakończeniu rozszerzona sekcja Log Analytics na poziomie dzierżawy powinna wyglądać podobnie do poniższej ilustracji.

    Zrzut ekranu przedstawiający kartę Połączenia platformy Azure otwartą w okienku ustawień z przykładowymi informacjami.

Odłączanie usługi Azure Log Analytics

Możesz odłączyć się od usługi Azure Log Analytics, aby zatrzymać wysyłanie dzienników na platformę Azure. Aby rozłączyć się, w obszarze Ustawienia obszaru roboczego usługi Power BI przejdź do ustawień usługi Log Analytics . Wybierz pozycję Rozłącz z platformą Azure. Następnie wybierz pozycję Zapisz , aby rozłączyć.

Zrzut ekranu przedstawiający ostrzeżenie o rozłączeniu w okienku ustawień.

Uwaga

Po rozłączeniu obszaru roboczego usługi Power BI z usługi Azure Log Analytics dzienniki nie zostaną usunięte. Dane pozostają i są zgodne z ustawionymi tam zasadami przechowywania i przechowywania.

Scenariusze użycia

Istnieje wiele sposobów, na które usługi Azure Log Analytics i Power BI mogą pomóc w rozwiązywaniu rzeczywistych wyzwań dla organizacji. Rozważ następujące źródła:

  • Identyfikowanie okresów dużego lub nietypowego działania aparatu usług Analysis Services według pojemności, obszaru roboczego, raportu lub użytkownika.
  • Analizowanie wydajności zapytań i trendów, w tym zewnętrznych operacji DirectQuery.
  • Analizowanie czasu trwania odświeżania modelu semantycznego, nakładania się i kroków przetwarzania.
  • Analizowanie operacji niestandardowych wysyłanych przy użyciu punktu końcowego XMLA w warstwie Premium.

Wyślij nam opinię w Społeczność usługi Power BI, aby dowiedzieć się, jak używasz rejestrowania i jak pomógł Twojej organizacji.

Warunki i rozwiązania błędów

Poniższa tabela zawiera kolekcję typowych błędów, zdarzeń lub konfiguracji, które je wyzwoliły, i sugerowanych rozwiązań.

Warunek wyzwalacza Type Wiadomość
Nie masz uprawnień do zapisu w obszarze roboczym usługi Log Analytics Błąd — nie można kontynuować Aby połączyć go z usługą Power BI, musisz mieć uprawnienia do zapisu w tym obszarze roboczym usługi Log Analytics. Skontaktuj się z osobą w organizacji, która zarządza subskrypcjami platformy Azure, aby rozwiązać ten problem.
Nie masz uprawnień do zapisu na koncie obszaru roboczego usługi Log Analytics Błąd — nie można kontynuować Aby połączyć go z usługą Power BI, musisz mieć uprawnienia do zapisu w tym obszarze roboczym usługi Log Analytics.
Nie masz dostępu do żadnych subskrypcji platformy Azure Błąd — nie można kontynuować Nie masz dostępu do żadnych subskrypcji platformy Azure. Poproś osobę, która zarządza subskrypcjami platformy Azure w organizacji, aby udzielić Ci dostępu współautora lub wyższego poziomu.
Nie masz dostępu do żadnych obszarów roboczych usługi Azure Log Analytics w ramach tej subskrypcji Błąd — nie można kontynuować Nie masz dostępu do obszaru roboczego usługi Azure Log Analytics. Poproś osobę, która zarządza subskrypcjami platformy Azure w organizacji, aby dodać Cię do roli właściciela lub współautora usługi Log Analytics.
Usługa Log Analytics na poziomie obszaru roboczego jest wyłączona podczas próby nawiązania połączenia Informacja Poproś administratora dzierżawy o przyznanie administratorom obszaru roboczego uprawnień do łączenia obszarów roboczych usługi Log Analytics.
Usługa Log Analytics na poziomie obszaru roboczego jest wyłączona podczas próby rozłączenia Informacja Administrator dzierżawy odwołał uprawnienia dla administratorów obszaru roboczego w celu nawiązania połączenia z własnymi obszarami roboczymi usługi Azure Log Analytics. Jeśli rozłączysz się, nie możesz nawiązać połączenia z innym.

Zdarzenia i schemat

Po włączeniu usługi Azure Log Analytics rozpocznie się rejestrowanie następujących kategorii zdarzeń. Aby uzyskać więcej informacji na temat tych zdarzeń, zobacz Zdarzenia śledzenia usług Analysis Services.

  • AggregateTableRewriteQuery
  • Polecenie
  • Zakleszczenie
  • DirectQuery
  • Odnajdywanie
  • Błąd
  • Raport postępu
  • Query
  • Inicjowanie sesji
  • VertiPaqSEQuery
  • Powiadomienie

W poniższej tabeli opisano schemat.

Właściwości Istniejąca właściwość usług Azure Analysis Services opis
TimeGenerated Sygnatura czasowa (UTC) czasu wygenerowania dziennika.
OperationName EventClass_s Zdarzenie śledzenia usług Analysis Services skojarzone z rekordem dziennika. Aby uzyskać więcej informacji na temat możliwych zdarzeń dla każdej kategorii, zapoznaj się ze stroną dokumentacji śledzenia usługi AS.
Identyfikator korelacji Identyfikator skorelowanych zdarzeń. Może służyć do identyfikowania skorelowanych zdarzeń między wieloma tabelami.
PowerBIWorkspaceId Unikatowy identyfikator obszaru roboczego zawierającego artefakt, na który działa.
Identyfikator PremiumCapacityId Unikatowy identyfikator pojemności Premium obsługującej artefakt, na który działa.
ApplicationContext ApplicationContext_s Torba właściwości unikatowych identyfikatorów dostarczająca szczegółowe informacje o aplikacji wykonującej żądanie. na przykład identyfikator raportu.
ApplicationName ApplicationName_s Zawiera nazwę aplikacji klienckiej, która utworzyła połączenie z serwerem. Ta kolumna jest wypełniana wartościami przekazywanymi przez aplikację, a nie wyświetlaną nazwą programu.
ArtifactId Unikatowy identyfikator zasobu rejestrujący dane.
ArtifactKind Typ rejestrowania artefaktu operacji, na przykład semantyczny model.
Procesor CpuTimeMs CPUTime_s Czas procesora CPU (w milisekundach) używany przez zdarzenie.
ArtifactName DatabaseName_s Nazwa artefaktu usługi Power BI rejestrowania tej operacji.
LogAnalyticsCategory Unikatowe Kategoria zdarzeń śledzenia usług Analysis Services skojarzona z rekordem dziennika. Aby uzyskać więcej informacji na temat możliwych kategorii zdarzeń, zapoznaj się ze stroną dokumentacji śledzenia usługi AS.
DatasetMode Tryb modelu semantycznego. Import, DirectQuery lub Composite.
Czas trwania Duration_s Czas (w milisekundach) wykonywany przez operację.
Użytkownik User_s Użytkownik skojarzony z uruchomioną operacją. Używane, gdy tożsamość użytkownika końcowego musi być personifikowana na serwerze.
Wykonywanie użytkownika EffectiveUsername_s Użytkownik uruchamia operację.
OperationDetailName EventSubclass_s Więcej szczegółowych informacji o zdarzeniu śledzenia usług Analysis Services skojarzonym z rekordem dziennika. Zapoznaj się z właściwością "Podklasa" strony dokumentacji zdarzenia śledzenia, aby uzyskać więcej informacji na temat możliwych wartości, na przykład Początek polecenia.
XmlaObjectPath ObjectPath_s Ścieżka obiektu. Rozdzielona przecinkami lista elementów nadrzędnych rozpoczynająca się od obiektu nadrzędnego.
PowerBIWorkspaceName Nazwa obszaru roboczego usługi Power BI zawierającego artefakt.
Kod stanu Error_s Kod stanu operacji. Obejmuje ona powodzenie i niepowodzenie.
ProgressCounter ProgressTotal_s Licznik postępu.
Właściwości XmlaProperties RequestProperties_s Właściwości żądania XMLA.
XmlaSessionId SPID_s Identyfikator sesji usług Analysis Services.
Poziom Severity_s Zawiera poziom ważności rejestrowanej operacji. Powodzenie, informacje, ostrzeżenie lub błąd.
Tożsamość Informacje o użytkownikach i oświadczeniach.
Stan Stan operacji.
EventText TextData_s Zawiera pełne informacje skojarzone z operacją, na przykład zapytanie języka DAX.
CustomerTenantId Identyfikator dzierżawy usługi Power BI klienta.
XmlaRequestId RootActivityId_g Unikatowy identyfikator żądania.
ReplicaId Identyfikator repliki, który umożliwi zidentyfikowanie repliki po włączeniu skalowania zapytań w poziomie (QSO ). Replika do odczytu i zapisu zawsze ma repliki ReplicaId='AAA', a repliki tylko do odczytu mają identyfikator ReplicaId rozpoczynający się od "AAB" do wewnątrz. W przypadku modeli semantycznych z obsługą innych niż QSO identyfikator ReplicaId jest zawsze "AAA"

Zdarzenie ExecutionMetrics

Dla każdego żądania odnajdywania, polecenia i zapytania zdarzenie o nazwie ExecutionMetrics jest generowane na końcu żądania. To zdarzenie zawiera metryki wykonywania żądania, które mogą pomóc w bardziej efektywnym diagnozowaniu i rozwiązywaniu problemów. Ślad ExecutionMetrics jest skorelowany z najbliższym [Odnajdywanie|Polecenie|Zapytanie]Zdarzenie końcowe .

Następujące zapytanie KQL pobiera zdarzenia ExecutionMetrics dla wszystkich operacji odświeżania modelu semantycznego w ciągu ostatniego dnia:

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

Następujące zapytanie KQL pobiera zdarzenia, które zostały ograniczone w ciągu ostatniego dnia według obszaru roboczego, elementu i użytkownika:

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

Statystyki są prezentowane jako tekst JSON we właściwości EventText , zobacz następujące przykłady.

{
    "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
}

W poniższej tabeli opisano wszystkie możliwe właściwości. Nie każda właściwość jest emitowana w każdym zdarzeń, ponieważ zawartość będzie zależeć od żądania i modelu semantycznego.

Właściwości opis
timeStart Sygnatura czasowa (UTC) czasu rozpoczęcia żądania.
timeEnd Sygnatura czasowa (UTC) czasu zakończenia żądania.
durationMs Całkowity czas trwania wykonania.
datasourceConnectionThrottleTimeMs Łączny czas ograniczania po osiągnięciu limitu połączenia ze źródłem danych. Dowiedz się więcej o maksymalnych połączeniach współbieżnych tutaj.
externalQueryExecutionTimeMs Łączny czas spędzony na wykonywaniu wszystkich zapytań zewnętrznych źródeł danych podczas żądania.
directQueryConnectionTimeMs Łączny czas spędzony na tworzeniu nowego połączenia directQuery podczas żądania
directQueryIterationTimeMs Łączny czas spędzony na iterowaniu wyników zwracanych przez zapytania DirectQuery.
directQueryTotalTimeMs Łączny czas spędzony na wykonywaniu i odczytywaniu wszystkich zapytań DirectQuery podczas żądania.
executionDelayMs Łączny czas oczekiwania na dostępność wątku wątku aparatu usług Analysis Services.
totalCpuTimeMs Łączny czas procesora CPU żądania.
vertipaqJobCpuTimeMs Łączny czas procesora CPU spędzony przez aparat Vertipaq.
mEngineCpuTimeMs Łączny czas procesora CPU spędzony przez aparat PowerQuery.
queryProcessingCpuTimeMs Łączny czas procesora CPU spędzony przez zadania w wątku puli wątków zapytań usług Analysis Services.
approximatePeakMemoryConsumptionKB Przybliżone szczytowe całkowite zużycie pamięci podczas żądania.
mEnginePeakMemoryKB Przybliżony maksymalny rozmiar zatwierdzenia pamięci (w kilobajtach) we wszystkich kontenerach mashupu aparatu PowerQuery.
directQueryTimeoutMs Limit czasu skojarzony z zapytaniami DirectQuery.
externalQueryTimeoutMs Limit czasu skojarzony z zapytaniami do zewnętrznych źródeł danych.
tabularConnectionTimeoutMs Limit czasu skojarzony z zewnętrznymi połączeniami źródła danych tabelarycznych (e.g. SQL).
refreshParallelism Obowiązująca funkcja MaxParallelism użyta w żądaniu.
vertipaqTotalRows Łączna liczba wierszy przetworzonych przez aparat Vertipaq podczas operacji odświeżania.
queryResultRows Całkowita liczba wierszy zwróconych w wyniku zapytania języka DAX.
directQueryTotalRows Łączna liczba wierszy odczytanych z różnych zapytań DirectQuery.
directQueryRequestCount Całkowita liczba zapytań aparatu magazynu DirectQuery wykonywanych przez aparat języka DAX.
errorCount Łączna liczba błędów dla bieżącego żądania.
qsoReplicaVersion Wersja repliki dla modeli semantycznych z obsługą funkcji QSO reprezentowana w formacie FILETIME .
intendedUsage Zamierzone użycie: wartość domyślna (0); Zaplanowane lub odświeżanie interfejsu API (1); Odświeżanie na żądanie (2); Kafelek pulpitu nawigacyjnego/Odświeżanie pamięci podręcznej zapytań (3)
commandType Typ polecenia usług Analysis Services żądanego przez klienta (np. Batch, Instrukcja, Kopia zapasowa,...)
discoverType Typ odnajdywania żądanego przez klienta. Zobacz EventSubclass, aby uzyskać listę typów odnajdywania.
queryDialect Typ klienta dialektu używany do wykonywania zapytań dotyczących serwera: Nieznany (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4)
capacityThrottlingMs Łączny czas opóźnienia żądania z powodu ograniczania pojemności. Dowiedz się więcej o ograniczaniu przepustowości tutaj.
  • Wszystkie czasy trwania i czasy procesora SĄ prezentowane w milisekundach.
  • Mogą wystąpić dodatkowe właściwości wykraczające poza te opisane w powyższej tabeli i należy je traktować jako nieudokumentowane i mogą ulec zmianie.

Przykładowe zapytania KQL usługi Log Analytics

Poniższa kolekcja przykładowych zapytań może być przydatna podczas korzystania z usługi Azure Log Analytics z usługą Power BI. Można je uruchamiać bezpośrednio w witrynie Azure Portal lub za pośrednictwem interfejsów API w celu wykonywania zapytań dotyczących najnowszych danych, zazwyczaj około 5–10 minut.

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

Przykładowy szablon raportu usługi Power BI

Eksplorowanie i uzyskiwanie szczegółowych informacji na temat danych usługi Power BI w usłudze Azure Log Analytics przy użyciu szablonu raportu usługi Power BI typu open source w usłudze GitHub.

Poniższe artykuły mogą pomóc ci dowiedzieć się więcej o usłudze Power BI i o integracji z usługą Azure Log Analytics.