pg_stat_ch,
la extensión de Postgres de código abierto que transmite contadores por sentencia a
ClickHouse Cloud. La telemetría se normaliza dentro de Postgres antes de salir
de la base de datos: se eliminan los literales y se sustituyen por marcadores de posición, de modo que los
valores exactos que consultas nunca entran en el flujo de telemetría.
Abra Query insights
- Un Overview que permite ver el estado general de la base de datos en una sola pantalla.
- Una tabla de Slow patterns que clasifica cada patrón de consulta que su base de datos ha ejecutado, ordenada según lo que sospeche.
- Un panel de Recent queries que muestra las ejecuciones individuales en orden cronológico inverso.
- Un panel lateral de detalles que agrega todos los contadores de un mismo patrón.
Overview
| Panel | Qué muestra |
|---|---|
| Consultas/s | Volumen de consultas normalizado como una tasa en la ventana seleccionada. |
| Latencia de consultas | Media, p50, p95 y p99 en un solo gráfico, para que puedas ver cuándo la cola se aleja de la mediana. |
| Desglose de operaciones | Un gráfico de anillo con la proporción real de operaciones SELECT, INSERT, UPDATE y otras que componen la carga de trabajo. |
| Filas devueltas / afectadas | Total de filas que la carga de trabajo movió durante la ventana. |
| Tasa de aciertos del búfer | Un gráfico de anillo que compara los bloques compartidos encontrados en caché con los bloques compartidos leídos, con el tiempo total de CPU en la leyenda. |
| Errores | Recuento total de errores, desglosado a lo largo del tiempo. |
Slow patterns
Ordena por lo que sospeches
- Tiempo de ejecución total — donde la base de datos empleó más tiempo de reloj.
- Tiempo de CPU — patrones intensivos en cómputo.
- Llamadas — patrones de alta frecuencia.
- Errores — fallos repetidos.
- Latencia prom. / P50 / P95 / P99 / máx. — casos atípicos, por percentil.
- Filas devueltas, Bloques leídos, Bloques en caché, Bytes de WAL — patrones que movieron la mayor cantidad de datos a través del motor, la caché o el registro de escritura anticipada.
Limita la tabla
- Base de datos
- Usuario
- Operación (
SELECT,INSERT,UPDATE,DELETE, …) - Aplicación — el
application_namede la cadena de conexión
sales”
se convierte en dos menús desplegables. Los valores de filtro se rellenan automáticamente a partir de lo que tu
instancia ha ejecutado realmente.
Recent queries
Panel lateral de detalles
- Patrón de consulta — el SQL normalizado con los literales reemplazados por
$1,$2, … y un botón para copiar al portapapeles. - Uso agregado de recursos — una cuadrícula de 13 tarjetas de estadísticas que cubren el total de llamadas, latencia prom./P95/P99/máx., tiempo total de ejecución, filas devueltas, tasa de aciertos en caché, bloques leídos, bloques encontrados en caché, tiempo de CPU, bytes de WAL y errores.
- Contexto de la consulta — la base de datos, el usuario, la operación y la aplicación de la que procede este patrón.
- Ejecuciones destacadas — errores, ejecuciones inusualmente lentas y ejecuciones con resultados grandes, mostradas antes de la lista completa de ejecuciones recientes.
- Ejecuciones recientes — las ejecuciones individuales del mismo patrón, con contadores por ejecución.
Contadores por ejecución
- Bloques compartidos — las lecturas y los aciertos se muestran siempre; las escrituras y los bloques sucios se muestran cuando no son cero.
- Operaciones con bloques locales y temporales — si las operaciones con bloques temporales son distintas de cero, significa que una ordenación o una operación hash se volcó a disco.
- Tiempo de lectura / escritura — tiempo de E/S, separado del tiempo de CPU.
- Tiempo de CPU — usuario y sistema, por separado.
- Workers en paralelo — planificados frente a los realmente iniciados.
- JIT — tiempo total de compilación JIT y cantidad de funciones.
- WAL — bytes y número de registros.
API de Query insights
Cómo funciona
Normalizado en Postgres, antes de pasar por la red
pg_stat_ch se engancha a la fase de análisis sintáctico, sustituye cada literal por un
marcador de posición ($1, $2, …) y almacena en caché el patrón resultante en una
LRU por backend indexada por queryid. Cuando el ejecutor termina la
sentencia, ese patrón almacenado en caché es lo que se adjunta al evento. La
sentencia exacta con valores nunca sale de la base de datos.
Sin interferir con la base de datos
Eventos sin procesar, no agregados
pg_stat_ch emite un evento sin procesar por cada sentencia ejecutada (de nivel superior y
anidada), según el muestreo aplicado. Cada percentil, ranking y desglose
en la UI es una consulta de ClickHouse sobre el mismo flujo de eventos.
El mismo motor que usan nuestros clientes
Código abierto
pg_stat_ch se distribuye bajo Apache 2.0. Ejecútalo con cualquier Postgres y envíalo a cualquier
ClickHouse. El código fuente y los issues están en
github.com/clickhouse/pg_stat_ch.
- Panel de monitoreo — gráficos integrados de recursos y actividad
- Endpoint de Prometheus — recopila métricas a nivel de host en tu propia pila de observabilidad
- Managed Postgres OpenAPI — consulta patrones lentos y ejecuciones recientes de forma programática
- Extensiones — las extensiones disponibles en las instancias de Managed Postgres
pg_stat_chen GitHub — la extensión de código abierto que potencia Query Insights