Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
La integración New Relic PostgreSQL en el host recibe y envía métricas de inventario desde su instancia de PostgreSQL a la plataforma New Relic, donde puede agregar y visualizar rendimiento métrico clave. Los datos de instancia, base de datos y clúster le ayudan a encontrar el origen de los problemas.
Para instalar la integración de monitoreo de PostgreSQL, debe seguir los siguientes pasos:
Nuestra integración es compatible con PostgreSQL hasta la versión 16.
Servicios gestionados compatibles
Amazon RDS
Azul Flexible
Sistema operativo soportado
Windows
linux
Para obtener una lista completa de versiones específicas de Windows y Linux, consulte la tabla de sistemas operativos compatibles.
Requisito del sistema
Una cuenta New Relic . ¿No tienes uno? ¡Registrate gratis! No se requiere tarjeta de crédito.
Si PostgreSQL no se ejecuta en Kubernetes o Amazon ECS, puede instalar el agente de infraestructura en un host con sistema operativo Linux o Windows o en un host capaz de acceder de forma remota al lugar donde está instalado PostgreSQL. De lo contrario:
Si está funcionando
Si está funcionando
Instalar y activar la integración.
Para instalar la integración de PostgreSQL, siga las instrucciones de su entorno.
Antes de reiniciar el agente de infraestructura, cree un usuario con permisos READ en las funciones requeridas.
Para habilitar el análisis y reenvío automático de Postgresql, copie o cambie el nombre del archivo postgresql-log.yml.example a postgresql-log.yml. No es necesario reiniciar el agente, pero es posible que deba actualizar el archivo YML con la ubicación de su archivo de registro postgresql, si no está utilizando las ubicaciones predeterminadas.
En el directorio de integración, C:\Program Files\New Relic\newrelic-infra\integrations.d\, cree una copia del archivo de configuración de muestra ejecutando:
Hay varias formas de configurar la integración, dependiendo de cómo la hayas instalado:
Si se habilita a través de
Si se habilita a través de
Si está instalado en el host, edite la configuración en el archivo de configuración YAML de la integración, postgresql-config.yml. La configuración de formato YAML de una integración es donde puede colocar las credenciales de inicio de sesión requeridas y configurar cómo se recopilan los datos. Las opciones que cambie dependen de su configuración y preferencia. El archivo de configuración tiene configuraciones comunes aplicables a todas las integraciones, como interval, timeout, inventory_source. Para leer todo sobre estas configuraciones comunes, consulte nuestro documento Formato de configuración .
Las configuraciones específicas relacionadas con PostgreSQL se definen usando la sección env del archivo de configuración. Estas configuraciones controlan la conexión a su instancia de PostgreSQL, así como otras configuraciones y características de seguridad. La lista de configuraciones válidas se describe en la siguiente sección de este documento.
Usuario y permisos de PostgreSQL
Cree un usuario con SELECT permisos en:
pg_stat_database
pg_stat_database_conflicts
pg_stat_bgwriter
Para crear el usuario para la integración de PostgreSQL:
CREATEUSER new_relic WITH PASSWORD MY_PASSWORD;
GRANTSELECTON pg_stat_database TO new_relic;
GRANTSELECTON pg_stat_database_conflicts TO new_relic;
GRANTSELECTON pg_stat_bgwriter TO new_relic;
Esto permitirá que la integración recopile métricas globales relacionadas con la instancia de PostgreSQL.
Si también desea obtener métricas relacionadas con tablas e índices (por ejemplo, tamaño de tabla y tamaño de índice), el rol de PostgreSQL utilizado por la integración (new_relic) también necesita permisos SELECT en las tablas de las cuales recopilará métricas. de. Por ejemplo, para permitir que la integración recopile métricas de todas las tablas e índices presentes en la base de datos (en el público schema), use lo siguiente:
GRANTSELECTONALLTABLESINSCHEMApublicTO new_relic;
Si también desea obtener métricas de nivel de consulta del archivo de configuración de consulta personalizada de PostgreSQL, la función de PostgreSQL utilizada por la integración (new_relic) debe agregarse a la función (pg_read_all_stats). Esto se debe a que el usuario aprovecha la extensión (pg_stat_statements).
GRANT pg_read_all_stats TO new_relic;
Habilitar la extensión pg_stat_statements puede requerir que la crees manualmente desde un símbolo de consulta:
CREATE EXTENSION pg_stat_statements;
Archivos de muestra postgresql-config.yml
Matriz JSON: Interpretada como una lista de nombres de bases de datos de la cual recopilar todas las métricas relevantes, incluidas las tablas e índices pertenecientes a esa base de datos.
Por ejemplo:
collection_list:'["postgres"]'
Objeto JSON: solo se recopilará la entidad especificada en el objeto, no se realizará ningún descubrimiento automático. Los niveles de JSON son database name -> schema name -> table name -> index name.
Opciones habilitadas para Azure/AWS SSL: las ofertas de base de datos administrada flexible de Azure requieren SSL para conectarse. AWS RDS/Aurora puede requerir SSL si su versión MySQL es 5.7+ y require_secure_transport está configurado en ON en su grupo de parámetros Aurora. Para cumplir con el requisito de SSL, estas configuraciones en postgresql-config.yml deben establecerse en true.
Por ejemplo:
ENABLE_SSL:"true"
TRUST_SERVER_CERTIFICATE:"true"
Opciones deshabilitadas de Azure/AWS SSL: además de las configuraciones anteriores, las siguientes configuraciones de SSL deben comentarse o eliminarse de la configuración. Esto se debe a que la configuración confía en el certificado del servidor anterior.
Resumen: una vez implementadas estas configuraciones, el archivo de configuración completo de Azure/AWS debería verse como el siguiente. Nota: el agente de infraestructura y la integración Postgresql deben instalarse en un host con acceso de red a la base de datos instancia.
Se puede definir un archivo de configuración YAML adicional con uno o más SQL personalizados y la integración necesitará la ruta al archivo en el parámetro CUSTOM_METRICS_CONFIG.
La integración PostgreSQL recoge la siguiente métrica. Algunos nombres de métricas tienen como prefijo un indicador de categoría y un punto, como db. o index..
PostgreSQLDatabaseSample atributo
Descripción
db.connections
Número de backend actualmente conectados a esta base de datos.
db.maxconnections
El número máximo de conexiones simultáneas al servidor de base de datos.
db.commitsPerSecond
Transacción comprometida por segundo.
db.rollbacksPerSecond
Transacción revertida por segundo.
db.readsPerSecond
Número de bloques de disco leídos en esta base de datos por segundo.
db.bufferHitsPerSecond
Número de veces que ya se encontraron bloques de disco en la memoria caché del búfer, por lo que no fue necesaria una lectura. Esto solo incluye visitas al caché del búfer de PostgreSQL, no al caché del sistema de archivos del sistema operativo.
db.rowsReturnedPerSecond
Filas devueltas por consulta por segundo.
db.rowsFetchedPerSecond
Filas recuperadas por consulta por segundo.
db.rowsInsertedPerSecond
Filas insertadas por segundo.
db.rowsUpdatedPerSecond
Filas actualizadas por segundo.
db.rowsDeletedPerSecond
Filas eliminadas por segundo.
db.conflicts.tablespacePerSecond
Número de consultas en esta base de datos que han sido canceladas debido a la caída de tablespaces.
db.conflicts.locksPerSecond
Número de consultas en esta base de datos que han sido canceladas por tiempos de espera de bloqueo.
db.conflicts.snapshotPerSecond
Número de consultas en esta base de datos que han sido canceladas debido a instantáneas antiguas.
db.conflicts.bufferpinPerSecond
Número de consultas en esta base de datos que han sido canceladas debido a buffers anclados.
db.conflicts.deadlockPerSecond
Número de consultas de esta base de datos que han sido canceladas por bloqueos.
db.tempFilesCreatedPerSecond
Número de ficheros temporales creados por consulta en esta base de datos. Se cuentan todos los archivos temporales, independientemente de por qué se creó el archivo temporal (por ejemplo, clasificación o hash) y de la configuración log_temp_files .
db.tempWrittenInBytesPerSecond
Cantidad total de datos escritos en archivos temporales por consulta en esta base de datos. Se cuentan todos los archivos temporales, independientemente de por qué se creó el archivo temporal y de la configuración log_temp_files .
db.deadlocksPerSecond
Número de interbloqueos detectados en esta base de datos.
db.readTimeInMillisecondsPerSecond
Tiempo dedicado a leer bloques de archivos de datos por backend en esta base de datos, en milisegundos.
db.writeTimeInMillisecondsPerSecond
Tiempo dedicado a escribir bloques de archivos de datos por backend en esta base de datos, en milisegundos.
PostgreSQLIndexSample atributo
Descripción
index.sizeInBytes
El tamaño de un índice.
index.rowsReadPerSecond
El número de entradas de índice devueltas por los escaneos en este índice.
index.rowsFetchedPerSecond
El número de entradas de índice obtenidas mediante escaneos en este índice.
PostgreSQLInstanceSample atributo
Descripción
bgwriter.checkpointsScheduledPerSecond
Número de controles programados que se han realizado.
bgwriter.checkpointsRequestedPerSecond
Número de controles solicitados que se han realizado.
bgwriter.buffersWrittenForCheckpointsPerSecond
Número de buffers escritos durante los puntos de control.
Número de buffers escritos por el escritor en segundo plano.
bgwriter.backgroundWriterStopsPerSecond
Número de veces que el escritor en segundo plano detuvo un análisis de limpieza porque había escrito demasiados buffers.
bgwriter.buffersWrittenByBackendPerSecond
Número de buffers escritos directamente por un backend.
bgwriter.buffersAllocatedPerSecond
Número de buffers asignados.
bgwriter.backendFsyncCallsPerSecond
Número de veces que un backend tuvo que ejecutar su propia llamada fsync . Normalmente, el escritor en segundo plano los maneja incluso cuando el backend realiza su propia escritura.
El número promedio de consultas por segundo en el último período de estadísticas.
pgbouncer.stats.avgBytesIn
El tráfico de red del cliente recibido.
pgbouncer.stats.avgBytesOut
El tráfico de red del cliente enviado.
pgbouncer.stats.avgQueryDurationInMilliseconds
La duración promedio de la consulta.
pgbouncer.pools.clientConnectionsActive
Conexiones de cliente vinculadas a la conexión del servidor y capaces de procesar la consulta.
pgbouncer.pools.clientConnectionsWaiting
Conexiones de cliente esperando en una conexión de servidor.
pgbouncer.pools.clientConnectionsWaitingCancelReq
Conexiones de clientes que aún no han enviado cancelaciones de consultas al servidor.
pgbouncer.pools.clientConnectionsActiveCancelReq
Conexiones de clientes que han enviado cancelaciones de consultas al servidor y están esperando la respuesta del servidor.
pgbouncer.pools.serverConnectionsActiveCancel
Conexiones de servidor que actualmente están reenviando una solicitud de cancelación.
pgbouncer.pools.serverConnectionsBeingCancel
Servidores que normalmente podrían quedar inactivos pero que están esperando hacerlo hasta que se hayan completado todas las solicitudes de cancelación en curso que se enviaron para cancelar una consulta en este servidor.
pgbouncer.pools.serverConnectionsActive
Conexiones de servidor vinculadas a una conexión de cliente.
pgbouncer.pools.serverConnectionsIdle
Conexiones del servidor inactivas y listas para una consulta del cliente.
pgbouncer.pools.serverConnectionsUsed
Las conexiones del servidor están inactivas durante más de server_check_delay y necesitan server_check_query.
pgbouncer.pools.serverConnectionsTested
Conexiones de servidor que actualmente se ejecutan server_reset_query o server_check_query.
pgbouncer.pools.serverConnectionsLogin
Conexiones del servidor actualmente en proceso de inicio de sesión.
pgbouncer.pools.maxwaitInMilliseconds
Antigüedad de la conexión de cliente no atendida más antigua.