Referencia de tabla de telemetría

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:

  • COPY Las 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 devuelve off, reinicie el extremo de proceso.

Pasos siguientes