Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í:
COPYOperace 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í hodnotuoff, 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
- Detekce problémů s Insights: agentem, který tuto telemetrii podle plánu kontroluje.
- Prozkoumejte a opravte problémy s Genie: ptejte se na tuto telemetrii vlastními slovy.
- Odkaz na tabulku systému Lakebase: kde se tyto tabulky nacházejí mezi ostatními tabulkami systému.