Dokumentacja tabeli telemetrii

Ważna

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Ta strona dokumentuje tabele Lakebase zapisuje w schemacie wykazu aparatu Unity po skonfigurowaniu wglądu w projekt. Szczegółowe informacje i Genie odczytują te same dane, a ponieważ ląduje we własnym wykazie aparatu Unity, możesz wykonywać zapytania bezpośrednio za pomocą dowolnego narzędzia Azure Databricks.

Note

Jest to funkcja beta. Nazwy tabel i kolumn mogą ulec zmianie przed ogólną dostępnością.

Co jest przechwytywane

Lakebase przechwytuje sygnały, na które zwróciłby uwagę doświadczony administrator bazy danych, a następnie zapisuje je w kilku tabelach, które po wyeksportowaniu można bezpośrednio odpytywać:

Co jest przechwytywane Gdzie ląduje
Aktywne sesje i zdarzenia oczekiwania active_session_history, wait_event_counters
Plany zapytań i statystyki wykonywania poszczególnych zapytań plan_history, pg_stat_statements_counters
Zmiany schematu: co się zmieniło, kiedy i przez kogo ddl_history
Statystyki bazy danych: rozmiar, odczyt i modyfikacja wierszy oraz liczby sesji database_counters, database_gauges
Użycie zasobów obliczeniowych: procesor CPU, pamięć, pamięć podręczna, połączenia compute_counters, compute_gauges
Surowe komunikaty dziennika Postgresa, w tym błąd będący przyczyną niepowodzenia postgres_logs

Insights i Genie odczytują te dane, aby oprzeć swoje odpowiedzi na podstawie tego, co faktycznie wydarzyło się w Twojej bazie danych, a te same tabele napędzają gotowe dashboardy obserwacji. Reszta tej strony dokumentuje każdą kolumnę w każdej tabeli.

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.
plan_json STRING Pełny plan zapytania w formacie JSON.
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.
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.
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.
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.

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

Warning

Jeśli tworzysz role do łączenia się aplikacji, hasło wpisane w instrukcji CREATE ROLE ... PASSWORD '...' SQL może trafić do historii zapytań lub instrukcji. Stwórz rolę przez UI, SDK, API lub CLI, które generują hasło po stronie serwera, dzięki czemu nigdy nie wpisujesz go jako tekst powikłany. Interfejs wyświetla wygenerowane hasło raz. SDK, API i CLI go nie zwracają, więc hasło uzyskaj później. Zobacz Jak uzyskać hasło.

W wersji beta obowiązują następujące ograniczenia:

  • COPY operacje nie są obecnie rejestrowane w historii planów 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 wyeksportowanych danych telemetrycznych i insightach pod wewnętrznym identyfikatorem (na przykład br-odd-mud-y2icrn1h), a nie pod nazwą wyświetlaną, taką jak „produkcja”. Jeśli musisz potwierdzić, której gałęzi lub którego punktu końcowego dotyczy insight lub wiersz tabeli, porównaj identyfikator z danymi w interfejsie użytkownika Lakebase.

  • Jednostki GUCs, które umożliwiają przechwytywanie danych telemetrycznych, mogą nie być propagowane automatycznie do istniejących zasobów obliczeniowych. Jeśli dane telemetryczne nie są wyświetlane po skonfigurowaniu możliwości obserwacji, 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 zwraca off, uruchom ponownie punkt końcowy obliczeń.

Następne kroki