Telemetri Lakebase dalam tabel sistem

Important

Fitur ini ada di Beta. Untuk menggunakannya, admin workspace harus mengaktifkan Lakebase Observability di System Tables dari halaman Preview . Lihat Kelola Pratinjau Azure Databricks.

Dengan pratinjau Observabilitas Lakebase di System Tables diaktifkan, Lakebase menangkap telemetri observabilitas ke dalam system.lakebase skema, dimulai dengan sinyal Postgres tingkat lanjut. Pengambilan akan dimulai secara otomatis saat komputasi proyek berjalan. Anda tidak perlu membuat konfigurasi, memilih tujuan, atau memberikan kredensial. Insights dan Genie membaca tabel yang sama, dan Anda dapat melakukan query dengan alat Azure Databricks apa pun.

Note

Nama tabel dan kolom mungkin berubah sebelum ketersediaan umum.

Requirements

  • Ruang kerja Anda harus mengaktifkan pratinjau Lakebase Observability di System Tables . Admin workspace dapat mengaktifkannya dari halaman Pratinjau. Mengaktifkan pratinjau Lakebase Insights juga akan meaktifkannya jika belum diaktifkan.
  • Anda membutuhkan proyek Lakebase di AWS atau Azure. Lihat Mendapatkan database Postgres.

Apa yang akan ditangkap

Lakebase merekam sinyal yang Anda butuhkan untuk menjelaskan database yang lambat atau gagal, di tabel-tabel berikut:

Apa yang ditangkap nama tabel
Sesi aktif dan acara tunggu system.lakebase.active_session_history, system.lakebase.wait_event_counters
Rencana kueri dan statistik eksekusi per kueri system.lakebase.plan_history, system.lakebase.pg_stat_statements_counters
Perubahan skema: apa yang berubah, kapan, dan oleh siapa system.lakebase.ddl_history
Statistik database: ukuran, baris yang dibaca dan dimodifikasi, dan jumlah sesi system.lakebase.database_counters, system.lakebase.database_gauges
Penggunaan sumber daya komputasi: CPU, memori, cache, koneksi system.lakebase.compute_counters, system.lakebase.compute_gauges
Pesan log Postgres mentah, termasuk kesalahan di balik kegagalan system.lakebase.postgres_logs

Catatan disimpan selama 7 hari. Sisa halaman ini mendokumentasikan setiap kolom di setiap tabel. Untuk posisi tabel-tabel ini di antara tabel sistem lainnya, lihat referensi tabel sistem Lakebase.

Access

Tabel-tabel tersebut system.lakebase diatur oleh Unity Catalog. Pengguna dengan peran admin akun dan admin metastore dapat membaca telemetry dan mengelola aksesnya. Lihat Kelola hak akses di Unity Catalog.

Access berlaku pada tingkat skema, sehingga pengguna yang bisa membaca system.lakebase melihat telemetri untuk setiap proyek dalam akun.

Teks pernyataan bertopeng

Kolom yang menyimpan teks pernyataan akan kembali <REDACTED> kecuali Anda adalah admin akun atau anggota databricks_pii_access grup tingkat akun. Seorang admin akun membuat dan mengelola grup tersebut. Lihat Buat dan kelola databricks_pii_accessgrup serta teks pernyataan bertopeng Access.

Kolom umum untuk setiap tabel

Setiap tabel di bawah ini menyertakan kolom ini, yang mengidentifikasi dari mana baris berasal:

Column Type Deskripsi
project_id string Proyek Lakebase tempat baris berasal.
branch_id string Cabang tempat baris berasal.
endpoint_id string Titik akhir komputasi tempat baris berasal.
compute_id string Instans komputasi tertentu. Ini berubah ketika komputasi diskalakan ke nol dan dilanjutkan.
ts TIMESTAMP Ketika baris direkam.
compute_mode string Mode komputasi pada saat itu, misalnya baca-tulis atau baca-saja.

Tabel dengan nama yang berakhiran _counters juga menyertakan previous_ts kolom, menandai awal interval yang diakumulasikan nilai baris. Ini adalah nilai kumulatif untuk interval tersebut, bukan pembacaan titik waktu. Tabel yang berakhiran _gauges adalah pembacaan point-in-time sebagai gantinya, dan tidak previous_tsmemiliki .

Tabel di bawah ini hanya mencantumkan kolom di luar yang umum ini.

Aktivitas sesi

Rekam jepret dari setiap backend aktif, diambil sampelnya terus menerus. Ini adalah pola yang sama dengan AWS Performance Insights atau Riwayat Sesi Aktif Oracle (ASH): jika sesi melakukan apa pun, termasuk menunggu, sesi akan muncul di sini.

active_session_history

Column Type Deskripsi
sample_seq LONG Posisi ordinal sampel ini dalam batch-nya.
pid LONG ID proses backend.
datid LONG ID objek database.
userid LONG ID objek peran penghubung.
queryid LONG Mengidentifikasi kueri yang sedang dijalankan. Cocok queryid di pg_stat_statements_counters.
wait_event_info LONG Pengodean internal peristiwa tunggu.
wait_event_type string Kategori acara tunggu, misalnya Timeout atau Lock.
wait_event string Peristiwa tunggu tertentu, misalnya PgSleep.
backend_state LONG Status backend, misalnya aktif atau menganggur.
backend_type LONG Jenis proses backend.
xact_age_ms LONG Berapa lama transaksi saat ini telah terbuka.
query_age_ms LONG Berapa lama kueri saat ini telah berjalan.
blocking_pid LONG PID sesi yang memblokir sesi ini, jika ada.
leader_pid LONG PID pemimpin kueri paralel, jika backend ini adalah pekerja paralel.
flags LONG Bendera status internal.
plan_fingerprint LONG Tautan ke bentuk paket tertentu di plan_history.
appname_hash LONG Hash nama aplikasi penghubung.

Acara tunggu

Jumlah dan waktu peristiwa tunggu agregat, melengkapi tampilan per sampel di active_session_history.

wait_event_counters

Column Type Deskripsi
wait_event_id LONG Pengodean internal peristiwa tunggu.
wait_class_name string Kategori acara tunggu.
wait_event_name string Peristiwa tunggu tertentu.
wait_event_count LONG Berapa kali peristiwa tunggu ini terjadi dalam interval.
wait_event_time Gandakan Total waktu yang dihabiskan dalam acara tunggu ini selama interval.

Rencana pencarian

Catatan per eksekusi rencana kueri, termasuk paket lengkap dan statistik penyimpanan khusus Neon. Ini adalah tabel yang paling rinci, dan biasanya di mana investigasi kueri lambat berakhir.

plan_history

Column Type Deskripsi
row_position LONG Posisi ordinal baris ini dalam batch-nya.
analyze_enabled BOOLEAN Apakah rencana menyertakan statistik eksekusi aktual (EXPLAIN ANALYZE), bukan hanya perkiraan.
buffers_enabled BOOLEAN Apakah paket menyertakan statistik penggunaan buffer.
query_hash string Hash mengidentifikasi teks kueri.
queryid LONG Mengidentifikasi kueri. Cocok queryid di pg_stat_statements_counters dan active_session_history.
duration_ms Gandakan Berapa lama waktu yang dibutuhkan kueri untuk dijalankan.
total_cost Gandakan Perkiraan biaya perencana untuk kueri.
plan_rows LONG Perkiraan jumlah baris perencana.
actual_rows LONG Jumlah baris aktual dikembalikan.
plan_fingerprint LONG Mengidentifikasi bentuk paket khusus ini. Cocok plan_fingerprint di active_session_history.
lock_wait_time_ms Gandakan Waktu yang dihabiskan untuk menunggu kunci.
planning_time_ms Gandakan Waktu yang dihabiskan untuk merencanakan kueri, terpisah dari eksekusi.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Aktivitas cache buffer bersama untuk eksekusi ini.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Aktivitas buffer lokal, untuk tabel sementara.
temp_blks_read / temp_blks_written LONG Aktivitas file sementara, misalnya dari pengurutan atau hash besar.
neon_getpage_count LONG Jumlah permintaan halaman yang dikirim ke server halaman.
neon_file_cache_hits LONG Jumlah halaman yang disajikan dari cache file lokal alih-alih pageserver.
neon_getpage_wait_us LONG Waktu yang dihabiskan untuk menunggu permintaan halaman pageserver, dalam mikrostik.
backend_pid LONG ID proses backend yang menjalankan kueri ini.
lock_wait_count LONG Berapa kali eksekusi ini menunggu pada kunci.
userid / dbid LONG ID objek peran dan database yang menyambungkan.
query_text string Teks kueri. Bertopeng. Lihat teks pernyataan bertopeng.
plan_json string Rencana kueri lengkap, sebagai JSON. Bertopeng. Lihat teks pernyataan bertopeng.
usename / datname string Nama peran dan database yang menyambungkan.
application_name / client_addr string Nama dan alamat klien aplikasi penghubung.
wait_events string Tunggu peristiwa yang diamati selama eksekusi ini.
parameters string Parameter ikatan yang digunakan dalam kueri, jika ada. Bertopeng. Lihat teks pernyataan bertopeng.
blocking_pids string PID sesi yang memblokir eksekusi ini, jika ada.
neon_branch_id / neon_endpoint_id / neon_timeline_id string Pengidentifikasi Neon internal untuk cabang, titik akhir, dan garis waktu.
cpu_user_time_ms / cpu_sys_time_ms Gandakan Waktu CPU yang dikonsumsi oleh eksekusi ini, dibagi menjadi waktu pengguna dan sistem.
voluntary_csw / involuntary_csw LONG Sakelar konteks selama eksekusi ini.
trace_id / span_id / trace_flags / service_name SENAR / SENAR / PANJANG / SENAR Pengidentifikasi pelacakan gaya OpenTelemetry, jika kueri adalah bagian dari permintaan yang ditelusuri.
timeline_id LONG Pengidentifikasi garis waktu internal.
truncated BOOLEAN Apakah data baris ini (misalnya, paket besar) dipotong sebelum ditulis.

Statistik kueri

Statistik per kueri agregat, bersumber dari ekstensi standar pg_stat_statements .

pg_stat_statements_counters

Column Type Deskripsi
userid / dbid LONG ID objek peran dan database yang menyambungkan.
queryid LONG Mengidentifikasi kueri. Cocok queryid di plan_history dan active_session_history.
toplevel BOOLEAN Apakah baris ini untuk pernyataan tingkat atas, dibandingkan dengan satu berlapis di dalam fungsi atau prosedur PL/pgSQL. Lihat batasan PL/pgSQL.
query string Teks kueri. Bertopeng. Lihat teks pernyataan bertopeng.
calls LONG Berapa kali kueri ini dijalankan dalam interval.
plans LONG Berapa kali kueri ini direncanakan dalam interval.
rows LONG Total baris yang dikembalikan atau terpengaruh.
total_exec_time / total_plan_time Gandakan Total waktu yang dihabiskan untuk mengeksekusi dan merencanakan kueri ini dalam interval.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG Aktivitas cache buffer bersama.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG Aktivitas buffer lokal, untuk tabel sementara.
temp_blks_read / temp_blks_written LONG Aktivitas file sementara.
wal_bytes / wal_fpi / wal_records LONG Volume log write-ahead yang dihasilkan oleh kueri ini.
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time Mixed Statistik kompilasi JIT (just-in-time), jika JIT digunakan untuk kueri ini.

Perubahan skema

Perubahan skema: apa yang berubah, kapan, dan oleh siapa. Inilah yang dibaca Genie untuk melacak insiden kembali ke perubahan skema, baik dari penyebaran atau pengeditan manual.

ddl_history

Column Type Deskripsi
row_position LONG Posisi ordinal baris ini dalam batch-nya.
command_tag string Jenis perintah DDL, misalnya ALTER TABLE.
object_type / object_name string Jenis dan nama objek yang berubah.
schema_name string Skema Postgres tempat objek berada.
query_text string Pernyataan DDL lengkap. Bertopeng. Lihat teks pernyataan bertopeng.
duration_ms Gandakan Berapa lama pernyataan DDL berjalan.
userid / usename PANJANG / SENAR ID objek dan nama peran penghubung.
application_name string Nama aplikasi penghubung.
backend_pid LONG ID proses backend yang menjalankan pernyataan.
dbid LONG ID objek database.
search_path string Jalur pencarian sesi pada saat itu.
ddl_json string Representasi terstruktur dan diurai dari pernyataan DDL. Bertopeng. Lihat teks pernyataan bertopeng.

Note

Penangkapan DDL memiliki celah nyata: perubahan yang dilakukan tepat di sekitar komputasi yang melanjutkan dari skala ke nol dapat dilewatkan. Jika perubahan skema tidak muncul di sini meskipun Anda tahu itu terjadi, itu adalah alasan yang paling mungkin. Lihat Batasan.

Log Postgres

Pesan log Postgres mentah, termasuk kesalahan spesifik di balik kegagalan.

postgres_logs

Column Type Deskripsi
sample_seq LONG Posisi ordinal baris ini dalam batch-nya.
elevel LONG Pengodean tingkat log internal.
severity string Tingkat keparahan log, misalnya ERROR atau LOG.
sqlstate string Kode kesalahan Postgres SQLSTATE, misalnya 42703 untuk kolom yang tidak ditentukan.
backend_pid / leader_backend_pid LONG ID proses backend, dan PID pemimpin kueri paralelnya jika berlaku.
userid / usename PANJANG / SENAR ID objek dan nama peran penghubung.
datid / datname PANJANG / SENAR ID objek dan nama database.
application_name / client_addr string Nama dan alamat klien aplikasi penghubung.
schema_name / table_name / column_name / constraint_name / datatype_name string Skema, tabel, kolom, batasan, atau jenis data yang direferensikan oleh kesalahan, saat Postgres memilikinya.
funcname string Fungsi yang terjadi kesalahan, jika berlaku.
filename / lineno STRING / PANJANG File sumber Postgres dan baris kesalahan berasal.
message string Teks pesan log.
detail / hint / context string Detail tambahan, perbaikan yang disarankan, dan konteks kesalahan, saat Postgres memilikinya.
internalquery string Kueri yang dihasilkan secara internal yang terkait dengan kesalahan, jika berlaku.
statement string Pernyataan yang memicu entri log ini. Bertopeng. Lihat teks pernyataan bertopeng.
truncated_mask LONG Menunjukkan bidang mana, jika ada, yang dipotong sebelum ditulis.

Note

Bidang terstruktur schema_name, table_name, dan column_name tidak diisi untuk setiap jenis kesalahan. Kesalahan penguraian "kolom tidak ada" biasa (SQLSTATE 42703), misalnya, membuatnya kosong meskipun message memberi nama kolom secara langsung. Jangan mengandalkan bidang ini yang diisi. Periksa message dulu.

Metrik komputasi

Penggunaan sumber daya tingkat komputasi: CPU, memori, disk, dan I/O jaringan, dan cache file lokal (LFC), cache sisi komputasi Lakebase di depan pageserver.

compute_counters

Column Type Deskripsi
backpressure_throttling_seconds Gandakan Waktu yang dihabiskan lapisan penyimpanan penulisan pembatasan dalam interval ini. Nilai bukan nol berarti volume tulis melebihi penyimpanan apa yang dapat diserap.
host_busiest_cpu_seconds / host_cpu_seconds Gandakan Waktu CPU yang dikonsumsi, untuk inti tersibuk dan totalnya.
host_disk_read_bytes / host_disk_written_bytes Gandakan Volume I/O disk.
host_network_receive_bytes / host_network_transmit_bytes Gandakan Volume I/O jaringan.
lfc_evictions / lfc_hits / lfc_misses / lfc_writes LONG Aktivitas cache file lokal untuk interval ini.
replica_lfc_redo_evictions LONG Pengeluaran cache file lokal yang disebabkan oleh pengulangan replika, jika komputasi ini adalah replika baca.

compute_gauges

Column Type Deskripsi
current_lsn LONG Posisi log write-ahead saat ini.
replica_wal_replay_lsn / replica_wal_receive_lsn LONG WAL memutar ulang dan menerima posisi, jika komputasi ini adalah replika baca.
max_connections LONG Batas koneksi yang dikonfigurasi.
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m LONG Perkiraan ukuran set kerja selama 5, 15, dan 60 menit terakhir.
lfc_size_limit / lfc_allocated / lfc_used LONG Kapasitas cache file lokal dan penggunaan saat ini.
total_size_limit / total_size LONG Kapasitas penyimpanan keseluruhan dan penggunaan saat ini.
replication_lag_bytes / replication_lag_time_ms PANJANG / GANDA Lag replikasi, jika komputasi ini adalah replika baca.
host_logical_cpus / host_memory_total_bytes Gandakan CPU dan memori komputasi yang disediakan.

Metrik database

Aktivitas per database: baris berubah, transaksi, sesi, dan kesehatan vakum. Di sinilah tabel mekar dan sinyal autovacuum hidup.

database_counters

Column Type Deskripsi
datid / datname PANJANG / SENAR ID objek dan nama database.
active_time_ms / idle_in_transaction_time_ms / session_time_ms Gandakan Waktu yang dihabiskan aktif, menganggur dalam transaksi terbuka, dan terhubung secara keseluruhan.
deadlocks LONG Jumlah kebuntuan yang terdeteksi.
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated LONG Aktivitas tingkat baris untuk interval.
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed LONG Jumlah siklus hidup sesi.
shared_blks_hit / shared_blks_read LONG Aktivitas cache buffer bersama.
xact_commit / xact_rollback LONG Transaksi berkomitmen dan digulung balik.

database_gauges

Column Type Deskripsi
datid / datname PANJANG / SENAR ID objek dan nama database.
numbackends LONG Jumlah koneksi saat ini ke database ini.
size LONG Ukuran pada disk database.
oldest_frozen_xid_age / oldest_mxid_age LONG ID Transaksi dan usia ID multiksak dari baris terlama yang tidak dibekukan. Nilai yang naik adalah sinyal paling awal dari vakum yang tertinggal, baik sebelum kembung menjadi terlihat dalam ukuran tabel.

Keterbatasan

Note

Kata sandi disensor saat pernyataan ditangkap, sehingga yang ditangkap CREATE ROLE membaca PASSWORD '***'. Redaksi bergantung pada deteksi kata sandi dalam pernyataan, dan pernyataan yang cacat dapat lolos dari deteksi.

Azure Databricks merekomendasikan peran OAuth, yang mengautentikasi identitas Azure Databricks dengan token dan tidak meninggalkan kata sandi untuk diketik.

Batasan berikut berlaku:

  • COPY operasi tidak tercatat dalam riwayat rencana kueri.

  • Kueri yang dijalankan di dalam fungsi atau prosedur PL/pgSQL tidak tercatat dalam telemetri pada tingkat kueri kecuali kueri tersebut juga dijalankan sebagai pernyataan tingkat atas. Pelacakan pernyataan Postgres sendiri hanya menghitung pernyataan tingkat atas secara default.

  • Cabang dan endpoint muncul dalam telemetry dan insight berdasarkan ID internal (misalnya, br-odd-mud-y2icrn1h), bukan dengan nama tampilan seperti "production." Cocokkan ID di UI Lakebase jika Anda harus memastikan cabang atau endpoint mana yang dirujuk oleh insight atau baris tabel.

  • GUC yang mengaktifkan pengambilan telemetri mungkin tidak menyebar secara otomatis ke komputasi yang ada. Jika telemetri tidak muncul setelah pratinjau diaktifkan, hubungkan ke proyek dan centang:

    SHOW neon_monitor.log_capture_enabled;
    SHOW databricks.o11y_exporter_enabled;
    

    Keduanya harus mengembalikan on. Jika salah satu mengembalikan off, mulai ulang titik akhir komputasi.

Konfigurasi observabilitas warisan

Sebelum telemetri dipindahkan ke tabel sistem, Anda dapat membuat konfigurasi observabilitas yang menangkap telemetri ke katalog dan skema di Unity Catalog Anda sendiri serta menyediakan dasbor yang sudah dibangun. Konfigurasi ini tidak lagi menulis telemetri ke tujuan tersebut. Dashboard mereka tetap tersedia dengan data historis tetapi tidak menerima data baru. Anda tidak lagi dapat membuat konfigurasi observabilitas baru, dan capture ke tabel sistem tidak membuat dashboard.

Langkah berikutnya