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) | Ninguno |
| Número de búferes asignados |
| sum (acumulativa, int, monotónica) | Ninguno |
| Número de buffers escritos |
| sum (acumulativa, int, monotónica) |
|
| Número de checkpoints realizados |
| sum (acumulativa, int, monotónica) |
|
| Tiempo total dedicado a escribir y sincronizar archivos en el disco por puntos de control |
| suma (acumulativa, doble, monotónica) |
|
| 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) | Ninguno |
| Número de bloques leídos |
| sum (acumulativa, int, monotónica) |
|
| Número de commits |
| sum (acumulativa, int, monotónica) | Ninguno |
| Número máximo de conexiones de cliente permitidas |
| medidor (int) | Ninguno |
| Número de bases de datos de usuario |
| suma (acumulativa, int, no monótona) | Ninguno |
| Uso de disco de la base de datos |
| suma (acumulativa, int, no monótona) | Ninguno |
| Número de escaneos de índice en una tabla |
| sum (acumulativa, int, monotónica) | Ninguno |
| Tamaño del índice en el disco |
| medidor (int) | Ninguno |
| Número de operaciones de fila de base de datos |
| sum (acumulativa, int, monotónica) |
|
| Cantidad de datos retrasados en la replicación |
| medidor (int) |
|
| Número de reversiones |
| sum (acumulativa, int, monotónica) | Ninguno |
| Número de filas en la base de datos |
| suma (acumulativa, int, no monótona) |
|
| Número de tablas de usuario en una base de datos |
| suma (acumulativa, int, no monótona) | Ninguno |
| Espacio en disco utilizado por una tabla |
| suma (acumulativa, int, no monótona) | Ninguno |
| Número de veces que una tabla se limpió manualmente |
| sum (acumulativa, int, monotónica) | Ninguno |
| Antigüedad del archivo WAL más antiguo. Requiere WAL habilitado con al menos una réplica |
| medidor (int) | Ninguno |
| 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) |
|
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 | Ninguno |
| Número de interbloqueos |
| Interbloqueos | Ninguno |
| Llamadas realizadas a una función |
| Llamadas a funciones/min | Requiere |
| Consultas canceladas debido a conflictos de recuperación. Solo en espera; cero en primarios |
| Conflictos de consulta | Ninguno |
| Número de escaneos secuenciales |
| Escaneos secuenciales/min | Ninguno |
| Total de datos escritos en archivos temporales por consultas |
| Archivos temporales e I/O temporal (MB/min) | Ninguno |
| Número de archivos temporales |
| Archivos temporales e I/O temporal (MB/min) | Ninguno |
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 |
| Ninguno |
| Bloques de disco leídos en esta base de datos |
| Ninguno |
| Filas recuperadas por consultas en la base de datos |
| Ninguno |
| Filas devueltas por consultas en la base de datos |
| Ninguno |
| Filas insertadas por consultas en la base de datos |
| Ninguno |
| Filas actualizadas por consultas en la base de datos |
| Ninguno |
| Filas eliminadas por consultas en la base de datos |
| Ninguno |
| Tiempo total de ejecución de las sentencias SQL rastreadas por |
| Ninguno |
Métrica | Descripción | Unidad | Atributo |
|---|---|---|---|
| Reemplazo preciso para |
|
|
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 |
| Ninguno |
| Tiempo de ejecución acumulado de inserciones de pgvector |
| Ninguno |
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 Vincular la base de datos de PostgreSQL con APM |
| 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 |
| Segundos enteros desde el inicio de la conexión del backend. |
| 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. |
| 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, |
| Igual que |
| 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 |
| OID del rol que ejecutó la sentencia. Permanece configurado incluso después de eliminar el rol |
| Rol que ejecutó la consulta |
| Tiempo total de ejecución/planificación, milisegundos delta |
| El plan EXPLAIN para la sentencia, si se puede obtener (consulte la mecánica de EXPLAIN a continuación). No está presente aquí si el evento |
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: por defecto, EXPLAIN se ejecuta directamente como el usuario de monitoreo, y Postgres comprueba los privilegios de tabla en el momento del plan, por lo que las sentencias de bloqueo de filas o de escritura fallan con
permission denieda menos que se conceda acceso de escritura, algo que el usuario de monitoreo nunca debería tener. Utiliceexplain_function_name(consulte Planes de consulta para sentencias de escritura) para solucionar esto sin conceder acceso de escritura. - Si no se puede obtener un plan por cualquier motivo,
postgresql.query_plansimplemente está vacío para esa fila. No se muestra ningún error.
Plan de ejecución para una consulta, reportado como su propio evento para que el plan pueda filtrarse, enrutarse o descartarse independientemente de las estadísticas de top_query. Este evento requiere que db.server.top_query también esté habilitado.
Atributo | Descripción |
|---|---|
| Nombre de la base de datos. Esto es siempre |
| Código hash que identifica la consulta normalizada a la que pertenece este plan |
| Base de datos en la que se ejecutó la consulta |
| OID del rol que ejecutó la sentencia. Se mantiene establecido incluso después de eliminar el rol; se utiliza para volver a unir a |
| Nombre del rol que ejecutó la consulta. Vacío si el rol se ha eliminado desde entonces |
| El plan de ejecución que PostgreSQL utilizó para la consulta |
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.