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. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.
Questa pagina documenta le tabelle che Lakebase scrive nello schema del catalogo Unity dopo aver configurato l'osservabilità per un progetto. Informazioni dettagliate e Genie leggono gli stessi dati e, poiché vengono inseriti nel proprio Catalogo Unity, è possibile eseguire query direttamente con qualsiasi strumento di Azure Databricks.
Note
Si tratta di una funzionalità beta. I nomi delle tabelle e delle colonne potrebbero cambiare prima della disponibilità generale.
Cosa viene acquisito
Lakebase acquisisce i segnali che un DBA esperto cercherebbe e li fa confluire in una manciata di tabelle che puoi interrogare direttamente una volta esportate:
| Elementi acquisiti | Dove atterra |
|---|---|
| Sessioni attive ed eventi di attesa |
active_session_history, wait_event_counters |
| Piani di query e statistiche di esecuzione per query |
plan_history, pg_stat_statements_counters |
| Modifiche dello schema: cosa è cambiato, quando e da chi | ddl_history |
| Statistiche del database: dimensioni, righe lette e modificate e conteggi delle sessioni |
database_counters, database_gauges |
| Utilizzo delle risorse di calcolo: CPU, memoria, cache, connessioni |
compute_counters, compute_gauges |
| Messaggi di log grezzi di Postgres, incluso l'errore alla base di un guasto | postgres_logs |
Insights e Genie leggono questi dati per fondare le loro risposte su ciò che è realmente accaduto nel tuo database, e le stesse tabelle alimentano le dashboard di osservabilità pronte a condizioni. Il resto di questa pagina documenta ogni colonna di ogni tabella.
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. |
plan_json |
filo | Piano di query completo, come JSON. |
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. |
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. |
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. |
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. |
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. |
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
Warning
Se si creano ruoli per connettere applicazioni, una password digitata in un'istruzione SQL CREATE ROLE ... PASSWORD '...' può finire nella cronologia delle query o delle istruzioni. Crea il ruolo tramite interfaccia utente, SDK, API o CLI, che generano la password lato server così non la digiti mai come testo chiaro. L'interfaccia mostra la password generata una sola volta. SDK, API e CLI non lo restituiscono, quindi ottieni una password dopo. Vedi Come ottenere una password.
Durante la versione beta, si applicano le limitazioni seguenti:
COPYle operazioni non sono attualmente registrate nella cronologia del piano di query.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.
I rami e gli endpoint vengono visualizzati nei dati di telemetria e nelle informazioni dettagliate esportate in base all'ID interno (ad esempio,
br-odd-mud-y2icrn1h), non con un nome visualizzato come "produzione". Fare riferimento incrociato all'ID nell'interfaccia utente di Lakebase se è necessario confermare il ramo o l'endpoint a cui fa riferimento una riga di informazioni dettagliate o di tabella.I GUC che abilitano la raccolta della telemetria potrebbero non essere propagati automaticamente a un compute esistente. Se i dati di telemetria non vengono visualizzati dopo la configurazione dell'osservabilità, connettersi al progetto e controllare:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Entrambi devono restituire
on. Se restituisceoff, riavviare l'endpoint di calcolo.
Passaggi successivi
- Trova e risolvi problemi con Insights: vedi questi dati emersi come diagnosi, non righe grezze.
- Investiga con Genie: fai domande su questa telemetria con le tue parole.