Telemetrie lakebase v systémových tabulkách

Important

Tato funkce je v beta verzi. Pro jeho použití musí správce pracovního prostoru zapnout Lakebase Observability v systémových tabulkách na stránce Previews . Viz Manage Azure Databricks preview.

Lakebase zachycuje svou telemetrii pozorovatelnosti do schématu system.lakebase , začínaje pokročilými signály Postgres. Zachycení je automatické. S tímto náhledem zapnutým telemetrie přistává v těchto tabulkách, zatímco výpočetní výkon projektu běží. Není potřeba vytvořit žádnou konfiguraci, vybrat cíl ani poskytnout žádné přihlašovací údaje. Insights a Genie čtou stejné tabulky a můžete je dotazovat jakýmkoli nástrojem Azure Databricks.

Note

Názvy tabulek a sloupců se můžou před obecnou dostupností změnit.

Requirements

  • Lakebase Observability v Systémových tabulkách je zapnuta pro váš pracovní prostor.
  • Projekt Lakebase na AWS nebo Azure. Viz Získání databáze Postgres.

Co se zachytí

Lakebase zaznamenává signály potřebné k vysvětlení pomalé nebo selhávající databáze v následujících tabulkách:

Co je zachyceno Název tabulky
Aktivní relace a události čekání system.lakebase.active_session_history, system.lakebase.wait_event_counters
Plány dotazů a statistiky provádění pro jednotlivé dotazy system.lakebase.plan_history, system.lakebase.pg_stat_statements_counters
Změny schématu: co se změnilo, kdy a kým system.lakebase.ddl_history
Statistika databáze: velikost, čtení a úpravy řádků a počty relací system.lakebase.database_counters, system.lakebase.database_gauges
Využití výpočetních prostředků: procesor, paměť, mezipaměť, připojení system.lakebase.compute_counters, system.lakebase.compute_gauges
Surové zprávy z protokolu Postgresu, včetně chyby, která selhání způsobila system.lakebase.postgres_logs

Záznamy jsou uchovávány po dobu 7 dnů. Zbytek této stránky dokumentuje každý sloupec v každé tabulce. Pro umístění těchto tabulek mezi ostatními systémovými tabulkami viz odkaz na tabulku systému Lakebase.

Přístup

Tabulky system.lakebase jsou řízeny pomocí Unity Catalog. Uživatelé s rolí správce účtu i správce metastore mohou číst telemetrii a spravovat k ní přístup. Viz Správa oprávnění vkatalogu Unity .

Access platí na úrovni schématu, takže uživatel, který umí číst, system.lakebase vidí telemetrii pro každý projekt v účtu.

Text maskovaného prohlášení

Sloupce, které obsahují text výpisu, se vracejí <REDACTED> , pokud nejste správce účtu nebo člen databricks_pii_access skupiny na úrovni účtu. Administrátor účtu tuto skupinu vytváří a spravuje. Viz Vytvořit a spravovat databricks_pii_access skupinu a Přistupovat k textu maskovaného výroku.

Sloupce společné pro každou tabulku

Každá tabulka níže obsahuje tyto sloupce, které identifikují, odkud řádek pochází:

Sloupec Typ Description
project_id STRING Projekt Lakebase, ze které řádek pochází.
branch_id STRING Větev, ze které řádek pochází.
endpoint_id STRING Výpočetní koncový bod, ze které řádek pochází.
compute_id STRING Konkrétní výpočetní instance. To se změní, když se výpočetní prostředky škálují na nulu a obnoví se.
ts TIMESTAMP Když byl řádek zaznamenán.
compute_mode STRING Režim výpočetních prostředků v době, například pro čtení i zápis nebo jen pro čtení.

Tabulky s názvy končícími _counters také obsahují previous_ts sloupec, který označuje začátek intervalu, ve které byly hodnoty řádku kumulované. Jedná se o kumulativní hodnoty pro tento interval, nikoli čtení k určitému bodu v čase. Tabulky končící _gauges na čtení k určitému bodu v čase a nemají žádné previous_ts.

Následující tabulky uvádějí jenom sloupce nad rámec těchto běžných sloupců.

Aktivita relace

Snímek každého aktivního back-endu, který se průběžně vzorkuje. Jedná se o stejný vzor jako AWS Performance Insights nebo Aktivní historie relací Oracle (ASH): Pokud relace dělá něco, včetně čekání, zobrazí se tady.

active_session_history

Sloupec Typ Description
sample_seq LONG Pořadové umístění tohoto vzorku v rámci dávky.
pid LONG ID procesu back-endu.
datid LONG ID objektu databáze.
userid LONG ID objektu propojovací role.
queryid LONG Identifikuje spuštěný dotaz. Shody queryid v pg_stat_statements_counters.
wait_event_info LONG Interní kódování události čekání.
wait_event_type STRING Kategorie události čekání, například Timeout nebo Lock.
wait_event STRING Konkrétní událost čekání, například PgSleep.
backend_state LONG Stav back-endu, například aktivní nebo nečinný.
backend_type LONG Typ back-endového procesu.
xact_age_ms LONG Jak dlouho byla aktuální transakce otevřena.
query_age_ms LONG Jak dlouho je aktuální dotaz spuštěný.
blocking_pid LONG PID relace blokující tuto relaci, pokud existuje.
leader_pid LONG PiD vedoucího paralelního dotazu, pokud je tento back-end paralelním pracovním procesem.
flags LONG Příznaky interního stavu.
plan_fingerprint LONG Odkazy na určitý obrazec plánu v plan_history.
appname_hash LONG Hodnota hash názvu propojovací aplikace.

Události čekání

Agregované počty událostí čekání a čas, které doplňují zobrazení pro jednotlivé vzorky v active_session_historysouboru .

wait_event_counters

Sloupec Typ Description
wait_event_id LONG Interní kódování události čekání.
wait_class_name STRING Kategorie události čekání.
wait_event_name STRING Konkrétní událost čekání.
wait_event_count LONG Kolikrát k této události čekání došlo v intervalu.
wait_event_time DVOJITÝ Celková doba strávená v této události čekání během intervalu.

Plány dotazů

Záznam plánů dotazů pro jednotlivé spuštění, včetně úplného plánu a statistik úložiště specifického pro Neon. Toto je nejpodrobnější tabulka, která obvykle končí pomalým zkoumáním dotazů.

plan_history

Sloupec Typ Description
row_position LONG Pořadové umístění tohoto řádku v rámci dávky.
analyze_enabled BOOLEAN Zda plán zahrnuje skutečné statistiky provádění (EXPLAIN ANALYZE), nejen odhady.
buffers_enabled BOOLEAN Určuje, jestli plán zahrnuje statistiky využití vyrovnávací paměti.
query_hash STRING Hodnota hash identifikující text dotazu
queryid LONG Identifikuje dotaz. Shody queryid v pg_stat_statements_counters a active_session_history.
duration_ms DVOJITÝ Jak dlouho trvalo spuštění dotazu.
total_cost DVOJITÝ Odhadované náklady plánovače na dotaz.
plan_rows LONG Odhadovaný počet řádků plánovače.
actual_rows LONG Vrácený skutečný počet řádků.
plan_fingerprint LONG Identifikuje tento konkrétní obrazec plánu. Shody plan_fingerprint v active_session_history.
lock_wait_time_ms DVOJITÝ Čas strávený čekáním na zámky.
planning_time_ms DVOJITÝ Čas strávený plánováním dotazu odděleně od provádění
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Aktivita mezipaměti sdílené vyrovnávací paměti pro toto spuštění
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Aktivita místní vyrovnávací paměti pro dočasné tabulky.
temp_blks_read / temp_blks_written LONG Dočasná aktivita souboru, například z velkého řazení nebo hodnoty hash.
neon_getpage_count LONG Počet požadavků stránek odeslaných na stránkovací server
neon_file_cache_hits LONG Početstránekch
neon_getpage_wait_us LONG Čas strávený čekáním na požadavky stránek pageserveru v mikrosekundách
backend_pid LONG ID procesu back-endu, které spustilo tento dotaz.
lock_wait_count LONG Kolikrát toto spuštění čekalo na uzamčení.
userid / dbid LONG ID objektů propojovací role a databáze.
query_text STRING Text dotazu. Maskovaný. Viz text prohlášení Masked (Maskovaný výrok).
plan_json STRING Úplný plán dotazu ve formátu JSON. Maskovaný. Viz text prohlášení Masked (Maskovaný výrok).
usename / datname STRING Názvy propojovacích rolí a databází.
application_name / client_addr STRING Název a adresa klienta připojující se aplikace.
wait_events STRING Události čekání pozorované během tohoto spuštění.
parameters STRING Pokud existuje, vytvořte vazbu parametrů použitých v dotazu. Maskovaný. Viz text prohlášení Masked (Maskovaný výrok).
blocking_pids STRING ID relací, které blokovaly toto spuštění( pokud existuje).
neon_branch_id / neon_endpoint_id / neon_timeline_id STRING Interní identifikátory Neonu pro větev, koncový bod a časovou osu.
cpu_user_time_ms / cpu_sys_time_ms DVOJITÝ Čas procesoru spotřebovaný tímto spuštěním, rozdělený do uživatelského a systémového času.
voluntary_csw / involuntary_csw LONG Kontext se během tohoto spuštění přepne.
trace_id / span_id / trace_flags / service_name ŘETĚZEC / ŘETĚZEC / DLOUHÝ / ŘETĚZEC Identifikátory trasování ve stylu OpenTelemetry, pokud byl dotaz součástí trasovaného požadavku.
timeline_id LONG Interní identifikátor časové osy.
truncated BOOLEAN Zda byla data tohoto řádku (například velký plán) před zápisem zkrácena.

Statistika dotazů

Agregované statistiky pro jednotlivé dotazy, které pocházejí ze standardního pg_stat_statements rozšíření.

pg_stat_statements_counters

Sloupec Typ Description
userid / dbid LONG ID objektů propojovací role a databáze.
queryid LONG Identifikuje dotaz. Shody queryid v plan_history a active_session_history.
toplevel BOOLEAN Určuje, jestli se tento řádek používá pro příkaz nejvyšší úrovně, na rozdíl od jednoho vnořeného uvnitř funkce PL/pgSQL nebo procedury. Podívejte se na omezení PL/pgSQL.
query STRING Text dotazu. Maskovaný. Viz text prohlášení Masked (Maskovaný výrok).
calls LONG Počet spuštění tohoto dotazu v intervalu
plans LONG Kolikrát byl tento dotaz v intervalu naplánován.
rows LONG Celkový počet vrácených nebo ovlivněných řádků
total_exec_time / total_plan_time DVOJITÝ Celkový čas strávený prováděním a plánováním tohoto dotazu v intervalu
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Aktivita mezipaměti sdílené vyrovnávací paměti.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Aktivita místní vyrovnávací paměti pro dočasné tabulky.
temp_blks_read / temp_blks_written LONG Aktivita dočasného souboru
wal_bytes / wal_fpi / wal_records LONG Svazek protokolu s hlavičkou zápisu vygenerovaný tímto dotazem
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time Mixed Statistika kompilace JIT (just-in-time), pokud se pro tento dotaz použila JIT.

Změny schémat

Změny schématu: co se změnilo, kdy a kým. To je to, co Genie čte, aby trasování incidentu zpět na změnu schématu, ať už z nasazení nebo ruční úpravy.

ddl_history

Sloupec Typ Description
row_position LONG Pořadové umístění tohoto řádku v rámci dávky.
command_tag STRING Typ příkazu DDL, například ALTER TABLE.
object_type / object_name STRING Druh a název objektu, který se změnil.
schema_name STRING Schéma Postgres, do kterého objekt patří.
query_text STRING Úplný příkaz DDL. Maskovaný. Viz text prohlášení Masked (Maskovaný výrok).
duration_ms DVOJITÝ Jak dlouho trvalo spuštění příkazu DDL.
userid / usename DLOUHÉ / STRUNOVÉ ID a název objektu propojovací role.
application_name STRING Název připojené aplikace.
backend_pid LONG ID procesu back-endu, které příkaz spustil.
dbid LONG ID objektu databáze.
search_path STRING Cesta k hledání relace v době.
ddl_json STRING Strukturovaná, parsovaná reprezentace příkazu DDL. Maskovaný. Viz text prohlášení Masked (Maskovaný výrok).

Note

Zachytávání DDL má skutečnou mezeru: změnu provedenou přímo kolem obnovení výpočetních prostředků ze škálování na nulu je možné vynechat. Pokud se tady změna schématu nezobrazí, i když víte, že k ní došlo, je to nejpravděpodobnější důvod. Viz Omezení.

Protokoly Postgres

Nezpracované zprávy protokolu Postgres, včetně konkrétní chyby za selháním

postgres_logs

Sloupec Typ Description
sample_seq LONG Pořadové umístění tohoto řádku v rámci dávky.
elevel LONG Kódování na úrovni interního protokolu
severity STRING Závažnost protokolu, například ERRORLOG.
sqlstate STRING Kód chyby Postgres SQLSTATE, například 42703 pro nedefinovaný sloupec.
backend_pid / leader_backend_pid LONG ID procesu back-endu a jeho PID paralelního dotazu, pokud je to možné.
userid / usename DLOUHÉ / STRUNOVÉ ID a název objektu propojovací role.
datid / datname DLOUHÉ / STRUNOVÉ ID a název objektu databáze.
application_name / client_addr STRING Název a adresa klienta připojující se aplikace.
schema_name / table_name / column_name / constraint_name / datatype_name STRING Schéma, tabulka, sloupec, omezení nebo datový typ odkazovaný chybou, pokud má postgres jeden.
funcname STRING Funkce, ve které došlo k chybě, pokud je k dispozici.
filename / lineno ŘETĚZEC / DLOUHÝ Zdrojový soubor Postgres a řádek chyby pocházející z.
message STRING Text zprávy protokolu.
detail / hint / context STRING Další podrobnosti, navrhovaná oprava a kontext chyby, když je Postgres obsahuje.
internalquery STRING Interně vygenerovaný dotaz související s chybou( pokud je k dispozici).
statement STRING Příkaz, který aktivoval tuto položku protokolu. Maskovaný. Viz text prohlášení Masked (Maskovaný výrok).
truncated_mask LONG Určuje, která pole byla před zápisem zkrácena.

Note

Strukturované schema_namepole table_namea column_name pole nejsou vyplněny pro každý typ chyby. Prostý "sloupec neexistuje" parsuje chybu (SQLSTATE 42703), například je ponechá prázdné, i když message sloupec pojmenuje přímo. Nespoléhejte na vyplňování těchto polí. Nejdřív zkontrolujte message .

Výpočetní metriky

Využití prostředků na úrovni výpočetních prostředků: procesor, paměť, disk a síťový vstupně-výstupní operace a mezipaměť místních souborů (LFC), mezipaměť lakebase na straně výpočetních prostředků před stránkovacím serverem.

compute_counters

Sloupec Typ Description
backpressure_throttling_seconds DVOJITÝ Čas, kdy vrstva úložiště v tomto intervalu strávila omezováním zápisů. Nenulová hodnota znamená, že svazek zápisu překročil, jaké úložiště může absorbovat.
host_busiest_cpu_seconds / host_cpu_seconds DVOJITÝ Doba využití procesoru pro nejužší jádro a celkem.
host_disk_read_bytes / host_disk_written_bytes DVOJITÝ Vstupně-výstupní svazek disku.
host_network_receive_bytes / host_network_transmit_bytes DVOJITÝ Svazek vstupně-výstupních operací sítě.
lfc_evictions / lfc_hits / lfc_misses / lfc_writes LONG Aktivita místní mezipaměti souborů pro tento interval.
replica_lfc_redo_evictions LONG Vyřazení místní mezipaměti souborů způsobené opakováním repliky, pokud se jedná o repliku pro čtení.

compute_gauges

Sloupec Typ Description
current_lsn LONG Aktuální pozice protokolu před zápisem.
replica_wal_replay_lsn / replica_wal_receive_lsn LONG Wal replay and receive positions, if this compute is a read replica.
max_connections LONG Nakonfigurovaný limit připojení.
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m LONG Odhadovaná velikost pracovní sady za posledních 5, 15 a 60 minut
lfc_size_limit / lfc_allocated / lfc_used LONG Kapacita místní mezipaměti souborů a aktuální využití
total_size_limit / total_size LONG Celková kapacita úložiště a aktuální využití
replication_lag_bytes / replication_lag_time_ms DLOUHÝ / DVOJITÝ Prodleva replikace, pokud se jedná o repliku pro čtení.
host_logical_cpus / host_memory_total_bytes DVOJITÝ Zřízený procesor a paměť výpočetních prostředků.

Databázové metriky

Aktivita pro databázi: změněné řádky, transakce, relace a stav vakua. To je místo, kde tabulka bloudí a autovacuum signály živě.

database_counters

Sloupec Typ Description
datid / datname DLOUHÉ / STRUNOVÉ ID a název objektu databáze.
active_time_ms / idle_in_transaction_time_ms / session_time_ms DVOJITÝ Čas strávený aktivní, nečinný v otevřené transakci a celkově propojený.
deadlocks LONG Počet zjištěných vzájemných zablokování
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated LONG Aktivita na úrovni řádků pro interval
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed LONG Počty životního cyklu relace.
shared_blks_hit / shared_blks_read LONG Aktivita mezipaměti sdílené vyrovnávací paměti.
xact_commit / xact_rollback LONG Potvrzené a vrácené transakce.

database_gauges

Sloupec Typ Description
datid / datname DLOUHÉ / STRUNOVÉ ID a název objektu databáze.
numbackends LONG Aktuální počet připojení k této databázi
size LONG Velikost databáze na disku.
oldest_frozen_xid_age / oldest_mxid_age LONG ID transakce a stáří vícenásobného ID nejstaršího řádku unfrozen. Rostoucí hodnoty jsou nejstarším signálem vakua, který padá za sebou, před tím, než se bloat stane viditelným ve velikosti tabulky.

Omezení

Note

Hesla jsou cenzurována při zachycení výroku, takže zachycené CREATE ROLE heslo znamená PASSWORD '***'. Redakce závisí na detekci hesla ve výkazu a nesprávně zformovaný příkaz může uniknout detekci.

Azure Databricks doporučuje OAuth role, které autentizují identity Azure Databricks pomocí tokenů a nenechávají žádné heslo k psaní.

Platí následující omezení:

  • COPY Operace nejsou zachyceny v historii plánu dotazů.

  • Dotaz spuštěný uvnitř funkce PL/pgSQL nebo procedury se nezachytává v telemetrii na úrovni dotazu, pokud také neběží jako příkaz nejvyšší úrovně. Vlastní sledování příkazů Postgres počítá ve výchozím nastavení pouze příkazy nejvyšší úrovně.

  • Větve a koncové body se v telemetrii a insightech zobrazují podle interního ID (například br-odd-mud-y2icrn1h), nikoli podle zobrazovaného názvu jako "production". Pokud musíte potvrdit, na kterou větev nebo koncový bod se insight nebo tabulkový řádek odkazuje, porovnejte ID v Lakebase UI.

  • GuCs, které umožňují zachytávání telemetrických dat, se nemusí automaticky rozšířit do existujícího výpočetního prostředí. Pokud se telemetrie po zapnutí náhledu nezobrazí, připojte se k projektu a zkontrolujte:

    SHOW neon_monitor.log_capture_enabled;
    SHOW databricks.o11y_exporter_enabled;
    

    Oba musí vrátit on. Pokud kterýkoli z nich vrátí hodnotu off, restartujte výpočetní koncový bod.

Konfigurace dědictví pozorovatelnosti

Než se telemetrie přesunula do systémových tabulek, mohli jste vytvořit konfiguraci pozorovatelnosti, která zachytávala telemetrii do katalogu a schématu ve vašem vlastním Unity katalogu a poskytovala předpřipravené dashboardy. Stávající konfigurace fungují a jejich dashboardy zůstávají dostupné. Už nemůžete vytvářet nové konfigurace pozorovatelnosti a zachycování do systémových tabulek nevytváří dashboardy.

Další kroky