Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Ta funkcja jest dostępna w wersji beta. Aby z niego korzystać, administrator przestrzeni roboczej musi włączyć Lakebase Observability w tabelach systemowych na stronie Zapowiedzi . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Lakebase rejestruje swoją telemetrię obserwowalności do schematu system.lakebase , zaczynając od zaawansowanych sygnałów Postgres. Schwytanie jest automatyczne. Po włączeniu tego podglądu telemetria trafia do tych tabel, podczas gdy obliczenia projektu są uruchamiane. Nie ma konfiguracji do tworzenia, wyboru celu ani danych do podawania.
Insights i Genie odczytują te same tabele i możesz je zapytać dowolnym narzędziem Azure Databricks.
Note
Nazwy tabel i kolumn mogą ulec zmianie przed ogólną dostępnością.
Requirements
- Podgląd Lakebase Observability w tabelach systemowych włączony jest dla twojej przestrzeni roboczej.
- Projekt Lakebase na AWS lub Azure. Zobacz Pobieranie bazy danych Postgres.
Co jest przechwytywane
Lakebase rejestruje sygnały potrzebne do wyjaśnienia wolnej lub nieudolnej bazy danych, w następujących tabelach:
| Co jest przechwytywane | Nazwa tabeli |
|---|---|
| Aktywne sesje i zdarzenia oczekiwania |
system.lakebase.active_session_history, system.lakebase.wait_event_counters |
| Plany zapytań i statystyki wykonywania poszczególnych zapytań |
system.lakebase.plan_history, system.lakebase.pg_stat_statements_counters |
| Zmiany schematu: co się zmieniło, kiedy i przez kogo | system.lakebase.ddl_history |
| Statystyki bazy danych: rozmiar, odczyt i modyfikacja wierszy oraz liczby sesji |
system.lakebase.database_counters, system.lakebase.database_gauges |
| Użycie zasobów obliczeniowych: procesor CPU, pamięć, pamięć podręczna, połączenia |
system.lakebase.compute_counters, system.lakebase.compute_gauges |
| Surowe komunikaty dziennika Postgresa, w tym błąd będący przyczyną niepowodzenia | system.lakebase.postgres_logs |
Dokumenty są przechowywane przez 7 dni. Reszta tej strony dokumentuje każdą kolumnę w każdej tabeli. Aby zobaczyć, gdzie te tabele znajdują się na tle innych tabel systemowych, zobacz odniesienie do tabeli systemowej Lakebase.
Access
Tabele system.lakebase są zarządzane przez Unity Catalog. Użytkownicy pełniący funkcje zarówno administratora konta, jak i administratora metastore mogą odczytywać telemetrię i zarządzać do niej dostępem. Zobacz Zarządzanie uprawnieniami w Unity Catalog.
Access dotyczy poziomu schematu, więc użytkownik, który potrafi czytać system.lakebase , widzi telemetrię dla każdego projektu na koncie.
Tekst zamaskowanego oświadczenia
Kolumny zawierające tekst wyciągu zwracają <REDACTED> , chyba że jesteś administratorem konta lub członkiem databricks_pii_access grupy na poziomie konta. Administrator konta tworzy i zarządza tą grupą. Zobacz Utwórz i zarządzaj grupą databricks_pii_access oraz Udostępnij tekst zamaskowanego wypowiedzenia.
Kolumny wspólne dla każdej tabeli
Każda poniższa tabela zawiera te kolumny, które identyfikują, skąd pochodzi wiersz:
| Column | Typ | Description |
|---|---|---|
project_id |
STRING | Projekt Lakebase pochodzi z wiersza. |
branch_id |
STRING | Gałąź, z których pochodzi wiersz. |
endpoint_id |
STRING | Punkt końcowy obliczeniowy, z których pochodzi wiersz. |
compute_id |
STRING | Określone wystąpienie obliczeniowe. Zmienia się to, gdy obliczenia są skalowane do zera i wznawiane. |
ts |
TIMESTAMP | Kiedy wiersz został zarejestrowany. |
compute_mode |
STRING | Tryb obliczeń w tym czasie, na przykład odczyt-zapis lub tylko do odczytu. |
Tabele z nazwami kończącymi _counters się również kolumną previous_ts , oznaczając początek interwału wartości wiersza skumulowane. Są to wartości skumulowane dla tego interwału, a nie odczyty do punktu w czasie. Tabele kończące się w tabeli _gauges to zamiast tego odczyty do punktu w czasie i nie previous_tsmają wartości .
W poniższych tabelach wymieniono tylko kolumny wykraczające poza te typowe.
Działanie sesji
Migawka każdego aktywnego zaplecza, próbkowana w sposób ciągły. Jest to ten sam wzorzec co usługa AWS Performance Insights lub Aktywna historia sesji (ASH) firmy Oracle: jeśli sesja wykonuje cokolwiek, w tym oczekiwanie, zostanie wyświetlona tutaj.
active_session_history
| Column | Typ | Description |
|---|---|---|
sample_seq |
LONG | Położenie porządkowe tej próbki w jej partii. |
pid |
LONG | Identyfikator procesu zaplecza. |
datid |
LONG | Identyfikator obiektu bazy danych. |
userid |
LONG | Identyfikator obiektu roli łączenia. |
queryid |
LONG | Identyfikuje uruchamiane zapytanie. Dopasowywuje queryid wartość w elem.pg_stat_statements_counters |
wait_event_info |
LONG | Wewnętrzne kodowanie zdarzenia oczekiwania. |
wait_event_type |
STRING | Kategoria zdarzenia oczekiwania, na przykład Timeout lub Lock. |
wait_event |
STRING | Konkretne zdarzenie oczekiwania, na przykład PgSleep. |
backend_state |
LONG | Stan zaplecza, na przykład aktywny lub bezczynny. |
backend_type |
LONG | Typ procesu zaplecza. |
xact_age_ms |
LONG | Jak długo bieżąca transakcja została otwarta. |
query_age_ms |
LONG | Jak długo uruchomiono bieżące zapytanie. |
blocking_pid |
LONG | Identyfikator PID sesji blokującej ten, jeśli istnieje. |
leader_pid |
LONG | Identyfikator PID równoległego lidera zapytania, jeśli to zaplecze jest procesem roboczym równoległym. |
flags |
LONG | Wewnętrzne flagi stanu. |
plan_fingerprint |
LONG | Linki do określonego kształtu planu w programie plan_history. |
appname_hash |
LONG | Skrót nazwy aplikacji łączącej. |
Oczekiwanie zdarzeń
Zagregowane liczniki zdarzeń oczekiwania i czas, uzupełniając widok na próbkę w pliku active_session_history.
wait_event_counters
| Column | Typ | Description |
|---|---|---|
wait_event_id |
LONG | Wewnętrzne kodowanie zdarzenia oczekiwania. |
wait_class_name |
STRING | Kategoria zdarzenia oczekiwania. |
wait_event_name |
STRING | Określone zdarzenie oczekiwania. |
wait_event_count |
LONG | Ile razy to zdarzenie oczekiwania wystąpiło w interwale. |
wait_event_time |
Podwójny | Łączny czas spędzony w tym zdarzeniu oczekiwania w interwale. |
Plany zapytań
Rekord na wykonanie planów zapytań, w tym pełny plan i statystyki magazynu specyficzne dla neonów. Jest to najbardziej szczegółowa tabela, w której kończy się badanie wolnych zapytań.
plan_history
| Column | Typ | Description |
|---|---|---|
row_position |
LONG | Położenie porządkowe tego wiersza w jego partii. |
analyze_enabled |
BOOLEAN | Czy plan zawiera rzeczywiste statystyki wykonania (EXPLAIN ANALYZE), a nie tylko oszacowania. |
buffers_enabled |
BOOLEAN | Czy plan zawiera statystyki użycia buforu. |
query_hash |
STRING | Skrót identyfikujący tekst zapytania. |
queryid |
LONG | Identyfikuje zapytanie. Dopasuj do queryid i pg_stat_statements_countersactive_session_history. |
duration_ms |
Podwójny | Jak długo trwało uruchamianie zapytania. |
total_cost |
Podwójny | Szacowany koszt planisty dla zapytania. |
plan_rows |
LONG | Szacowana liczba wierszy planisty. |
actual_rows |
LONG | Zwrócona rzeczywista liczba wierszy. |
plan_fingerprint |
LONG | Identyfikuje ten konkretny kształt planu. Dopasowywuje plan_fingerprint wartość w elem.active_session_history |
lock_wait_time_ms |
Podwójny | Czas spędzony na czekaniu na blokady. |
planning_time_ms |
Podwójny | Czas spędzony na planowaniu zapytania, niezależnie od wykonania. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Działanie pamięci podręcznej buforu współużytkowanego dla tego wykonania. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Działanie buforu lokalnego dla tabel tymczasowych. |
temp_blks_read / temp_blks_written |
LONG | Tymczasowe działanie pliku, na przykład z dużego sortowania lub skrótu. |
neon_getpage_count |
LONG | Liczba żądań strony wysyłanych do serwera stronicowania. |
neon_file_cache_hits |
LONG | Liczba stron obsługiwanych z lokalnej pamięci podręcznej plików zamiast stronicowania. |
neon_getpage_wait_us |
LONG | Czas spędzony na oczekiwaniu na żądania strony pageserver w mikrosekundach. |
backend_pid |
LONG | Identyfikator procesu zaplecza, który uruchomił to zapytanie. |
lock_wait_count |
LONG | Ile razy to wykonanie czekało na blokadę. |
userid / dbid |
LONG | Identyfikatory obiektów roli łączenia i bazy danych. |
query_text |
STRING | Tekst zapytania. Zamaskowany. Zobacz tekst oświadczenia w maskach. |
plan_json |
STRING | Pełny plan zapytania w formacie JSON. Zamaskowany. Zobacz tekst oświadczenia w maskach. |
usename / datname |
STRING | Nazwy roli łączącej i bazy danych. |
application_name / client_addr |
STRING | Nazwa i adres klienta aplikacji łączącej. |
wait_events |
STRING | Zdarzenia oczekiwania obserwowane podczas wykonywania. |
parameters |
STRING | Powiązywanie parametrów używanych w zapytaniu, jeśli istnieje. Zamaskowany. Zobacz tekst oświadczenia w maskach. |
blocking_pids |
STRING | Identyfikatory PID sesji, które zablokowały to wykonanie, jeśli istnieje. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
STRING | Wewnętrzne identyfikatory neonów dla gałęzi, punktu końcowego i osi czasu. |
cpu_user_time_ms / cpu_sys_time_ms |
Podwójny | Czas procesora CPU zużywany przez to wykonanie z podziałem na czas użytkownika i system. |
voluntary_csw / involuntary_csw |
LONG | Przełączniki kontekstowe podczas wykonywania. |
trace_id / span_id / trace_flags / service_name |
CIĄG/ CIĄG / DŁUGI / CIĄG | Identyfikatory śledzenia typu OpenTelemetry, jeśli zapytanie było częścią żądania śledzenia. |
timeline_id |
LONG | Wewnętrzny identyfikator osi czasu. |
truncated |
BOOLEAN | Czy dane tego wiersza (na przykład duży plan) zostały obcięte przed zapisaniem. |
Statystyki zapytań
Zagregowane statystyki poszczególnych zapytań pochodzące z rozszerzenia standardowego pg_stat_statements .
pg_stat_statements_counters
| Column | Typ | Description |
|---|---|---|
userid / dbid |
LONG | Identyfikatory obiektów roli łączenia i bazy danych. |
queryid |
LONG | Identyfikuje zapytanie. Dopasuj do queryid i plan_historyactive_session_history. |
toplevel |
BOOLEAN | Czy ten wiersz jest przeznaczony dla instrukcji najwyższego poziomu, w przeciwieństwie do jednego zagnieżdżonego wewnątrz funkcji PL/pgSQL lub procedury. Zobacz ograniczenie PL/pgSQL. |
query |
STRING | Tekst zapytania. Zamaskowany. Zobacz tekst oświadczenia w maskach. |
calls |
LONG | Liczba wykonań tego zapytania w interwale. |
plans |
LONG | Ile razy to zapytanie było planowane w interwale. |
rows |
LONG | Łączna liczba zwróconych lub zmodyfikowanych wierszy. |
total_exec_time / total_plan_time |
Podwójny | Łączny czas spędzony na wykonywaniu i planowaniu tego zapytania w interwale. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Działanie pamięci podręcznej buforu współużytkowanego. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Działanie buforu lokalnego dla tabel tymczasowych. |
temp_blks_read / temp_blks_written |
LONG | Tymczasowe działanie pliku. |
wal_bytes / wal_fpi / wal_records |
LONG | Wolumin dziennika z wyprzedzeniem generowany przez to zapytanie. |
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time |
Mixed | Statystyki kompilacji JIT (just in time), jeśli dla tego zapytania użyto trybu JIT. |
Zmiany schematu
Zmiany schematu: co się zmieniło, kiedy i przez kogo. To właśnie usługa Genie odczytuje, aby prześledzić zdarzenie z powrotem do zmiany schematu, niezależnie od wdrożenia lub ręcznej edycji.
ddl_history
| Column | Typ | Description |
|---|---|---|
row_position |
LONG | Położenie porządkowe tego wiersza w jego partii. |
command_tag |
STRING | Typ polecenia DDL, na przykład ALTER TABLE. |
object_type / object_name |
STRING | Rodzaj i nazwa obiektu, który uległ zmianie. |
schema_name |
STRING | Schemat Bazy danych Postgres, do którego należy obiekt. |
query_text |
STRING | Pełna instrukcja DDL. Zamaskowany. Zobacz tekst oświadczenia w maskach. |
duration_ms |
Podwójny | Jak długo trwało uruchamianie instrukcji DDL. |
userid / usename |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa roli łączenia. |
application_name |
STRING | Nazwa aplikacji łączącej. |
backend_pid |
LONG | Identyfikator procesu zaplecza, który uruchomił instrukcję . |
dbid |
LONG | Identyfikator obiektu bazy danych. |
search_path |
STRING | Ścieżka wyszukiwania sesji w tym czasie. |
ddl_json |
STRING | Ustrukturyzowana, przeanalizowana reprezentacja instrukcji DDL. Zamaskowany. Zobacz tekst oświadczenia w maskach. |
Note
Przechwytywanie DDL ma rzeczywistą lukę: może zostać pominięta zmiana wprowadzona bezpośrednio wokół wznawiania obliczeń ze skali do zera. Jeśli w tym miejscu nie pojawi się zmiana schematu, mimo że wiadomo, że tak się stało, jest to najbardziej prawdopodobny powód. Zobacz Ograniczenia.
Dzienniki bazy danych Postgres
Nieprzetworzone komunikaty dziennika Postgres, w tym określony błąd związany z awarią.
postgres_logs
| Column | Typ | Description |
|---|---|---|
sample_seq |
LONG | Położenie porządkowe tego wiersza w jego partii. |
elevel |
LONG | Wewnętrzne kodowanie na poziomie dziennika. |
severity |
STRING | Ważność dziennika, na przykład ERROR lub LOG. |
sqlstate |
STRING | Kod błędu Postgres SQLSTATE, na przykład 42703 dla niezdefiniowanej kolumny. |
backend_pid / leader_backend_pid |
LONG | Identyfikator procesu zaplecza i identyfikator PID lidera zapytania równoległego, jeśli ma to zastosowanie. |
userid / usename |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa roli łączenia. |
datid / datname |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa bazy danych. |
application_name / client_addr |
STRING | Nazwa i adres klienta aplikacji łączącej. |
schema_name / table_name / column_name / constraint_name / datatype_name |
STRING | Schemat, tabela, kolumna, ograniczenie lub typ danych, do którego odwołuje się błąd, gdy element Postgres ma jeden. |
funcname |
STRING | Funkcja, w przypadku gdy ma to zastosowanie, wystąpił błąd. |
filename / lineno |
CIĄG/DŁUGI | Plik źródłowy postgres i wiersz błędu pochodzi. |
message |
STRING | Tekst komunikatu dziennika. |
detail / hint / context |
STRING | Dodatkowe szczegóły, sugerowana poprawka i kontekst błędu, gdy usługa Postgres je zawiera. |
internalquery |
STRING | Zapytanie wygenerowane wewnętrznie związane z błędem, jeśli ma to zastosowanie. |
statement |
STRING | Instrukcja, która wyzwoliła ten wpis dziennika. Zamaskowany. Zobacz tekst oświadczenia w maskach. |
truncated_mask |
LONG | Wskazuje, które pola, jeśli istnieją, zostały obcięte przed zapisaniem. |
Note
Pola ustrukturyzowane schema_name, table_namei column_name nie są wypełniane dla każdego typu błędu. Zwykły błąd analizy "kolumna nie istnieje" (SQLSTATE 42703), na przykład pozostawia je puste, mimo że message bezpośrednio nadaj kolumnie nazwy. Nie należy polegać na wypełnianiu tych pól. Najpierw sprawdź message .
Metryki obliczeniowe
Użycie zasobów na poziomie obliczeniowym: procesor CPU, pamięć, dysk i operacje we/wy sieci oraz lokalna pamięć podręczna plików (LFC), pamięć obliczeniowa usługi Lakebase przed serwerem stronicowania.
compute_counters
| Column | Typ | Description |
|---|---|---|
backpressure_throttling_seconds |
Podwójny | Czas, w jaki warstwa magazynu spędziła na ograniczaniu liczby operacji zapisu w tym interwale. Wartość niezerowa oznacza, że wolumin zapisu przekroczył ilość miejsca do wchłonięcia. |
host_busiest_cpu_seconds / host_cpu_seconds |
Podwójny | Wykorzystany czas procesora CPU dla najbardziej ruchliwego rdzenia i łącznie. |
host_disk_read_bytes / host_disk_written_bytes |
Podwójny | Wolumin we/wy dysku. |
host_network_receive_bytes / host_network_transmit_bytes |
Podwójny | Wolumin we/wy sieci. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Działanie lokalnej pamięci podręcznej plików dla tego interwału. |
replica_lfc_redo_evictions |
LONG | Eksmisje lokalnej pamięci podręcznej plików spowodowane przez ponowne wykonanie repliki, jeśli to obliczenie jest repliką do odczytu. |
compute_gauges
| Column | Typ | Description |
|---|---|---|
current_lsn |
LONG | Bieżąca pozycja dziennika z wyprzedzeniem zapisu. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | Odtwarzanie wal i odbieranie pozycji, jeśli to obliczenia są repliką do odczytu. |
max_connections |
LONG | Skonfigurowany limit połączeń. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Szacowany rozmiar zestawu roboczego w ciągu ostatnich 5, 15 i 60 minut. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Pojemność lokalnej pamięci podręcznej plików i bieżące użycie. |
total_size_limit / total_size |
LONG | Ogólna pojemność magazynu i bieżące użycie. |
replication_lag_bytes / replication_lag_time_ms |
DŁUGI /PODWÓJNY | Opóźnienie replikacji, jeśli to środowisko obliczeniowe jest repliką do odczytu. |
host_logical_cpus / host_memory_total_bytes |
Podwójny | Zaaprowizowana pamięć i procesor obliczeniowy. |
Metryki bazy danych
Aktywność dla bazy danych: wiersze zmienione, transakcje, sesje i kondycja próżni. Jest to miejsce, w którym na żywo sygnały wylożenia tabeli i automatycznego czyszczenia.
database_counters
| Column | Typ | Description |
|---|---|---|
datid / datname |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa bazy danych. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
Podwójny | Czas spędzony na aktywnej, bezczynnej transakcji i ogólnie połączony. |
deadlocks |
LONG | Liczba wykrytych zakleszczeń. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Działanie na poziomie wiersza dla interwału. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Liczba cykli życia sesji. |
shared_blks_hit / shared_blks_read |
LONG | Działanie pamięci podręcznej buforu współużytkowanego. |
xact_commit / xact_rollback |
LONG | Zatwierdzone i wycofane transakcje. |
database_gauges
| Column | Typ | Description |
|---|---|---|
datid / datname |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa bazy danych. |
numbackends |
LONG | Bieżąca liczba połączeń z tą bazą danych. |
size |
LONG | Rozmiar dysku bazy danych. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | Identyfikator transakcji i wiek identyfikatora wieloaktakowego najstarszego nierozrozzonego wiersza. Rosnące wartości są najwcześniejszym sygnałem próżni spadającym w tyle, na tyle, zanim wzdęcie stanie się widoczne w rozmiarze tabeli. |
Ograniczenia
Note
Hasła są redagowane w momencie przechwytywania instrukcji, więc przechwycone CREATE ROLE odczytuje PASSWORD '***'. Redakcia zależy od wykrycia hasła w instrukcji, a nieprawidłowo uformowane zdanie może uniknąć wykrycia.
Azure Databricks zaleca role OAuth, które uwierzytelniają tożsamości Azure Databricks za pomocą tokenów i nie pozostawiają hasła do wpisania.
Obowiązują następujące ograniczenia:
COPYoperacje nie są rejestrowane w historii planu zapytań.Zapytanie wykonywane wewnątrz funkcji PL/pgSQL lub procedury nie jest przechwytywane w telemetrii na poziomie zapytania, chyba że jest również uruchamiane jako instrukcja najwyższego poziomu. Własne śledzenie instrukcji w Postgresie domyślnie zlicza tylko instrukcje najwyższego poziomu.
Gałęzie i punkty końcowe pojawiają się w telemetrii i insightach według wewnętrznego ID (na przykład,
br-odd-mud-y2icrn1h), a nie przez nazwę wyświetlaną, jak "production". Sprawdź ID w interfejsie Lakebase, jeśli musisz potwierdzić, do której gałęzi lub punktu końcowego odnosi się wiersz insight lub tabela.Jednostki GUCs, które umożliwiają przechwytywanie danych telemetrycznych, mogą nie być propagowane automatycznie do istniejących zasobów obliczeniowych. Jeśli telemetria nie pojawi się po włączeniu podglądu, połącz się z projektem i sprawdź:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Oba muszą zwrócić wartość
on. Jeśli którykolwiek z nich zwracaoff, uruchom ponownie punkt końcowy obliczeń.
Konfiguracje obserwacji dziedziczonych
Zanim telemetria przeniosła się do tabel systemowych, można było stworzyć konfigurację obserwacji, która przechwytywała telemetrię do katalogu i schematu w Twoim własnym Katalogu Unity oraz dostarczała gotowe pulpity nawigacyjne. Istniejące konfiguracje działają dalej, a ich pulpity pozostają dostępne. Nie można już tworzyć nowych konfiguracji obserwacji, a przechwytywanie do tabel systemowych nie tworzy dashboardów.
Następne kroki
- Wykrywanie problemów z Insights: agent, który według harmonogramu przegląda tę telemetrię.
- Zbadaj i napraw problemy z Genie: zadawaj pytania dotyczące tej telemetrii własnymi słowami.
- Referencja tabeli systemowej Lakebase: gdzie te tabele znajdują się wśród innych tabel systemowych.