Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa funzionalità è in versione beta. Per utilizzarlo, un amministratore dello spazio di lavoro deve attivare l'osservabilità di Lakebase nelle Tabelle di Sistema dalla pagina delle anteprime . Vedere Gestire le anteprime di Azure Databricks.
Lakebase cattura la telemetria della sua osservabilità nello system.lakebase schema, a partire dai segnali avanzati di Postgres. La cattura è automatica. Con questa anteprima attivata, la telemetria si posiziona in queste tabelle mentre il calcolo di un progetto viene eseguito. Non c'è una configurazione da creare, nessuna destinazione da scegliere, né credenziali da fornire.
Insights e Genie leggono le stesse tabelle, e puoi interrogarle con qualsiasi strumento di Azure Databricks.
Note
I nomi delle tabelle e delle colonne potrebbero cambiare prima della disponibilità generale.
Requisiti
- L'osservabilità di Lakebase nell'anteprima delle Tabelle di Sistema abilitata per il tuo spazio di lavoro.
- Un progetto Lakebase su AWS o Azure. Vedere Ottenere un database Postgres.
Cosa viene acquisito
Lakebase registra i segnali necessari per spiegare un database lento o in difficoltà, attraverso le seguenti tabelle:
| Elementi acquisiti | Nome della tabella |
|---|---|
| Sessioni attive ed eventi di attesa |
system.lakebase.active_session_history, system.lakebase.wait_event_counters |
| Piani di query e statistiche di esecuzione per query |
system.lakebase.plan_history, system.lakebase.pg_stat_statements_counters |
| Modifiche dello schema: cosa è cambiato, quando e da chi | system.lakebase.ddl_history |
| Statistiche del database: dimensioni, righe lette e modificate e conteggi delle sessioni |
system.lakebase.database_counters, system.lakebase.database_gauges |
| Utilizzo delle risorse di calcolo: CPU, memoria, cache, connessioni |
system.lakebase.compute_counters, system.lakebase.compute_gauges |
| Messaggi di log grezzi di Postgres, incluso l'errore alla base di un guasto | system.lakebase.postgres_logs |
I registri vengono conservati per 7 giorni. Il resto di questa pagina documenta ogni colonna di ogni tabella. Per la posizione di queste tabelle rispetto alle altre tabelle di sistema, vedi riferimento alla tabella di sistema Lakebase.
Access
Le system.lakebase tabelle sono governate da Unity Catalog. Gli utenti con entrambi i ruoli di amministratore account e metastore possono leggere la telemetria e gestire l'accesso. Consulta Gestione dei privilegi in Unity Catalog.
Access si applica a livello di schema, quindi un utente che può leggere system.lakebase vede la telemetria per ogni progetto nell'account.
Testo della dichiarazione mascherata
Le colonne che contengono il testo dell'estratto conto restituiscono <REDACTED> a meno che tu non sia un amministratore dell'account o un membro del databricks_pii_access gruppo a livello account. Un amministratore dell'account crea e gestisce quel gruppo. Vedi Crea e gestisci il databricks_pii_access gruppo e Accedi testo di dichiarazioni mascherate.
Colonne comuni a ogni tabella
Ogni tabella seguente include queste colonne, che identificano la provenienza di una riga:
| Column | Type | Description |
|---|---|---|
project_id |
filo | Il progetto Lakebase da cui proviene la riga. |
branch_id |
filo | Ramo da cui proviene la riga. |
endpoint_id |
filo | Endpoint di calcolo da cui proviene la riga. |
compute_id |
filo | Istanza di calcolo specifica. Ciò cambia quando un calcolo viene ridimensionato a zero e riprende. |
ts |
TIMESTAMP | Quando la riga è stata registrata. |
compute_mode |
filo | La modalità di calcolo al momento, ad esempio lettura/scrittura o sola lettura. |
Le tabelle con nomi che terminano _counters in includono anche una previous_ts colonna, che contrassegna l'inizio dell'intervallo in cui si accumulano i valori di una riga. Questi sono valori cumulativi per tale intervallo, non letture temporizzato. Le tabelle che terminano _gauges in sono invece letture temporizzato e non previous_tshanno .
Le tabelle seguenti elencano solo le colonne oltre a quelle comuni.
Attività di sessione
Snapshot di ogni back-end attivo, campionato in modo continuo. Si tratta dello stesso modello di AWS Performance Insights o della cronologia delle sessioni attive (ASH) di Oracle: se una sessione esegue qualsiasi operazione, inclusa l'attesa, viene visualizzata qui.
active_session_history
| Column | Type | Description |
|---|---|---|
sample_seq |
LONG | Posizione ordinale di questo esempio all'interno del relativo batch. |
pid |
LONG | ID processo del back-end. |
datid |
LONG | ID oggetto del database. |
userid |
LONG | ID oggetto del ruolo di connessione. |
queryid |
LONG | Identifica la query in esecuzione. Corrisponde queryid a in pg_stat_statements_counters. |
wait_event_info |
LONG | Codifica interna dell'evento di attesa. |
wait_event_type |
filo | Categoria dell'evento wait, ad esempio Timeout o Lock. |
wait_event |
filo | Evento di attesa specifico, ad esempio PgSleep. |
backend_state |
LONG | Stato del back-end, ad esempio attivo o inattiva. |
backend_type |
LONG | Tipo di processo back-end. |
xact_age_ms |
LONG | Durata dell'apertura della transazione corrente. |
query_age_ms |
LONG | Durata dell'esecuzione della query corrente. |
blocking_pid |
LONG | PiD di una sessione che blocca questa, se presente. |
leader_pid |
LONG | PID del leader di query parallela, se questo back-end è un ruolo di lavoro parallelo. |
flags |
LONG | Flag di stato interni. |
plan_fingerprint |
LONG | Collegamenti a una forma di piano specifica in plan_history. |
appname_hash |
LONG | Hash del nome dell'applicazione di connessione. |
Eventi di attesa
Conteggi e tempo aggregati degli eventi di attesa, completando la visualizzazione per campione in active_session_history.
wait_event_counters
| Column | Type | Description |
|---|---|---|
wait_event_id |
LONG | Codifica interna dell'evento di attesa. |
wait_class_name |
filo | Categoria dell'evento wait. |
wait_event_name |
filo | Evento di attesa specifico. |
wait_event_count |
LONG | Quante volte si è verificato questo evento di attesa nell'intervallo. |
wait_event_time |
DOPPIO | Tempo totale trascorso in questo evento di attesa durante l'intervallo. |
Piani di query
Record per esecuzione di piani di query, inclusi i piani completi e le statistiche di archiviazione specifiche di Neon. Si tratta della tabella più dettagliata e, in genere, in cui un'analisi delle query lente finisce.
plan_history
| Column | Type | Description |
|---|---|---|
row_position |
LONG | Posizione ordinale di questa riga all'interno del relativo batch. |
analyze_enabled |
BOOLEAN | Indica se il piano include statistiche di esecuzione effettive (EXPLAIN ANALYZE), non solo stime. |
buffers_enabled |
BOOLEAN | Indica se il piano include statistiche di utilizzo del buffer. |
query_hash |
filo | Hash che identifica il testo della query. |
queryid |
LONG | Identifica la query. Trova le corrispondenze queryid in pg_stat_statements_counters e active_session_history. |
duration_ms |
DOPPIO | Durata dell'esecuzione della query. |
total_cost |
DOPPIO | Costo stimato per la query. |
plan_rows |
LONG | Conteggio delle righe stimato del pianificatore. |
actual_rows |
LONG | Conteggio effettivo delle righe restituito. |
plan_fingerprint |
LONG | Identifica questa forma di piano specifica. Corrisponde plan_fingerprint a in active_session_history. |
lock_wait_time_ms |
DOPPIO | Tempo trascorso in attesa di blocchi. |
planning_time_ms |
DOPPIO | Tempo impiegato per la pianificazione della query, separato dall'esecuzione. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Attività cache del buffer condiviso per questa esecuzione. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Attività del buffer locale, per le tabelle temporanee. |
temp_blks_read / temp_blks_written |
LONG | Attività di file temporanei, ad esempio da un ordinamento o un hash di grandi dimensioni. |
neon_getpage_count |
LONG | Numero di richieste di pagina inviate al server di paging. |
neon_file_cache_hits |
LONG | Numero di pagine servite dalla cache dei file locale anziché dal server di paging. |
neon_getpage_wait_us |
LONG | Tempo impiegato per l'attesa nelle richieste di pagina del server di pagine, in microsecondi. |
backend_pid |
LONG | ID del processo back-end che ha eseguito questa query. |
lock_wait_count |
LONG | Numero di volte in cui l'esecuzione ha atteso un blocco. |
userid / dbid |
LONG | ID oggetto del ruolo e del database di connessione. |
query_text |
filo | Testo della query. Mascherato. Vedi testo della dichiarazione mascherata. |
plan_json |
filo | Piano di query completo, come JSON. Mascherato. Vedi testo della dichiarazione mascherata. |
usename / datname |
filo | Nomi del ruolo di connessione e del database. |
application_name / client_addr |
filo | Nome e indirizzo client dell'applicazione di connessione. |
wait_events |
filo | Eventi di attesa osservati durante questa esecuzione. |
parameters |
filo | Associare i parametri usati nella query, se presenti. Mascherato. Vedi testo della dichiarazione mascherata. |
blocking_pids |
filo | PID di sessioni che bloccavano l'esecuzione, se presenti. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
filo | Identificatori Neon interni per il ramo, l'endpoint e la sequenza temporale. |
cpu_user_time_ms / cpu_sys_time_ms |
DOPPIO | Tempo cpu utilizzato da questa esecuzione, suddiviso in tempo utente e di sistema. |
voluntary_csw / involuntary_csw |
LONG | Il contesto cambia durante l'esecuzione. |
trace_id / span_id / trace_flags / service_name |
STRING/STRING/LONG/STRING | Identificatori di traccia in stile OpenTelemetry, se la query faceva parte di una richiesta tracciata. |
timeline_id |
LONG | Identificatore interno della sequenza temporale. |
truncated |
BOOLEAN | Indica se i dati di questa riga (ad esempio, un piano di grandi dimensioni) sono stati troncati prima di essere scritti. |
Statistiche query
Statistiche aggregate per query, generate dall'estensione standard pg_stat_statements .
pg_stat_statements_counters
| Column | Type | Description |
|---|---|---|
userid / dbid |
LONG | ID oggetto del ruolo e del database di connessione. |
queryid |
LONG | Identifica la query. Trova le corrispondenze queryid in plan_history e active_session_history. |
toplevel |
BOOLEAN | Indica se questa riga è destinata a un'istruzione di primo livello, anziché un'istruzione nidificata all'interno di una funzione o una routine PL/pgSQL. Vedere la limitazione di PL/pgSQL. |
query |
filo | Testo della query. Mascherato. Vedi testo della dichiarazione mascherata. |
calls |
LONG | Numero di esecuzioni della query nell'intervallo. |
plans |
LONG | Numero di volte in cui la query è stata pianificata nell'intervallo. |
rows |
LONG | Totale righe restituite o interessate. |
total_exec_time / total_plan_time |
DOPPIO | Tempo totale impiegato per l'esecuzione e la pianificazione di questa query nell'intervallo. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Attività cache del buffer condiviso. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Attività del buffer locale, per le tabelle temporanee. |
temp_blks_read / temp_blks_written |
LONG | Attività file temporanea. |
wal_bytes / wal_fpi / wal_records |
LONG | Volume del log write-ahead generato da questa query. |
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time |
Mixed | Statistiche di compilazione JIT (JUST-In-Time), se JIT è stato usato per questa query. |
Modifiche agli schemi
Modifiche dello schema: cosa è cambiato, quando e da chi. Questo è ciò che Genie legge per tracciare un evento imprevisto a una modifica dello schema, sia da una distribuzione che da una modifica manuale.
ddl_history
| Column | Type | Description |
|---|---|---|
row_position |
LONG | Posizione ordinale di questa riga all'interno del relativo batch. |
command_tag |
filo | Tipo di comando DDL, ad esempio ALTER TABLE. |
object_type / object_name |
filo | Tipo e nome dell'oggetto modificato. |
schema_name |
filo | Lo schema Postgres a cui appartiene l'oggetto. |
query_text |
filo | Istruzione DDL completa. Mascherato. Vedi testo della dichiarazione mascherata. |
duration_ms |
DOPPIO | Durata dell'esecuzione dell'istruzione DDL. |
userid / usename |
LONG/STRING | ID e nome dell'oggetto del ruolo di connessione. |
application_name |
filo | Nome dell'applicazione di connessione. |
backend_pid |
LONG | ID del processo back-end che ha eseguito l'istruzione. |
dbid |
LONG | ID oggetto del database. |
search_path |
filo | Percorso di ricerca della sessione al momento. |
ddl_json |
filo | Rappresentazione strutturata e analizzata dell'istruzione DDL. Mascherato. Vedi testo della dichiarazione mascherata. |
Note
L'acquisizione DDL presenta un divario reale: una modifica apportata in base a una ripresa di calcolo da scale a zero può essere ignorata. Se una modifica dello schema non viene visualizzata qui anche se si sa che è successo, questo è il motivo più probabile. Vedere Limitazioni.
Log postgres
Messaggi di log Postgres non elaborati, incluso l'errore specifico dietro un errore.
postgres_logs
| Column | Type | Description |
|---|---|---|
sample_seq |
LONG | Posizione ordinale di questa riga all'interno del relativo batch. |
elevel |
LONG | Codifica a livello di log interno. |
severity |
filo | Gravità del log, ad esempio ERROR o LOG. |
sqlstate |
filo | Codice di errore DI POSTGRES SQLSTATE, ad esempio 42703 per una colonna non definita. |
backend_pid / leader_backend_pid |
LONG | ID processo back-end e PID del responsabile di query paralleli, se applicabile. |
userid / usename |
LONG/STRING | ID e nome dell'oggetto del ruolo di connessione. |
datid / datname |
LONG/STRING | ID e nome dell'oggetto del database. |
application_name / client_addr |
filo | Nome e indirizzo client dell'applicazione di connessione. |
schema_name / table_name / column_name / constraint_name / datatype_name |
filo | Schema, tabella, colonna, vincolo o tipo di dati a cui fa riferimento l'errore, quando Postgres ne ha uno. |
funcname |
filo | Funzione in cui si è verificato l'errore, se applicabile. |
filename / lineno |
STRING/LONG | Il file di origine Postgres e la riga da cui ha avuto origine l'errore. |
message |
filo | Testo del messaggio di log. |
detail / hint / context |
filo | Dettagli aggiuntivi, correzione suggerita e contesto dell'errore, quando Postgres li contiene. |
internalquery |
filo | Query generata internamente correlata all'errore, se applicabile. |
statement |
filo | Istruzione che ha attivato questa voce di log. Mascherato. Vedi testo della dichiarazione mascherata. |
truncated_mask |
LONG | Indica quali campi, se presenti, sono stati troncati prima di essere scritti. |
Note
I campi strutturati schema_name, table_namee column_name non vengono popolati per ogni tipo di errore. Un semplice errore di analisi della "colonna non esiste" (SQLSTATE 42703), ad esempio, li lascia vuoti anche se message denomina direttamente la colonna. Non fare affidamento su questi campi popolati. Controllare message prima di tutto.
Metriche di calcolo
Utilizzo delle risorse a livello di calcolo: CPU, memoria, I/O di rete e cache dei file locali (LFC), cache lato calcolo di Lakebase davanti al server di paging.
compute_counters
| Column | Type | Description |
|---|---|---|
backpressure_throttling_seconds |
DOPPIO | Tempo impiegato dal livello di archiviazione per le scritture di limitazione in questo intervallo. Un valore diverso da zero indica che il volume di scrittura ha superato ciò che lo spazio di archiviazione può assorbire. |
host_busiest_cpu_seconds / host_cpu_seconds |
DOPPIO | Tempo cpu utilizzato, per il core più bussato e in totale. |
host_disk_read_bytes / host_disk_written_bytes |
DOPPIO | Volume di I/O su disco. |
host_network_receive_bytes / host_network_transmit_bytes |
DOPPIO | Volume di I/O di rete. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Attività della cache dei file locali per questo intervallo. |
replica_lfc_redo_evictions |
LONG | Eliminazioni della cache dei file locali causate dal rollforward della replica, se questo calcolo è una replica di lettura. |
compute_gauges
| Column | Type | Description |
|---|---|---|
current_lsn |
LONG | Posizione corrente del log write-ahead. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | Riesecuzione e ricezione di WAL, se questo calcolo è una replica di lettura. |
max_connections |
LONG | Limite di connessione configurato. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Dimensioni stimate del set di lavoro negli ultimi 5, 15 e 60 minuti. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Capacità della cache dei file locali e utilizzo corrente. |
total_size_limit / total_size |
LONG | Capacità di archiviazione complessiva e utilizzo corrente. |
replication_lag_bytes / replication_lag_time_ms |
LONG/DOUBLE | Ritardo replica, se questo calcolo è una replica di lettura. |
host_logical_cpus / host_memory_total_bytes |
DOPPIO | CPU e memoria di cui è stato effettuato il provisioning. |
Metriche del database
Attività per database: righe modificate, transazioni, sessioni e integrità del vuoto. Questo è il percorso in cui vivono i segnali di blob di tabella e autovacuum.
database_counters
| Column | Type | Description |
|---|---|---|
datid / datname |
LONG/STRING | ID e nome dell'oggetto del database. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
DOPPIO | Tempo trascorso attivo, inattiva in una transazione aperta e connesso complessivamente. |
deadlocks |
LONG | Numero di deadlock rilevati. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Attività a livello di riga per l'intervallo. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Conteggi del ciclo di vita della sessione. |
shared_blks_hit / shared_blks_read |
LONG | Attività cache del buffer condiviso. |
xact_commit / xact_rollback |
LONG | Transazioni di cui è stato eseguito il commit e il rollback. |
database_gauges
| Column | Type | Description |
|---|---|---|
datid / datname |
LONG/STRING | ID e nome dell'oggetto del database. |
numbackends |
LONG | Numero corrente di connessioni al database. |
size |
LONG | Dimensioni del database su disco. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | ID transazione e validità dell'ID multixact della riga meno recente di unfrozen. I valori crescenti sono il primo segnale di vuoto che cade dietro, ben prima che il bloat diventa visibile nelle dimensioni della tabella. |
Limitations
Note
Le password vengono oscurate quando viene catturata un'affermazione, quindi una cattura CREATE ROLE legge PASSWORD '***'. La redazione dipende dal rilevare la password nell'istruzione, e un'istruzione distorta può sfuggire al rilevamento.
Azure Databricks raccomanda i ruoli OAuth, che autenticano le identità di Azure Databricks con i token e non lasciano alcuna password per digitare.
Si applicano le limitazioni seguenti:
COPYLe operazioni non sono registrate nella cronologia del piano di richiesta.Una query eseguita all'interno di una funzione o procedura PL/pgSQL non viene rilevata nella telemetria a livello di query, a meno che non venga eseguita anche come istruzione di livello superiore. Il tracciamento delle istruzioni integrato in Postgres conta solo le istruzioni di primo livello per impostazione predefinita.
Branch e endpoint appaiono in telemetry and insights tramite ID interno (ad esempio,
br-odd-mud-y2icrn1h), non tramite un nome visualizzato come "production". Incrocia l'ID nell'interfaccia di Lakebase se devi confermare a quale branch o endpoint si riferisce una riga di insight o tabella.I GUC che abilitano la raccolta della telemetria potrebbero non essere propagati automaticamente a un compute esistente. Se la telemetria non appare dopo che l'anteprima è stata abilitata, collegati al progetto e controlla:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Entrambi devono restituire
on. Se restituisceoff, riavviare l'endpoint di calcolo.
Configurazioni di osservabilità legacy
Prima che la telemetria passasse alle tabelle di sistema, si poteva creare una configurazione di osservabilità che catturasse la telemetria su un catalogo e uno schema nel proprio Unity Catalog e fornisse dashboard precostruite. Le configurazioni esistenti continuano a funzionare e i loro cruscotti restano disponibili. Non puoi più creare nuove configurazioni di osservabilità, e la cattura nelle tabelle di sistema non crea dashboard.
Passaggi successivi
- Rileva problemi con Insights: l'agente che esamina questa telemetria secondo un programma.
- Indaga e risolvi i problemi con Genie: fai domande su questa telemetria con parole tue.
- Riferimento alla tabella di sistema Lakebase: dove queste tabelle si collocano tra le altre tabelle di sistema.