Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Den här funktionen finns i Beta. För att använda det måste en administratör för arbetsytan slå på Lakebase Observability i Systemtabeller från sidan Förhandsgranskningar . Se Hantera förhandsversioner av Azure Databricks.
Lakebase fångar sin observerbarhetstelemetri i schemat system.lakebase , med början i avancerade Postgres-signaler. Fångsten sker automatiskt. Med den förhandsvisningen aktiverad landar telemetrin i dessa tabeller medan projektets beräkning körs. Det finns ingen konfiguration att skapa, ingen destination att välja och inga inloggningsuppgifter att tillhandahålla.
Insights och Genie läser samma tabeller, och du kan fråga dem med vilket Azure Databricks-verktyg som helst.
Note
Tabell- och kolumnnamn kan ändras före allmän tillgänglighet.
Kravspecifikation
- Lakebase Observability i System Tables förhandsgranskning aktiverad för din arbetsyta.
- Ett Lakebase-projekt på AWS eller Azure. Se Hämta en Postgres-databas.
Vad som fångas
Lakebase registrerar de signaler du behöver för att förklara en långsam eller misslyckad databas, över följande tabeller:
| Vad som fångas | Tabellnamn |
|---|---|
| Aktiva sessioner och väntehändelser |
system.lakebase.active_session_history, system.lakebase.wait_event_counters |
| Frågeplaner och körningsstatistik per fråga |
system.lakebase.plan_history, system.lakebase.pg_stat_statements_counters |
| Schemaändringar: vad som har ändrats, när och av vem | system.lakebase.ddl_history |
| Databasstatistik: storlek, rader som lästs och ändrats samt antal sessioner |
system.lakebase.database_counters, system.lakebase.database_gauges |
| Beräkningsresursanvändning: CPU, minne, cacheminne, anslutningar |
system.lakebase.compute_counters, system.lakebase.compute_gauges |
| Råa Postgres-loggmeddelanden, inklusive det bakomliggande felet vid ett misslyckande | system.lakebase.postgres_logs |
Handlingar sparas i 7 dagar. Resten av denna sida dokumenterar varje kolumn i varje tabell. För var dessa tabeller placeras bland de andra systemtabellerna, se Lakebase systemtabellreferens.
Åtkomst
Tabellerna system.lakebase styrs av Unity Catalog. Användare med både kontoadministratör och metastoreadministratör kan läsa telemetrin och hantera åtkomst till den. Se avsnitt Hantera privilegier i Unity Catalog.
Access gäller på schemanivå, så en användare som kan läsa system.lakebase ser telemetri för varje projekt i kontot.
Maskerad uttalandetext
Kolumner som innehåller kontotexten returnerar <REDACTED> om du inte är kontoadministratör eller medlem i databricks_pii_access kontogruppen. En kontoadministratör skapar och hanterar den gruppen.
Se Skapa och hantera databricks_pii_access gruppen samt Åtkomst till maskerad statementtext.
Kolumner som är gemensamma för varje tabell
Varje tabell nedan innehåller dessa kolumner som identifierar var en rad kommer ifrån:
| Column | Typ | Description |
|---|---|---|
project_id |
STRING | Lakebase-projektet som raden kom från. |
branch_id |
STRING | Grenen som raden kom från. |
endpoint_id |
STRING | Beräkningsslutpunkten som raden kom från. |
compute_id |
STRING | Den specifika beräkningsinstansen. Detta ändras när en beräkning skalar till noll och återupptas. |
ts |
TIMESTAMP | När raden spelades in. |
compute_mode |
STRING | Beräkningsläget vid den tidpunkten, till exempel skrivskyddad eller skrivskyddad. |
Tabeller med namn som slutar i _counters innehåller också en previous_ts kolumn som markerar början på intervallet som en rads värden ackumuleras över. Det här är kumulativa värden för det intervallet, inte punkt-i-tid-avläsningar. Tabeller som slutar i _gauges är punkt-i-tid-avläsningar i stället och har inga previous_ts.
Tabellerna nedan visar bara kolumner utöver dessa vanliga.
Sessionsaktivitet
En ögonblicksbild av varje aktiv serverdel som samplas kontinuerligt. Det här är samma mönster som AWS Performance Insights eller Oracles active session history (ASH): om en session gör något, inklusive väntar, visas den här.
active_session_history
| Column | Typ | Description |
|---|---|---|
sample_seq |
LONG | Det här exemplets ordningstal i batchen. |
pid |
LONG | Serverdelens process-ID. |
datid |
LONG | Databasens objekt-ID. |
userid |
LONG | Den anslutande rollens objekt-ID. |
queryid |
LONG | Identifierar frågan som körs. Matchar queryid i pg_stat_statements_counters. |
wait_event_info |
LONG | Intern kodning av väntehändelsen. |
wait_event_type |
STRING | Väntehändelsens kategori, till exempel Timeout eller Lock. |
wait_event |
STRING | Den specifika väntehändelsen, till exempel PgSleep. |
backend_state |
LONG | Serverdelens tillstånd, till exempel aktiv eller inaktiv. |
backend_type |
LONG | Typ av serverdelsprocess. |
xact_age_ms |
LONG | Hur länge den aktuella transaktionen har varit öppen. |
query_age_ms |
LONG | Hur länge den aktuella frågan har körts. |
blocking_pid |
LONG | PID för en session som blockerar den här, om någon. |
leader_pid |
LONG | PID för den parallella frågeledaren om den här serverdelen är en parallell arbetare. |
flags |
LONG | Interna statusflaggor. |
plan_fingerprint |
LONG | Länkar till en specifik planform i plan_history. |
appname_hash |
LONG | En hash för det anslutande programmets namn. |
Vänta händelser
Aggregerade antal väntehändelser och tid som komplement till vyn per exempel i active_session_history.
wait_event_counters
| Column | Typ | Description |
|---|---|---|
wait_event_id |
LONG | Intern kodning av väntehändelsen. |
wait_class_name |
STRING | Väntehändelsens kategori. |
wait_event_name |
STRING | Den specifika väntehändelsen. |
wait_event_count |
LONG | Hur många gånger den här väntehändelsen inträffade i intervallet. |
wait_event_time |
Dubbel | Total tid i den här väntehändelsen under intervallet. |
Frågeplaner
En post per körning med frågeplaner, inklusive den fullständiga planen och Neon-specifik lagringsstatistik. Det här är den mest detaljerade tabellen, och vanligtvis där en undersökning med långsamma frågor hamnar.
plan_history
| Column | Typ | Description |
|---|---|---|
row_position |
LONG | Ordningstalet för den här raden i dess batch. |
analyze_enabled |
Boolean | Om planen innehåller faktisk körningsstatistik (EXPLAIN ANALYZE), inte bara uppskattningar. |
buffers_enabled |
Boolean | Om planen innehåller buffertanvändningsstatistik. |
query_hash |
STRING | Hash som identifierar frågetexten. |
queryid |
LONG | Identifierar frågan. Matchar queryid i pg_stat_statements_counters och active_session_history. |
duration_ms |
Dubbel | Hur lång tid det tog att köra frågan. |
total_cost |
Dubbel | Planerarens uppskattade kostnad för frågan. |
plan_rows |
LONG | Planerarens uppskattade radantal. |
actual_rows |
LONG | Det faktiska radantalet returnerades. |
plan_fingerprint |
LONG | Identifierar den här specifika planformen. Matchar plan_fingerprint i active_session_history. |
lock_wait_time_ms |
Dubbel | Tid som spenderas på att vänta på lås. |
planning_time_ms |
Dubbel | Tid som ägnas åt att planera frågan, separat från körning. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Delad buffertcacheaktivitet för den här körningen. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Lokal buffertaktivitet för temporära tabeller. |
temp_blks_read / temp_blks_written |
LONG | Tillfällig filaktivitet, till exempel från en stor sortering eller hash. |
neon_getpage_count |
LONG | Antal sidbegäranden som skickats till sidservern. |
neon_file_cache_hits |
LONG | Antal sidor som hanteras från den lokala filcachen i stället för sidservern. |
neon_getpage_wait_us |
LONG | Tid som ägnas åt att vänta på sidbegäranden för sidservrar i mikrosekunder. |
backend_pid |
LONG | Serverdelsprocessens ID som körde den här frågan. |
lock_wait_count |
LONG | Antal gånger som den här körningen väntade på ett lås. |
userid / dbid |
LONG | Anslutningsrollens och databasens objekt-ID:er. |
query_text |
STRING | Frågetexten. Maskerad. Se Masked statement-text. |
plan_json |
STRING | Den fullständiga frågeplanen, som JSON. Maskerad. Se Masked statement-text. |
usename / datname |
STRING | Anslutningsrollens och databasens namn. |
application_name / client_addr |
STRING | Det anslutande programmets namn och klientadress. |
wait_events |
STRING | Väntehändelser som observerats under den här körningen. |
parameters |
STRING | Eventuella bindningsparametrar som används i frågan. Maskerad. Se Masked statement-text. |
blocking_pids |
STRING | PID:er för sessioner som blockerade den här körningen, om några. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
STRING | Interna Neon-identifierare för grenen, slutpunkten och tidslinjen. |
cpu_user_time_ms / cpu_sys_time_ms |
Dubbel | CPU-tid som förbrukas av den här körningen, uppdelad i användar- och systemtid. |
voluntary_csw / involuntary_csw |
LONG | Kontextväxlar under den här körningen. |
trace_id / span_id / trace_flags / service_name |
STRING/STRING/LONG/STRING | OpenTelemetry-stil spårningsidentifierare, om frågan var en del av en spårad begäran. |
timeline_id |
LONG | Intern tidslinjeidentifierare. |
truncated |
Boolean | Om den här radens data (till exempel en stor plan) trunkerades innan de skrevs. |
Frågestatistik
Aggregerad statistik per fråga som kommer från standardtillägget pg_stat_statements .
pg_stat_statements_counters
| Column | Typ | Description |
|---|---|---|
userid / dbid |
LONG | Anslutningsrollens och databasens objekt-ID:er. |
queryid |
LONG | Identifierar frågan. Matchar queryid i plan_history och active_session_history. |
toplevel |
Boolean | Om den här raden är för en top-level-instruktion, till skillnad från en kapslad i en PL/pgSQL-funktion eller procedur. Se PL/pgSQL-begränsningen. |
query |
STRING | Frågetexten. Maskerad. Se Masked statement-text. |
calls |
LONG | Antal gånger som den här frågan kördes i intervallet. |
plans |
LONG | Antal gånger som den här frågan planerades i intervallet. |
rows |
LONG | Totalt antal rader som returneras eller påverkas. |
total_exec_time / total_plan_time |
Dubbel | Total tid som ägnas åt att köra och planera den här frågan i intervallet. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Delad buffertcacheaktivitet. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Lokal buffertaktivitet för temporära tabeller. |
temp_blks_read / temp_blks_written |
LONG | Tillfällig filaktivitet. |
wal_bytes / wal_fpi / wal_records |
LONG | Loggvolym för framåtskrivning som genereras av den här frågan. |
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time |
Mixed | JIT-kompileringsstatistik (just-in-time) om JIT användes för den här frågan. |
Schemaändringar
Schemaändringar: vad som har ändrats, när och av vem. Det här är vad Genie läser för att spåra en incident tillbaka till en schemaändring, oavsett om det är från en distribution eller en manuell redigering.
ddl_history
| Column | Typ | Description |
|---|---|---|
row_position |
LONG | Ordningstalet för den här raden i dess batch. |
command_tag |
STRING | Typ av DDL-kommando, till exempel ALTER TABLE. |
object_type / object_name |
STRING | Typ och namn på objektet som ändrades. |
schema_name |
STRING | Postgres-schemat som objektet tillhör. |
query_text |
STRING | Den fullständiga DDL-instruktionen. Maskerad. Se Masked statement-text. |
duration_ms |
Dubbel | Hur lång tid det tog att köra DDL-instruktionen. |
userid / usename |
LONG/STRING | Den anslutande rollens objekt-ID och namn. |
application_name |
STRING | Namnet på det anslutande programmet. |
backend_pid |
LONG | Serverdelsprocessens ID som körde -instruktionen. |
dbid |
LONG | Databasens objekt-ID. |
search_path |
STRING | Sessionens sökväg vid den tidpunkten. |
ddl_json |
STRING | En strukturerad, tolkad representation av DDL-instruktionen. Maskerad. Se Masked statement-text. |
Note
DDL-avbildningen har en verklig lucka: en ändring som görs runt en beräkning som återupptas från skala till noll kan missas. Om en schemaändring inte visas här trots att du vet att det har hänt är det den troligaste orsaken. Se Begränsningar.
Postgres-loggar
Raw Postgres-loggmeddelanden, inklusive det specifika felet bakom ett fel.
postgres_logs
| Column | Typ | Description |
|---|---|---|
sample_seq |
LONG | Ordningstalet för den här raden i dess batch. |
elevel |
LONG | Intern kodning på loggnivå. |
severity |
STRING | Loggens allvarlighetsgrad, till exempel ERROR eller LOG. |
sqlstate |
STRING | Postgres SQLSTATE-felkoden, till exempel 42703 för en odefinierad kolumn. |
backend_pid / leader_backend_pid |
LONG | Serverdelsprocessens ID och dess parallella frågeledares PID om tillämpligt. |
userid / usename |
LONG/STRING | Den anslutande rollens objekt-ID och namn. |
datid / datname |
LONG/STRING | Databasens objekt-ID och namn. |
application_name / client_addr |
STRING | Det anslutande programmets namn och klientadress. |
schema_name / table_name / column_name / constraint_name / datatype_name |
STRING | Schemat, tabellen, kolumnen, villkoret eller datatypen som refereras till av felet, när Postgres har en. |
funcname |
STRING | Funktionen som felet inträffade i, om tillämpligt. |
filename / lineno |
STRÄNG/LONG | Postgres-källfilen och rad felet kommer från. |
message |
STRING | Loggmeddelandetexten. |
detail / hint / context |
STRING | Ytterligare information, en föreslagen korrigering och felets kontext, när Postgres har dem. |
internalquery |
STRING | En internt genererad fråga som är relaterad till felet, om tillämpligt. |
statement |
STRING | Instruktionen som utlöste den här loggposten. Maskerad. Se Masked statement-text. |
truncated_mask |
LONG | Anger vilka fält, om några, trunkerades innan de skrevs. |
Note
De strukturerade schema_namefälten , table_nameoch column_name fylls inte i för varje feltyp. Ett vanligt parsningsfel för "kolumnen finns inte" (SQLSTATE 42703lämnar dem till exempel tomma trots message att kolumnen namnges direkt. Förlita dig inte på att fälten fylls i. Kontrollera message först.
Beräkna mätvärden
Resursanvändning på beräkningsnivå: CPU, minne, disk och nätverks-I/O och den lokala filcachen (LFC), Lakebase-cachen på beräkningssidan framför sidservern.
compute_counters
| Column | Typ | Description |
|---|---|---|
backpressure_throttling_seconds |
Dubbel | Tid då lagringsskiktet spenderade på att begränsa skrivningar i det här intervallet. Ett värde som inte är noll innebär att skrivvolymen överskred den lagring som kan absorberas. |
host_busiest_cpu_seconds / host_cpu_seconds |
Dubbel | Cpu-tid förbrukas, för den mest trafikerade kärnan och totalt. |
host_disk_read_bytes / host_disk_written_bytes |
Dubbel | Disk-I/O-volym. |
host_network_receive_bytes / host_network_transmit_bytes |
Dubbel | Nätverks-I/O-volym. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Lokal filcacheaktivitet för det här intervallet. |
replica_lfc_redo_evictions |
LONG | Borttagning av lokal filcache som orsakas av replikfördreplikering, om den här beräkningen är en läsreplik. |
compute_gauges
| Column | Typ | Description |
|---|---|---|
current_lsn |
LONG | Den aktuella loggpositionen för framåtskrivning. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | WAL spelar upp och tar emot positioner, om den här beräkningen är en läsreplik. |
max_connections |
LONG | Den konfigurerade anslutningsgränsen. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Uppskattad arbetsuppsättningsstorlek under de senaste 5, 15 och 60 minuterna. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Lokal filcachekapacitet och aktuell användning. |
total_size_limit / total_size |
LONG | Total lagringskapacitet och aktuell användning. |
replication_lag_bytes / replication_lag_time_ms |
LONG/DOUBLE | Replikeringsfördröjning om den här beräkningen är en läsreplik. |
host_logical_cpus / host_memory_total_bytes |
Dubbel | Beräkningens etablerade CPU och minne. |
Databasmått
Aktivitet per databas: ändrade rader, transaktioner, sessioner och vakuumhälsa. Det är här tabellens uppsvällda och autovacuumsignaler lever.
database_counters
| Column | Typ | Description |
|---|---|---|
datid / datname |
LONG/STRING | Databasens objekt-ID och namn. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
Dubbel | Tid som ägnas åt aktiv, inaktiv i en öppen transaktion och ansluten överlag. |
deadlocks |
LONG | Antal identifierade dödlägen. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Aktivitet på radnivå för intervallet. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Antal sessionslivscykler. |
shared_blks_hit / shared_blks_read |
LONG | Delad buffertcacheaktivitet. |
xact_commit / xact_rollback |
LONG | Bekräftade och återställda transaktioner. |
database_gauges
| Column | Typ | Description |
|---|---|---|
datid / datname |
LONG/STRING | Databasens objekt-ID och namn. |
numbackends |
LONG | Aktuellt antal anslutningar till den här databasen. |
size |
LONG | Databasens storlek på disken. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | Transaktions-ID och multixact-ID-ålder för den äldsta avfrysta raden. Stigande värden är den tidigaste signalen av vakuum som faller efter, långt innan uppblåsthet blir synlig i tabellstorlek. |
Limitations
Note
Lösenord censureras när ett påstående fångas, så en fångad CREATE ROLE text läser PASSWORD '***'. Redaction beror på att lösenordet i uttalandet kan detekteras, och ett felaktigt formulerat uttalande kan undgå upptäckt.
Azure Databricks rekommenderar OAuth-roller, som autentiserar Azure Databricks-identiteter med tokens och lämnar inget lösenord att skriva.
Följande begränsningar gäller:
COPYOperationer fångas inte i frågeplanens historik.En fråga som körs i en PL/pgSQL-funktion eller -procedur samlas inte in i telemetri på frågenivå om den inte också körs som en toppnivåinstruktion. Postgres egen instruktionsspårning räknar endast toppnivåinstruktioner som standard.
Grenar och slutpunkter visas i telemetri och insikter via internt ID (till exempel
br-odd-mud-y2icrn1h), inte med ett visningsnamn som "produktion." Korsreferera ID:t i Lakebase UI om du måste bekräfta vilken gren eller slutpunkt en insikts- eller tabellrad syftar på.GUC:er som aktiverar telemetriinsamling kanske inte propageras automatiskt till en befintlig beräkningsinstans. Om telemetri inte visas efter att förhandsvisningen är aktiverad, koppla upp dig mot projektet och kontrollera:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Måste båda returnera
on. Om någon av dem returneraroffstartar du om beräkningsslutpunkten.
Äldre observabilitetskonfigurationer
Innan telemetrin flyttade till systemtabeller kunde du skapa en observabilitetskonfiguration som fångade telemetri till en katalog och ett schema i din egen Unity-katalog och tillhandahöll förbyggda instrumentpaneler. Befintliga konfigurationer fungerar fortfarande, och deras instrumentpaneler finns fortfarande tillgängliga. Du kan inte längre skapa nya observabilitetskonfigurationer, och registrering till systemtabeller skapar inte instrumentpaneler.
Nästa steg
- Upptäck problem med Insights: agenten som granskar denna telemetri enligt ett schema.
- Undersök och åtgärda problem med Genie: ställ frågor om denna telemetri med dina egna ord.
- Lakebase-systemtabellreferens: var dessa tabeller placeras bland de andra systemtabellerna.