Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".
На этой странице таблицы Lakebase записываются в схему каталога Unity после настройки наблюдаемости для проекта. Аналитика и Genie считывают эти же данные, и потому что он находится в собственном каталоге Unity, вы можете запросить его непосредственно с помощью любого средства Azure Databricks.
Note
Это бета-функция. Имена таблиц и столбцов могут изменяться до общедоступной доступности.
Что фиксируется
Lakebase фиксирует сигналы, на которые обратил бы внимание опытный DBA, и после экспорта они попадают в несколько таблиц, к которым можно обращаться с запросами напрямую:
| Что запечатлено | Где она приземляется |
|---|---|
| Активные сеансы и события ожидания |
active_session_history, wait_event_counters |
| Планы запросов и статистика выполнения запросов |
plan_history, pg_stat_statements_counters |
| Изменения схемы: что изменилось, когда и кем | ddl_history |
| Статистика базы данных: размер, количество прочитанных и изменённых строк, а также количество сеансов |
database_counters, database_gauges |
| Использование вычислительных ресурсов: ЦП, память, кэш, подключения |
compute_counters, compute_gauges |
| Необработанные сообщения журнала Postgres, включая ошибку, вызвавшую сбой | postgres_logs |
Insight и Genie читают эти данные, чтобы понять, что действительно произошло в вашей базе данных, и те же таблицы работают в готовых панелях наблюдаемости. Остальная часть этой страницы документирует каждый столбец в каждой таблице.
Столбцы, общие для каждой таблицы
Каждая таблица ниже содержит следующие столбцы, которые определяют, откуда поступила строка:
| Column | Тип | Description |
|---|---|---|
project_id |
СТРУНА | Проект Lakebase, из нее поступила строка. |
branch_id |
СТРУНА | Ветвь, из нее поступила строка. |
endpoint_id |
СТРУНА | Конечная точка вычислений, из нее поступила строка. |
compute_id |
СТРУНА | Конкретный вычислительный экземпляр. Это изменяется при масштабировании вычислительных ресурсов до нуля и возобновления. |
ts |
TIMESTAMP | Когда строка была записана. |
compute_mode |
СТРУНА | Режим вычислений в то время, например только для чтения или чтения. |
Таблицы с именами, заканчивающимися _counters также, включают previous_ts столбец, помечая начало интервала, накопленных значений строки. Это совокупные значения для этого интервала, а не для чтения на определенный момент времени. Таблицы, заканчивающиеся _gauges на определенный момент времени, вместо этого не имеют previous_ts.
В приведенных ниже таблицах перечислены только столбцы, выходящие за рамки этих распространенных.
Действие сеанса
Моментальный снимок каждой активной серверной части, образец выполняется непрерывно. Это тот же шаблон, что и AWS Performance Insights или журнал активных сеансов Oracle (ASH): если сеанс делает что-либо, включая ожидание, он отображается здесь.
active_session_history
| Column | Тип | Description |
|---|---|---|
sample_seq |
LONG | Порядковое положение этого примера в пакете. |
pid |
LONG | Идентификатор процесса серверной части. |
datid |
LONG | Идентификатор объекта базы данных. |
userid |
LONG | Идентификатор объекта подключаемой роли. |
queryid |
LONG | Определяет выполняемый запрос. Совпадения queryid в pg_stat_statements_counters. |
wait_event_info |
LONG | Внутренняя кодировка события ожидания. |
wait_event_type |
СТРУНА | Например TimeoutLock, категория события ожидания. |
wait_event |
СТРУНА | Например PgSleep, конкретное событие ожидания. |
backend_state |
LONG | Состояние серверной части, например активное или простое. |
backend_type |
LONG | Тип серверного процесса. |
xact_age_ms |
LONG | Как долго открыта текущая транзакция. |
query_age_ms |
LONG | Сколько времени выполняется текущий запрос. |
blocking_pid |
LONG | Идентификатор идентификатора сеанса, блокирующего этот сеанс, если таковой имеется. |
leader_pid |
LONG | Идентификатор идентификатора руководителя параллельных запросов, если эта серверная часть является параллельной рабочей ролью. |
flags |
LONG | Внутренние флаги состояния. |
plan_fingerprint |
LONG | Ссылки на определенную фигуру плана в plan_history. |
appname_hash |
LONG | Хэш имени подключающегося приложения. |
Ожидание событий
Агрегированные счетчики событий ожидания и время, дополняющие представление для каждого примера в active_session_history.
wait_event_counters
| Column | Тип | Description |
|---|---|---|
wait_event_id |
LONG | Внутренняя кодировка события ожидания. |
wait_class_name |
СТРУНА | Категория события ожидания. |
wait_event_name |
СТРУНА | Конкретное событие ожидания. |
wait_event_count |
LONG | Сколько раз это событие ожидания произошло в интервале. |
wait_event_time |
DOUBLE | Общее время, затраченное на это событие ожидания в течение интервала. |
Планы запросов
Запись о каждом выполнении планов запросов, включая полный план и статистику хранилища неона. Это самая подробная таблица, и обычно в конечном итоге выполняется исследование медленных запросов.
plan_history
| Column | Тип | Description |
|---|---|---|
row_position |
LONG | Порядковое положение этой строки в пакете. |
analyze_enabled |
BOOLEAN | Включает ли план фактическую статистику выполнения (EXPLAIN ANALYZE), а не только оценки. |
buffers_enabled |
BOOLEAN | Включает ли план статистику использования буфера. |
query_hash |
СТРУНА | Хэш, определяющий текст запроса. |
queryid |
LONG | Определяет запрос. Совпадения queryid в pg_stat_statements_counters и active_session_history. |
duration_ms |
DOUBLE | Сколько времени потребовалось выполнение запроса. |
total_cost |
DOUBLE | Предполагаемые затраты планировщика для запроса. |
plan_rows |
LONG | Предполагаемое число строк планировщика. |
actual_rows |
LONG | Возвращается фактическое число строк. |
plan_fingerprint |
LONG | Определяет эту конкретную фигуру плана. Совпадения plan_fingerprint в active_session_history. |
lock_wait_time_ms |
DOUBLE | Время, затраченное на ожидание блокировок. |
planning_time_ms |
DOUBLE | Время, затраченное на планирование запроса, отдельно от выполнения. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Действие кэша общего буфера для этого выполнения. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Действие локального буфера для временных таблиц. |
temp_blks_read / temp_blks_written |
LONG | Временное действие файла, например из большого или хэша. |
neon_getpage_count |
LONG | Количество запросов страниц, отправленных на сервер страницы. |
neon_file_cache_hits |
LONG | Количество страниц, обслуживаемых из локального кэша файлов, а не сервера страниц. |
neon_getpage_wait_us |
LONG | Время, затраченное на ожидание запросов страницы страницы в микросекундах. |
backend_pid |
LONG | Идентификатор внутреннего процесса, выполняющего этот запрос. |
lock_wait_count |
LONG | Количество раз, когда это выполнение ждало блокировки. |
userid / dbid |
LONG | Идентификаторы объектов и объектов базы данных для подключения. |
query_text |
СТРУНА | Текст запроса. |
plan_json |
СТРУНА | Полный план запроса в формате JSON. |
usename / datname |
СТРУНА | Имена ролей подключения и базы данных. |
application_name / client_addr |
СТРУНА | Имя и адрес клиента подключения приложения. |
wait_events |
СТРУНА | Ожидание событий, наблюдаемых во время выполнения. |
parameters |
СТРУНА | Привязывать параметры, используемые в запросе, если таковые есть. |
blocking_pids |
СТРУНА | Идентификаторы сеансов, которые блокировали это выполнение, если таковые есть. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
СТРУНА | Внутренние идентификаторы неона для ветви, конечной точки и временной шкалы. |
cpu_user_time_ms / cpu_sys_time_ms |
DOUBLE | Время ЦП, затраченное этим выполнением, разделено на время пользователя и системы. |
voluntary_csw / involuntary_csw |
LONG | Контекст переключается во время выполнения. |
trace_id / span_id / trace_flags / service_name |
СТРУНА / СТРУНА / ДЛИННАЯ / СТРУНА | Идентификаторы трассировки в стиле OpenTelemetry, если запрос был частью трассировки запроса. |
timeline_id |
LONG | Внутренний идентификатор временной шкалы. |
truncated |
BOOLEAN | Если данные этой строки (например, большой план) были усечены перед записью. |
Статистика запросов
Агрегированная статистика по запросу, полученная из стандартного pg_stat_statements расширения.
pg_stat_statements_counters
| Column | Тип | Description |
|---|---|---|
userid / dbid |
LONG | Идентификаторы объектов и объектов базы данных для подключения. |
queryid |
LONG | Определяет запрос. Совпадения queryid в plan_history и active_session_history. |
toplevel |
BOOLEAN | Указывает, является ли эта строка оператором верхнего уровня, а не одной вложенной в функцию или процедуру PL/pgSQL. См. ограничение PL/pgSQL. |
query |
СТРУНА | Текст запроса. |
calls |
LONG | Количество раз, когда этот запрос был выполнен в интервале. |
plans |
LONG | Количество раз, когда этот запрос планировался в интервале. |
rows |
LONG | Общее количество возвращённых или изменённых строк. |
total_exec_time / total_plan_time |
DOUBLE | Общее время выполнения и планирования этого запроса в интервале. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Действие кэша общего буфера. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Действие локального буфера для временных таблиц. |
temp_blks_read / temp_blks_written |
LONG | Временное действие файла. |
wal_bytes / wal_fpi / wal_records |
LONG | Объем журнала впереди записи, созданный этим запросом. |
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 (JIT) (JIT) при использовании JIT для этого запроса. |
Изменения схемы
Изменения схемы: что изменилось, когда и кем. Это то, что Genie считывает для трассировки инцидента обратно в изменение схемы, независимо от развертывания или ручного редактирования.
ddl_history
| Column | Тип | Description |
|---|---|---|
row_position |
LONG | Порядковое положение этой строки в пакете. |
command_tag |
СТРУНА | Например, ALTER TABLEтип команды DDL. |
object_type / object_name |
СТРУНА | Тип и имя измененного объекта. |
schema_name |
СТРУНА | Схема Postgres, к которой принадлежит объект. |
query_text |
СТРУНА | Полная инструкция DDL. |
duration_ms |
DOUBLE | Время выполнения инструкции DDL. |
userid / usename |
ДЛИННАЯ / СТРУННАЯ | Идентификатор и имя объекта роли подключения. |
application_name |
СТРУНА | Имя подключающегося приложения. |
backend_pid |
LONG | Идентификатор внутреннего процесса, выполняющий инструкцию. |
dbid |
LONG | Идентификатор объекта базы данных. |
search_path |
СТРУНА | Путь поиска сеанса в то время. |
ddl_json |
СТРУНА | Структурированное, проанализированное представление инструкции DDL. |
Note
Запись DDL имеет реальный разрыв: изменение, сделанное прямо вокруг возобновления вычислений от масштабирования до нуля, может быть пропущено. Если изменение схемы не отображается здесь, даже если вы знаете, что это произошло, это наиболее вероятно причина. См. Ограничения.
Журналы Postgres
Необработанные сообщения журнала Postgres, включая конкретную ошибку, лежащую в основе сбоя.
postgres_logs
| Column | Тип | Description |
|---|---|---|
sample_seq |
LONG | Порядковое положение этой строки в пакете. |
elevel |
LONG | Кодировка внутреннего уровня журнала. |
severity |
СТРУНА | Уровень серьезности журнала, например ERROR или LOG. |
sqlstate |
СТРУНА | Код ошибки Postgres SQLSTATE, например 42703 для неопределенного столбца. |
backend_pid / leader_backend_pid |
LONG | Идентификатор внутреннего процесса и идентификатор идентификатора идентификатора руководителя параллельных запросов, если это применимо. |
userid / usename |
ДЛИННАЯ / СТРУННАЯ | Идентификатор и имя объекта роли подключения. |
datid / datname |
ДЛИННАЯ / СТРУННАЯ | Идентификатор и имя объекта базы данных. |
application_name / client_addr |
СТРУНА | Имя и адрес клиента подключения приложения. |
schema_name / table_name / column_name / constraint_name / datatype_name |
СТРУНА | Схема, таблица, столбец, ограничение или тип данных, на который ссылается ошибка, когда Postgres имеет один из них. |
funcname |
СТРУНА | Функция, в ходе выполнения ошибки, если применимо. |
filename / lineno |
STRING /LONG | Исходный файл Postgres и строка ошибки, из которой возникла ошибка. |
message |
СТРУНА | Текст сообщения журнала. |
detail / hint / context |
СТРУНА | Дополнительные сведения, предлагаемое исправление и контекст ошибки при их использовании Postgres. |
internalquery |
СТРУНА | Внутренний созданный запрос, связанный с ошибкой, если применимо. |
statement |
СТРУНА | Инструкция, активировающая эту запись журнала. |
truncated_mask |
LONG | Указывает, какие поля, если таковые есть, были усечены перед записью. |
Note
Структурированные schema_nametable_nameполя и column_name поля не заполняются для каждого типа ошибки. Обычная ошибка синтаксического анализа столбца (SQLSTATE 42703например, оставляет их пустыми, даже если message имена столбца не существуют напрямую). Не полагаться на заполненные поля. Сначала проверьте message .
Метрики вычислений
Использование ресурсов на уровне вычислений: ЦП, память, диск и сетевой ввод-вывод, а также локальный кэш файлов (LFC), вычислительный кэш Lakebase перед сервером страницы.
compute_counters
| Column | Тип | Description |
|---|---|---|
backpressure_throttling_seconds |
DOUBLE | Время, затраченное на регулирование уровня хранилища, записывает данные в этом интервале. Ненулевое значение означает, что объем записи превысил то, что может поглощать хранилище. |
host_busiest_cpu_seconds / host_cpu_seconds |
DOUBLE | Время ЦП занимает больше времени, для самых загруженных ядер и в общей сложности. |
host_disk_read_bytes / host_disk_written_bytes |
DOUBLE | Том ввода-вывода диска. |
host_network_receive_bytes / host_network_transmit_bytes |
DOUBLE | Том ввода-вывода сети. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Действие кэша локальных файлов для этого интервала. |
replica_lfc_redo_evictions |
LONG | Вытеснения локального кэша файлов, вызванные повтором реплики, если это вычисление является репликой чтения. |
compute_gauges
| Column | Тип | Description |
|---|---|---|
current_lsn |
LONG | Текущая позиция журнала впереди записи. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | Воспроизведение wal и получение позиций, если это вычисление является репликой чтения. |
max_connections |
LONG | Настроенный предел подключения. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Предполагаемый размер рабочего набора за последние 5, 15 и 60 минут. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Емкость локального кэша файлов и текущее использование. |
total_size_limit / total_size |
LONG | Общая емкость хранилища и текущее использование. |
replication_lag_bytes / replication_lag_time_ms |
ДЛИННЫЙ / ДВОЙНОЙ | Задержка репликации, если это вычисление является репликой чтения. |
host_logical_cpus / host_memory_total_bytes |
DOUBLE | Подготовленный ЦП и память вычислительных ресурсов. |
Метрики базы данных
Действие для каждой базы данных: строки изменились, транзакции, сеансы и работоспособности вакуума. Это место, где табличное blat и autovacuum сигналит в реальном времени.
database_counters
| Column | Тип | Description |
|---|---|---|
datid / datname |
ДЛИННАЯ / СТРУННАЯ | Идентификатор и имя объекта базы данных. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
DOUBLE | Время, затраченное на активный, простой в открытой транзакции и подключение в целом. |
deadlocks |
LONG | Число обнаруженных взаимоблокировок. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Действие уровня строк для интервала. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Количество жизненного цикла сеанса. |
shared_blks_hit / shared_blks_read |
LONG | Действие кэша общего буфера. |
xact_commit / xact_rollback |
LONG | Зафиксированные и откатные транзакции. |
database_gauges
| Column | Тип | Description |
|---|---|---|
datid / datname |
ДЛИННАЯ / СТРУННАЯ | Идентификатор и имя объекта базы данных. |
numbackends |
LONG | Текущее количество подключений к этой базе данных. |
size |
LONG | Размер базы данных на диске. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | Идентификатор транзакции и возраст многоактного идентификатора самой старой строки unfrozen. Рост значений является самым ранним сигналом отставания вакуума, а также до того, как blat становится видимым в размере таблицы. |
Ограничения
Предупреждение
Если вы создаете роли для подключения приложений, пароль, введенный в CREATE ROLE ... PASSWORD '...' инструкцию SQL, может оказаться в журнале запросов или инструкций. Создайте роль через UI, SDK, API или CLI, которые генерируют пароль на стороне сервера, чтобы вы никогда не вводили его в виде чистого текста. Интерфейс отображает сгенерированный пароль один раз. SDK, API и CLI не возвращают пароль, поэтому после этого получите пароль.
Посмотрите, как получить пароль.
Во время бета-версии применяются следующие ограничения:
COPYоперации в настоящее время не записываются в журнале планов запросов.Запрос, выполняемый внутри функции PL/pgSQL или процедуры, не фиксируется в телеметрии уровня запроса, если он также не выполняется в качестве инструкции верхнего уровня. Собственный механизм отслеживания операторов в Postgres по умолчанию учитывает только операторы верхнего уровня.
Ветви и конечные точки отображаются в экспортированных данных телеметрии и аналитических данных по внутреннему идентификатору (например,
br-odd-mud-y2icrn1h), а не по отображаемому имени, например "production". При необходимости сверьте идентификатор в интерфейсе Lakebase, чтобы подтвердить, к какой ветви или конечной точке относится аналитическое сведение или строка таблицы.Параметры GUC, включающие сбор телеметрии, могут не применяться автоматически к существующему вычислительному ресурсу. Если данные телеметрии не отображаются после настройки наблюдаемости, подключитесь к проекту и проверьте:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Оба должны возвращать
on. Если любое из них возвращаетoff, перезапустите вычислительную конечную точку.
Дальнейшие действия
- Найдите и устраните проблемы с Insights: рассматривайте эти данные как диагноз, а не как необработанные строки.
- Исследуйте с Джини: задавайте вопросы об этой телеметрии своими словами.