Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Эта функция доступна в бета-версии. Чтобы использовать его, администратор рабочего пространства должен включить Lakebase Observability в системных таблицах на странице предпросмотра . См. статью "Управление предварительными версиями Azure Databricks".
Lakebase фиксирует свою телеметрию наблюдаемости в system.lakebase схему, начиная с продвинутых сигналов Postgres. Захват происходит автоматически. С включенным предпросмотром телеметрия попадает в эти таблицы во время выполнения вычислений проекта. Нет конфигурации для создания, нет выбора места назначения и нет учетных данных для предоставления.
Insights и Genie читают одни и те же таблицы, и вы можете делать запросы с помощью любого инструмента Azure Databricks.
Note
Имена таблиц и столбцов могут изменяться до общедоступной доступности.
Requirements
- Функция предварительного просмотра Lakebase в системных таблицах включена для вашего рабочего пространства.
- Проект Lakebase на AWS или Azure. См. статью "Получить базу данных Postgres".
Что фиксируется
Lakebase фиксирует сигналы, необходимые для объяснения медленной или неисправной базы данных, в следующих таблицах:
| Что запечатлено | Имя таблицы |
|---|---|
| Активные сеансы и события ожидания |
system.lakebase.active_session_history, system.lakebase.wait_event_counters |
| Планы запросов и статистика выполнения запросов |
system.lakebase.plan_history, system.lakebase.pg_stat_statements_counters |
| Изменения схемы: что изменилось, когда и кем | system.lakebase.ddl_history |
| Статистика базы данных: размер, количество прочитанных и изменённых строк, а также количество сеансов |
system.lakebase.database_counters, system.lakebase.database_gauges |
| Использование вычислительных ресурсов: ЦП, память, кэш, подключения |
system.lakebase.compute_counters, system.lakebase.compute_gauges |
| Необработанные сообщения журнала Postgres, включая ошибку, вызвавшую сбой | system.lakebase.postgres_logs |
Записи сохраняются в течение 7 дней. Остальная часть этой страницы документирует каждый столбец в каждой таблице. Для того, где эти таблицы расположены среди других системных таблиц, см. ссылку на системную таблицу Lakebase.
Access
Таблицы system.lakebase управляются Unity Catalog. Пользователи с ролями администратора аккаунта и администратора метамагазина могут читать телеметрию и управлять доступом к ней. См. статью Управление привилегиями в каталоге Unity.
Доступ применяется на уровне схемы, поэтому пользователь, умеющий читать system.lakebase , видит телеметрию для каждого проекта в аккаунте.
Текст заявления в маске
Столбцы, содержащие текст выписки, возвращаются <REDACTED> , если только вы не администратор аккаунта или не являетесь databricks_pii_access участником группы на уровне аккаунта. Администратор аккаунта создаёт и управляет этой группой. См. Создать и управлять databricks_pii_access группой и получить доступ к тексту замаскированного заявления.
Столбцы, общие для каждой таблицы
Каждая таблица ниже содержит следующие столбцы, которые определяют, откуда поступила строка:
| 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 становится видимым в размере таблицы. |
Ограничения
Note
Пароли редактируются по мере захвата оператора, поэтому захваченный CREATE ROLE текст PASSWORD '***'читает . Редактирование зависит от обнаружения пароля в операторе, и искажённый оператор может избежать обнаружения.
Azure Databricks рекомендует OAuth роли, которые аутентифицируют идентичности Azure Databricks с помощью токенов и не оставляют пароля для ввода.
Действительны следующие ограничения.
COPYОперации не отражены в истории плана запросов.Запрос, выполняемый внутри функции PL/pgSQL или процедуры, не фиксируется в телеметрии уровня запроса, если он также не выполняется в качестве инструкции верхнего уровня. Собственный механизм отслеживания операторов в Postgres по умолчанию учитывает только операторы верхнего уровня.
Ветви и конечные точки отображаются в телеметрии и инсайтах по внутреннему идентификатору (например),
br-odd-mud-y2icrn1hа не по отображённому имени, например, «production». Сверьте ID в интерфейсе Lakebase, если хотите подтвердить, к какой ветке или конечной точке относится строка инсайта или таблицы.Параметры GUC, включающие сбор телеметрии, могут не применяться автоматически к существующему вычислительному ресурсу. Если после включения предпросмотра телеметрия не появляется, подключитесь к проекту и проверьте:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Оба должны возвращать
on. Если любое из них возвращаетoff, перезапустите вычислительную конечную точку.
Устаревшие конфигурации наблюдаемости
До перехода телеметрии в системные таблицы можно было создать конфигурацию наблюдаемости, которая фиксировала телеметрию в каталог и схему в вашем собственном Unity Catalog и предоставляла готовые дашборды. Существующие конфигурации продолжают работать, а их панели управления остаются доступными. Вы больше не можете создавать новые конфигурации наблюдаемости, а запись в системные таблицы не создаёт дашборды.
Дальнейшие действия
- Выявляйте проблемы с помощью Insights: агента, который проверяет эту телеметрию по расписанию.
- Исследуйте и исправляйте проблемы с Genie: задавайте вопросы об этой телеметрии своими словами.
- Ссылка на таблицы системы Lakebase: где эти таблицы расположены среди других системных таблиц.