Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administrar versiones preliminares de Azure Databricks.
En esta página se documentan las tablas que Lakebase escribe en el esquema de catálogo de Unity una vez configurada la observabilidad de un proyecto. Insights y Genie leen estos mismos datos y, dado que llegan a su propio catálogo de Unity, puede consultarlos directamente con cualquier herramienta de Azure Databricks.
Note
Se trata de una característica beta. Los nombres de tabla y columna pueden cambiar antes de la disponibilidad general.
¿Qué se captura?
Lakebase captura las señales que buscaría un DBA experimentado, que quedan plasmadas en un puñado de tablas que puede consultar directamente una vez exportadas:
| ¿Qué se captura? | Dónde llega |
|---|---|
| Sesiones activas y eventos de espera |
active_session_history, wait_event_counters |
| Planes de consulta y estadísticas de ejecución por consulta |
plan_history, pg_stat_statements_counters |
| Cambios de esquema: qué ha cambiado, cuándo y por quién | ddl_history |
| Estadísticas de base de datos: tamaño, filas leídas y modificadas, y recuentos de sesiones |
database_counters, database_gauges |
| Uso de recursos de proceso: CPU, memoria, caché, conexiones |
compute_counters, compute_gauges |
| Mensajes de registro de Postgres sin procesar, incluido el error subyacente a un fallo | postgres_logs |
Insights y Genie leen estos datos para fundamentar sus respuestas en lo que realmente ocurrió en tu base de datos, y las mismas tablas alimentan los paneles de observabilidad ya preparados. El resto de esta página documenta cada columna de cada tabla.
Columnas comunes a cada tabla
Cada tabla siguiente incluye estas columnas, que identifican de dónde procede una fila:
| Columna | Tipo | Description |
|---|---|---|
project_id |
STRING | El proyecto Lakebase del que procede la fila. |
branch_id |
STRING | Rama de la que procede la fila. |
endpoint_id |
STRING | Punto de conexión de proceso del que procede la fila. |
compute_id |
STRING | Instancia de proceso específica. Esto cambia cuando un proceso se escala a cero y se reanuda. |
ts |
TIMESTAMP | Cuando se registró la fila. |
compute_mode |
STRING | El modo del proceso en el momento, por ejemplo, de lectura y escritura o de solo lectura. |
Las tablas con nombres que terminan en _counters también incluyen una previous_ts columna, lo que marca el inicio del intervalo en el que se acumulan los valores de una fila. Estos son valores acumulativos para ese intervalo, no lecturas a un momento dado. Las tablas que terminan en _gauges son lecturas a un momento dado y no previous_tstienen .
Las tablas siguientes enumeran solo las columnas más allá de estas comunes.
Actividad de sesión
Instantánea de cada back-end activo, muestreada continuamente. Este es el mismo patrón que AWS Performance Insights o el historial de sesiones activas de Oracle (ASH): si una sesión está haciendo algo, incluida la espera, se muestra aquí.
active_session_history
| Columna | Tipo | Description |
|---|---|---|
sample_seq |
LONG | Posición ordinal de este ejemplo dentro de su lote. |
pid |
LONG | Identificador de proceso del back-end. |
datid |
LONG | Identificador de objeto de la base de datos. |
userid |
LONG | Identificador de objeto del rol de conexión. |
queryid |
LONG | Identifica la consulta que se está ejecutando. Coincide queryid con en pg_stat_statements_counters. |
wait_event_info |
LONG | Codificación interna del evento de espera. |
wait_event_type |
STRING | Categoría del evento de espera, por ejemplo Timeout , o Lock. |
wait_event |
STRING | Evento de espera específico, por ejemplo PgSleep. |
backend_state |
LONG | Estado del back-end, por ejemplo, activo o inactivo. |
backend_type |
LONG | Tipo de proceso de back-end. |
xact_age_ms |
LONG | Cuánto tiempo se ha abierto la transacción actual. |
query_age_ms |
LONG | Cuánto tiempo se ha ejecutado la consulta actual. |
blocking_pid |
LONG | PiD de una sesión que bloquea esta, si existe. |
leader_pid |
LONG | PID del líder de consultas en paralelo, si este back-end es un trabajo paralelo. |
flags |
LONG | Marcas de estado internas. |
plan_fingerprint |
LONG | Vínculos a una forma de plan específica en plan_history. |
appname_hash |
LONG | Hash del nombre de la aplicación de conexión. |
Eventos de espera
Recuentos de eventos de espera agregados y tiempo, complementando la vista por ejemplo en active_session_history.
wait_event_counters
| Columna | Tipo | Description |
|---|---|---|
wait_event_id |
LONG | Codificación interna del evento de espera. |
wait_class_name |
STRING | Categoría del evento de espera. |
wait_event_name |
STRING | Evento de espera específico. |
wait_event_count |
LONG | Cuántas veces se produjo este evento de espera en el intervalo. |
wait_event_time |
DOUBLE | Tiempo total invertido en este evento de espera durante el intervalo. |
Planes de consulta
Un registro por ejecución de los planes de consulta, incluidas las estadísticas de almacenamiento completas y específicas de Neon. Esta es la tabla más detallada y, normalmente, donde termina una investigación de consulta lenta.
plan_history
| Columna | Tipo | Description |
|---|---|---|
row_position |
LONG | Posición ordinal de esta fila dentro de su lote. |
analyze_enabled |
BOOLEAN | Si el plan incluye estadísticas de ejecución reales (EXPLAIN ANALYZE), no solo estimaciones. |
buffers_enabled |
BOOLEAN | Si el plan incluye estadísticas de uso del búfer. |
query_hash |
STRING | Hash que identifica el texto de la consulta. |
queryid |
LONG | Identifica la consulta. Coincide queryid con en pg_stat_statements_counters y active_session_history. |
duration_ms |
DOUBLE | Cuánto tiempo tardó la consulta en ejecutarse. |
total_cost |
DOUBLE | Costo estimado del planificador para la consulta. |
plan_rows |
LONG | Recuento estimado de filas del planificador. |
actual_rows |
LONG | Número real de filas devuelto. |
plan_fingerprint |
LONG | Identifica esta forma de plan específica. Coincide plan_fingerprint con en active_session_history. |
lock_wait_time_ms |
DOUBLE | Tiempo dedicado a esperar en bloqueos. |
planning_time_ms |
DOUBLE | Tiempo dedicado a planear la consulta, independiente de la ejecución. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Actividad de caché de búfer compartido para esta ejecución. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Actividad de búfer local para tablas temporales. |
temp_blks_read / temp_blks_written |
LONG | Actividad de archivo temporal, por ejemplo, de una ordenación o hash grandes. |
neon_getpage_count |
LONG | Número de solicitudes de página enviadas al servidor de páginas. |
neon_file_cache_hits |
LONG | Número de páginas que se sirven desde la caché de archivos local en lugar del servidor de páginas. |
neon_getpage_wait_us |
LONG | Tiempo dedicado a esperar en las solicitudes de página pageserver, en microsegundos. |
backend_pid |
LONG | Identificador del proceso de back-end que ejecutó esta consulta. |
lock_wait_count |
LONG | Número de veces que esta ejecución ha esperado en un bloqueo. |
userid / dbid |
LONG | Identificadores de objeto de la base de datos y del rol de conexión. |
query_text |
STRING | Texto de la consulta. |
plan_json |
STRING | Plan de consulta completo, como JSON. |
usename / datname |
STRING | Nombres de la base de datos y del rol de conexión. |
application_name / client_addr |
STRING | El nombre y la dirección de cliente de la aplicación de conexión. |
wait_events |
STRING | Eventos de espera observados durante esta ejecución. |
parameters |
STRING | Enlazar parámetros usados en la consulta, si los hay. |
blocking_pids |
STRING | PID de sesiones que bloquearon esta ejecución, si las hubiera. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
STRING | Identificadores internos de Neon para la rama, el punto de conexión y la escala de tiempo. |
cpu_user_time_ms / cpu_sys_time_ms |
DOUBLE | Tiempo de CPU consumido por esta ejecución, dividido en tiempo de usuario y sistema. |
voluntary_csw / involuntary_csw |
LONG | El contexto cambia durante esta ejecución. |
trace_id / span_id / trace_flags / service_name |
STRING/STRING/LONG/STRING | Identificadores de seguimiento de estilo OpenTelemetry, si la consulta formaba parte de una solicitud rastreada. |
timeline_id |
LONG | Identificador de escala de tiempo interno. |
truncated |
BOOLEAN | Si los datos de esta fila (por ejemplo, un plan grande) se truncaron antes de escribirse. |
Estadísticas de consultas
Estadísticas agregadas por consulta, procedentes de la extensión estándar pg_stat_statements .
pg_stat_statements_counters
| Columna | Tipo | Description |
|---|---|---|
userid / dbid |
LONG | Identificadores de objeto de la base de datos y del rol de conexión. |
queryid |
LONG | Identifica la consulta. Coincide queryid con en plan_history y active_session_history. |
toplevel |
BOOLEAN | Si esta fila es para una instrucción de nivel superior, en lugar de una anidada dentro de una función o procedimiento PL/pgSQL. Consulte la limitación de PL/pgSQL. |
query |
STRING | Texto de la consulta. |
calls |
LONG | Número de veces que se ejecutó esta consulta en el intervalo. |
plans |
LONG | Número de veces que esta consulta se planeó en el intervalo. |
rows |
LONG | Total de filas devueltas o afectadas. |
total_exec_time / total_plan_time |
DOUBLE | Tiempo total dedicado a ejecutar y planear esta consulta en el intervalo. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Actividad de caché de búfer compartido. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Actividad de búfer local para tablas temporales. |
temp_blks_read / temp_blks_written |
LONG | Actividad de archivo temporal. |
wal_bytes / wal_fpi / wal_records |
LONG | Volumen de registro de escritura previa generado por esta consulta. |
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time |
Mixto | Estadísticas de compilación JIT (Just-In-Time), si se usó JIT para esta consulta. |
Cambios en los esquemas
Cambios de esquema: qué ha cambiado, cuándo y por quién. Esto es lo que Genie lee para realizar un seguimiento de un incidente a un cambio de esquema, ya sea desde una implementación o una edición manual.
ddl_history
| Columna | Tipo | Description |
|---|---|---|
row_position |
LONG | Posición ordinal de esta fila dentro de su lote. |
command_tag |
STRING | Tipo de comando DDL, por ejemplo ALTER TABLE. |
object_type / object_name |
STRING | Tipo y nombre del objeto que cambió. |
schema_name |
STRING | Esquema postgres al que pertenece el objeto. |
query_text |
STRING | Instrucción DDL completa. |
duration_ms |
DOUBLE | Cuánto tiempo tardó la instrucción DDL en ejecutarse. |
userid / usename |
LONG/STRING | Identificador y nombre del objeto del rol de conexión. |
application_name |
STRING | Nombre de la aplicación de conexión. |
backend_pid |
LONG | Identificador de proceso de back-end que ejecutó la instrucción . |
dbid |
LONG | Identificador de objeto de la base de datos. |
search_path |
STRING | Ruta de acceso de búsqueda de la sesión en el momento. |
ddl_json |
STRING | Representación estructurada y analizada de la instrucción DDL. |
Note
La captura DDL tiene una brecha real: se puede perder un cambio realizado justo alrededor de una reanudación de proceso de escala a cero. Si un cambio de esquema no aparece aquí aunque sepa que ha ocurrido, es la razón más probable. Consulte Limitaciones.
Registros de Postgres
Mensajes de registro de Postgres sin procesar, incluido el error específico detrás de un error.
postgres_logs
| Columna | Tipo | Description |
|---|---|---|
sample_seq |
LONG | Posición ordinal de esta fila dentro de su lote. |
elevel |
LONG | Codificación de nivel de registro interno. |
severity |
STRING | Gravedad del registro, por ejemplo ERROR , o LOG. |
sqlstate |
STRING | Código de error de Postgres SQLSTATE, por ejemplo 42703 , para una columna no definida. |
backend_pid / leader_backend_pid |
LONG | El identificador del proceso de back-end y su PID del líder de consulta en paralelo, si procede. |
userid / usename |
LONG/STRING | Identificador y nombre del objeto del rol de conexión. |
datid / datname |
LONG/STRING | Identificador y nombre del objeto de la base de datos. |
application_name / client_addr |
STRING | El nombre y la dirección de cliente de la aplicación de conexión. |
schema_name / table_name / column_name / constraint_name / datatype_name |
STRING | El esquema, la tabla, la columna, la restricción o el tipo de datos al que hace referencia el error, cuando Postgres tiene uno. |
funcname |
STRING | Función en la que se produjo el error, si procede. |
filename / lineno |
STRING/LONG | El archivo de origen de Postgres y la línea del error se originó. |
message |
STRING | Texto del mensaje de registro. |
detail / hint / context |
STRING | Detalles adicionales, una corrección sugerida y el contexto del error, cuando Postgres los tiene. |
internalquery |
STRING | Una consulta generada internamente relacionada con el error, si procede. |
statement |
STRING | Instrucción que desencadenó esta entrada de registro. |
truncated_mask |
LONG | Indica qué campos, si los hay, se truncaron antes de escribirse. |
Note
Los campos estructurados schema_name, table_namey column_name no se rellenan para cada tipo de error. Un error de análisis de "columna no existe" sin formato (SQLSTATE 42703), por ejemplo, los deja vacíos aunque message asigne nombres a la columna directamente. No confíe en que estos campos se rellenen. Compruebe message primero.
Métricas de cálculo
Uso de recursos de nivel de proceso: CPU, memoria, E/S de disco y red, y caché de archivos local (LFC), caché del lado proceso de Lakebase delante del servidor de páginas.
compute_counters
| Columna | Tipo | Description |
|---|---|---|
backpressure_throttling_seconds |
DOUBLE | Tiempo que la capa de almacenamiento ha dedicado a las escrituras de limitación en este intervalo. Un valor distinto de cero significa que el volumen de escritura superó lo que el almacenamiento puede absorber. |
host_busiest_cpu_seconds / host_cpu_seconds |
DOUBLE | Tiempo de CPU consumido, para el núcleo más ocupado y en total. |
host_disk_read_bytes / host_disk_written_bytes |
DOUBLE | Volumen de E/S de disco. |
host_network_receive_bytes / host_network_transmit_bytes |
DOUBLE | Volumen de E/S de red. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Actividad de caché de archivos local para este intervalo. |
replica_lfc_redo_evictions |
LONG | Las expulsiones de caché de archivos locales causadas por la rehacer de réplica, si este proceso es una réplica de lectura. |
compute_gauges
| Columna | Tipo | Description |
|---|---|---|
current_lsn |
LONG | Posición actual del registro de escritura anticipada. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | WAL reproduce y recibe posiciones, si este proceso es una réplica de lectura. |
max_connections |
LONG | Límite de conexión configurado. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Tamaño estimado del conjunto de trabajo durante los últimos 5, 15 y 60 minutos. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Capacidad de caché de archivos local y uso actual. |
total_size_limit / total_size |
LONG | Capacidad de almacenamiento general y uso actual. |
replication_lag_bytes / replication_lag_time_ms |
LONG/DOUBLE | Retraso de replicación, si este proceso es una réplica de lectura. |
host_logical_cpus / host_memory_total_bytes |
DOUBLE | Cpu y memoria aprovisionadas del proceso. |
Métricas de base de datos
Actividad por base de datos: filas modificadas, transacciones, sesiones y estado de vacío. Aquí es donde se activan las señales de sobredimensionamiento de la tabla y autovacuo.
database_counters
| Columna | Tipo | Description |
|---|---|---|
datid / datname |
LONG/STRING | Identificador y nombre del objeto de la base de datos. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
DOUBLE | Tiempo invertido activo, inactivo en una transacción abierta y conectado en general. |
deadlocks |
LONG | Número de interbloqueos detectados. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Actividad de nivel de fila para el intervalo. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Recuentos del ciclo de vida de la sesión. |
shared_blks_hit / shared_blks_read |
LONG | Actividad de caché de búfer compartido. |
xact_commit / xact_rollback |
LONG | Transacciones confirmadas y reviertes. |
database_gauges
| Columna | Tipo | Description |
|---|---|---|
datid / datname |
LONG/STRING | Identificador y nombre del objeto de la base de datos. |
numbackends |
LONG | Número actual de conexiones a esta base de datos. |
size |
LONG | Tamaño en disco de la base de datos. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | Identificador de transacción y antigüedad del identificador multixact de la fila desfrozen más antigua. Los valores ascendentes son la señal más temprana de vacío que cae atrás, bien antes de que el hinchazón se vea en el tamaño de la tabla. |
Limitaciones
Warning
Si crea roles para la conexión de aplicaciones, una contraseña escrita en una CREATE ROLE ... PASSWORD '...' instrucción SQL puede quedar registrada en el historial de consultas o de instrucciones. Crea el rol a través de la interfaz de usuario, SDK, API o CLI, que generan la contraseña en el lado del servidor para que nunca la escribas en texto claro. La interfaz muestra la contraseña generada una vez. El SDK, la API y la CLI no lo devuelven, así que consigue una contraseña después. Consulta cómo obtener una contraseña.
Durante la versión beta, se aplican las siguientes limitaciones:
COPYLas operaciones no quedan registradas actualmente en el historial del plan de consulta.Una consulta ejecutada dentro de una función o procedimiento PL/pgSQL no se captura en la telemetría de nivel de consulta a menos que también se ejecute como una instrucción de nivel superior. De forma predeterminada, el seguimiento de instrucciones propias de Postgres solo cuenta las instrucciones de nivel superior.
Las ramas y los puntos de conexión aparecen en la telemetría exportada y en los insights con su identificador interno (por ejemplo,
br-odd-mud-y2icrn1h), no con un nombre visible como "producción". Consulte el identificador en la interfaz de usuario de Lakebase si necesita confirmar a qué rama o punto de conexión se refiere un insight o una fila de la tabla.Las GUC que habilitan la captura de telemetría podrían no propagarse automáticamente a una instancia de cálculo existente. Si la telemetría no aparece después de configurar la observabilidad, conéctese al proyecto y compruebe lo siguiente:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Ambos deben devolver
on. Si cualquiera de los dos devuelveoff, reinicie el extremo de proceso.
Pasos siguientes
- Encuentra y resuelve problemas con Insights: consulta estos datos como diagnóstico, no como filas en bruto.
- Investiga con Genio: haz preguntas sobre esta telemetría con tus propias palabras.