Справочник по таблице телеметрии

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, перезапустите вычислительную конечную точку.

Дальнейшие действия