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.
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.
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.
Wyszukaj ciąg microsoft.insights w obszarze Dostawcy zasobów. Następnie wybierz pozycję Zarejestruj.
Ustawianie uprawnień
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:
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.
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.
Konfigurowanie rejestrowania w obszarze roboczym Premium
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.
W okienku Ustawienia wybierz pozycję Połączenia platformy Azure, a następnie rozwiń węzeł Log Analytics , jak pokazano na poniższej ilustracji.
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.
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ć.
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.
Powiązana zawartość
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.