Avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta función se proporciona actualmente como parte de una vista previa de conformidad con nuestras políticas de prelanzamiento.
El Collector de NRDOT reporta una amplia gama de métricas de PostgreSQL. New Relic recopila las métricas en Métricas predeterminadas automáticamente. Para obtener información valiosa más profunda sobre el rendimiento y el estado, habilite cualquiera de las métricas enumeradas en Métricas adicionales.
Sugerencia
Cada métrica tiene como alcance una base de datos, tabla, esquema o índice específico. Este contexto se establece en el recurso, no como un atributo de métrica.
Estas métricas se recopilan automáticamente y alimentan la UI de New Relic, incluido el dashboard listo para usar.
Métrica | Descripción | Unidad | Tipo | Atributo |
|---|---|---|---|---|
| Número de conexiones de backend |
| suma (acumulativa, int) | — |
| Número de búferes asignados |
| sum (acumulativa, int, monotónica) | — |
| Número de buffers escritos |
| sum (acumulativa, int, monotónica) |
(backend, backend_fsync, checkpoints, bgwriter) |
| Número de checkpoints realizados |
| sum (acumulativa, int, monotónica) |
(solicitado, programado) |
| Tiempo total dedicado a escribir y sincronizar archivos en el disco por puntos de control |
| suma (acumulativa, doble, monotónica) |
(sincronización, escritura) |
| Número de veces que el escritor en segundo plano detuvo un escaneo de limpieza porque ya había escrito demasiados búferes |
| sum (acumulativa, int, monotónica) | — |
| Número de bloques leídos |
| sum (acumulativa, int, monotónica) |
|
| Número de commits |
| sum (acumulativa, int, monotónica) | — |
| Número máximo de conexiones de cliente permitidas |
| medidor (int) | — |
| Número de bases de datos de usuario |
| suma (acumulativa, int, no monótona) | — |
| Uso de disco de la base de datos |
| suma (acumulativa, int, no monótona) | — |
| Número de escaneos de índice en una tabla |
| sum (acumulativa, int, monotónica) | — |
| Tamaño del índice en el disco |
| medidor (int) | — |
| Número de operaciones de fila de base de datos |
| sum (acumulativa, int, monotónica) |
(ins, upd, del, hot_upd) |
| Cantidad de datos retrasados en la replicación |
| medidor (int) |
|
| Número de reversiones |
| sum (acumulativa, int, monotónica) | — |
| Número de filas en la base de datos |
| suma (acumulativa, int, no monótona) |
(muerto, vivo) |
| Número de tablas de usuario en una base de datos |
| suma (acumulativa, int, no monótona) | — |
| Espacio en disco utilizado por una tabla |
| suma (acumulativa, int, no monótona) | — |
| Número de veces que una tabla se limpió manualmente |
| sum (acumulativa, int, monotónica) | — |
| Antigüedad del archivo WAL más antiguo. Requiere WAL habilitado con al menos una réplica |
| medidor (int) | — |
| Tiempo entre el vaciado local del WAL reciente y la recepción de la notificación de que el servidor en espera completó una operación. Requiere WAL + al menos una réplica |
| medidor (int) |
(flush, replay, write),
|
Métricas adicionales
Las siguientes métricas están deshabilitadas de forma predeterminada, pero se pueden habilitar para obtener información valiosa más detallada sobre el rendimiento y el estado de PostgreSQL. Estas métricas están organizadas por funcionalidad.
El dashboard de entidad de PostgreSQL listo para usar utiliza las siguientes métricas adicionales que deben habilitarse explícitamente:
Métrica | Descripción | Unidad | Widget de dashboard | Requisitos adicionales |
|---|---|---|---|---|
| Número de bloqueos de base de datos |
| Bloqueos de base de datos por modo/tipo | — |
| Número de interbloqueos |
| Interbloqueos | — |
| Llamadas realizadas a una función |
| Llamadas a funciones/min | Requiere
en
|
| Consultas canceladas debido a conflictos de recuperación. Solo en espera; cero en primarios |
| Conflictos de consulta | — |
| Número de escaneos secuenciales |
| Escaneos secuenciales/min | — |
| Total de datos escritos en archivos temporales por consultas |
| Archivos temporales e I/O temporal (MB/min) | — |
| Número de archivos temporales |
| Archivos temporales e I/O temporal (MB/min) | — |
Métricas de actividad de base de datos adicionales no utilizadas por el dashboard:
Métrica | Descripción | Unidad | Atributo |
|---|---|---|---|
| Bloques de disco ya encontrados en la caché del búfer |
| — |
| Bloques de disco leídos en esta base de datos |
| — |
| Filas recuperadas por consultas en la base de datos |
| — |
| Filas devueltas por consultas en la base de datos |
| — |
| Filas insertadas por consultas en la base de datos |
| — |
| Filas actualizadas por consultas en la base de datos |
| — |
| Filas eliminadas por consultas en la base de datos |
| — |
| Tiempo total de ejecución de las sentencias SQL rastreadas por
para la base de datos |
| — |
Métrica | Descripción | Unidad | Atributo |
|---|---|---|---|
| Reemplazo preciso para
, detrás de la puerta de característica
|
|
,
|
Las métricas de búsqueda de similitud de vectores requieren PostgreSQL 13+ y las extensiones pg_stat_statements y pgvector:
Métrica | Descripción | Unidad | Atributo |
|---|---|---|---|
| Ejecuciones de búsqueda de similitud de vectores, agrupadas por función de distancia |
|
|
| Tiempo de ejecución acumulado de las búsquedas vectoriales |
|
|
| Filas acumuladas devueltas por búsquedas vectoriales |
|
|
| Vectores insertados en tablas pgvector |
| — |
| Tiempo de ejecución acumulado de inserciones de pgvector |
| — |
Consulta evento
Los siguientes eventos están deshabilitados por defecto, pero se pueden habilitar para recopilar telemetry data a nivel de consulta.
Visibilidad en tiempo real de las sentencias de la base de datos actualmente en ejecución — una instantánea de un momento dado tomada en cada recopilación, no un log de ejecución completo. Este evento está desactivado de forma predeterminada y requiere que el usuario de monitoreo tenga pg_monitor.
Atributo | Descripción |
|---|---|
| Nombre de la base de datos. Esto es siempre
|
| El texto de la declaración SQL |
/
| Etiquetas de comentarios de correlación de APM. Para obtener más información, consulte |
| MD5 de SQL normalizado para la correlación entre motores |
| Usuario que inició sesión en este backend |
| Estado general actual del backend |
| ID de proceso de este backend |
| timestamp UTC (RFC3339) en el que se inició el backend/conexión. Estable durante la vida útil de la conexión, a diferencia de
, que cambia en cada consulta |
| Segundos enteros desde el inicio del backend.
si
no está disponible |
| Nombre de la aplicación conectada |
/
| Dirección IP del cliente/puerto TCP |
| Nombre de host de DNS inverso del cliente |
| Cuándo se inició la consulta actualmente activa (o la última) |
/
| Nombre/categoría del evento de espera, si el backend está esperando actualmente |
| Identificador de la consulta más reciente de este backend |
| Duración de la consulta en milisegundos delta |
| Matriz de PID que bloquean esta sesión. Vacío cuando no está bloqueado |
| Timestamp UTC en la que comenzó la espera de bloqueo actual. Vacío cuando no está bloqueado |
| Segundos enteros esperados por un bloqueo.
cuando no está bloqueado |
/
/
| Modo de bloqueo/tipo de recurso/nombre de relación en espera. Vacío cuando no está bloqueado |
| Timestamp UTC de cuando comenzó la transacción actual. Vacío cuando no hay ninguna transacción activa |
Estadísticas de ejecución agregadas por consulta normalizada de pg_stat_statements, informadas como valores incrementales (delta) desde el último ciclo de recopilación. Este evento está deshabilitado de forma predeterminada y requiere la extensión pg_stat_statements en cada base de datos escaneada.
Atributo | Descripción |
|---|---|
| Nombre de la base de datos. Esto es siempre
|
| El texto de la sentencia SQL (normalizado,
/
marcadores de posición) |
/
| Igual que
. Nota: refleja el llamador que se haya ejecutado primero —
calcula el hash de
solo a partir de la estructura de la consulta y congela el texto almacenado (comentarios incluidos) en la primera ejecución |
| MD5 de SQL normalizado para la correlación entre motores |
/
| Veces ejecutadas/filas recuperadas-afectadas, valores delta |
/
/
/
| Actividad de bloques compartidos, valores delta |
/
| Actividad de bloque temporal, valores delta |
| Hash que identifica consultas normalizadas idénticas |
| Rol que ejecutó la consulta |
/
| Tiempo total de ejecución/planificación, milisegundos delta |
| El plan EXPLAIN para la declaración, si se puede obtener — consulte la mecánica de EXPLAIN a continuación |
Mecánica de recopilación del plan de ejecución (EXPLAIN)
- Limitación de velocidad:
top_query_collection.max_explain_each_interval(predeterminado 1000) limita los EXPLAIN por extracción. - Almacenamiento en caché:
query_plan_cache_size/query_plan_cache_ttl(predeterminado 1000 entradas/1h) almacena en caché un plan una vez obtenido, identificado por ID de consulta. - Requisito de PostgreSQL 12+: el EXPLAIN de consulta parametrizada necesita
plan_cache_mode = force_generic_planantes dePREPARE/EXPLAIN EXECUTE—solo disponible en PostgreSQL 12+. En servidores más antiguos, el receptor detecta la versión y omite EXPLAIN para esa consulta en lugar de enviar unSETque fallaría. - Límite de privilegios: de forma predeterminada, EXPLAIN se ejecuta directamente como el usuario de monitoreo, y Postgres verifica los privilegios de la tabla en el momento de la planificación — por lo que las declaraciones de bloqueo de filas o de escritura fallan con
permission denieda menos que se otorgue acceso de escritura, lo cual el usuario de monitoreo nunca debería tener. Useexplain_function_name(consulte los permisos del plan EXPLAIN) para solucionar esto sin otorgar acceso de escritura. - Si no se puede obtener un plan por algún motivo,
postgresql.query_plansimplemente está vacío para esa fila — no aparece ningún error.
Documentación relacionada
Instrumentación en entornos autohospedados
Aprenda a configurar el monitoreo de PostgreSQL en entornos autohospedados con New Relic.
Instrumentación en entornos RDS
Aprenda a configurar el monitoreo de PostgreSQL en entornos RDS con New Relic.
Guía de solución de problemas
Aprenda a solucionar problemas comunes con el monitoreo de PostgreSQL.