Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
L'intégration New Relic PostgreSQL sur hôte reçoit et envoie les métriques d'inventaire de votre instance PostgreSQL à la plateforme New Relic, où vous pouvez agréger et visualiser les métriques de performance clés. Les données provenant de l'instance, de la base de données et du cluster vous aident à trouver la source des problèmes.
Pour installer l'intégration monitoring PostgreSQL, vous devez suivre les étapes suivantes :
Si PostgreSQL ne s'exécute pas sur Kubernetes ou Amazon ECS, vous pouvez installer l'agent d'infrastructure sur un hôte Linux ou Windows OS ou sur un hôte capable d'accéder à distance à l'endroit où PostgreSQL est installé. Sinon:
Si vous exécutez sur
Si vous exécutez sur
Installer et activer l'intégration
Pour installer l'intégration PostgreSQL, suivez les instructions adaptées à votre environnement.
Installation de Linux
Installez l'agent d'infrastructure et remplacez la variable INTEGRATION_FILE_NAME par nri-postgresql.
Changez de répertoire pour accéder au dossier configuration de l'intégration en exécutant :
Pour activer l'analyse et la transmission automatiques de Postgresql, copiez ou renommez le fichier postgresql-log.yml.example en postgresql-log.yml. Vous n'avez pas besoin de redémarrer l'agent mais vous devrez peut-être mettre à jour le fichier YML avec l'emplacement de votre fichier de log postgresql, si vous n'utilisez pas les emplacements par défaut.
Dans le répertoire d’intégration, C:\Program Files\New Relic\newrelic-infra\integrations.d\, créez une copie du fichier configuration d’exemple en exécutant :
Si installé sur l'hôte, modifiez la configuration dans le fichier de configuration YAML de l'intégration, postgresql-config.yml. La configuration au format YAML d'une intégration est l'endroit où vous pouvez placer les informations de connexion requises et configurer la manière dont les données sont collectées. Les options que vous modifiez dépendent de votre configuration et de vos préférences. Le fichier configuration contient des paramètres communs applicables à toutes les intégrations, tels que interval, timeout, inventory_source. Pour tout savoir sur ces paramètres courants, reportez-vous à notre document Format de configuration .
Important
Si vous utilisez toujours nos legacy fichiers configuration ou de définition, vérifiez le format configuration standard.
Les paramètres spécifiques liés à PostgreSQL sont définis à l'aide de la section env du fichier de configuration. Ces paramètres contrôlent la connexion à votre instance PostgreSQL ainsi que d'autres paramètres et fonctionnalités de sécurité. La liste des paramètres valides est décrite dans la section suivante de ce document.
PostgreSQL utilisateur et autorisations
Créez un utilisateur avec des autorisations SELECT sur :
pg_stat_database
pg_stat_database_conflicts
pg_stat_bgwriter
Pour créer l’utilisateur pour l’intégration 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;
Cela permettra à l'intégration de collecter des métriques globales liées à l'instance PostgreSQL.
Si vous souhaitez également obtenir des métriques liées aux tables et aux index (par exemple, la taille de la table et la taille de l'index), le rôle PostgreSQL utilisé par l'intégration (new_relic) a également besoin des autorisations SELECT sur les tables à partir desquelles il collectera les métriques. Par exemple, pour permettre à l'intégration de collecter des métriques de toutes les tables et index présents dans la base de données (dans le schema public), utilisez ce qui suit :
GRANTSELECTONALLTABLESINSCHEMApublicTO new_relic;
Si vous souhaitez également obtenir des métriques au niveau de la requête à partir du fichier de configuration de requête personnalisée PostgreSQL, le rôle PostgreSQL utilisé par l'intégration (new_relic) doit être ajouté au rôle (pg_read_all_stats). Cela est dû au fait que l'utilisateur utilise l'extension (pg_stat_statements).
GRANT pg_read_all_stats TO new_relic;
L'activation de l'extension pg_stat_statements peut nécessiter de la créer manuellement à partir d'une prompt de requête :
CREATE EXTENSION pg_stat_statements;
Fichiers d'exemple postgresql-config.yml
Éventail JSON : interprété comme une liste de noms de bases de données à partir de laquelle collecter toutes les métriques pertinentes, y compris les tables et index appartenant à cette base de données.
Par exemple:
collection_list:'["postgres"]'
Objet JSON : seule l'entité spécifiée dans l'objet sera collectée, aucune découverte automatique ne sera effectuée. Les niveaux de JSON sont database name -> schema name -> table name -> index name.
Options Azure/AWS SSL activées : les offres de base de données gérées Azure Flexible nécessitent SSL pour se connecter. AWS RDS/Aurora peut nécessiter SSL si votre version MySQL est 5.7+ et que require_secure_transport est défini sur ON dans votre groupe de paramètres Aurora. Pour répondre aux exigences SSL, ces paramètres dans postgresql-config.yml doivent être définis sur true.
Par exemple:
ENABLE_SSL:"true"
TRUST_SERVER_CERTIFICATE:"true"
Options de désactivation SSL Azure/AWS : en plus des paramètres ci-dessus, les paramètres SSL suivants doivent être placés en commentaire ou supprimés de la configuration. Cela est dû au fait que la configuration fait confiance au certificat du serveur ci-dessus.
Résumé : Une fois ces paramètres définis, le fichier de configuration Azure/AWS complet doit ressembler à celui ci-dessous. Remarque : l'agent d'infrastructure et l'intégration Postgresql doivent être installés sur un hôte avec accès réseau à l'instance de base de données.
Un fichier de configuration YAML supplémentaire avec un ou plusieurs SQL personnalisés peut être défini et l'intégration aura besoin du chemin d'accès au fichier dans le paramètre CUSTOM_METRICS_CONFIG.
L'intégration PostgreSQL collecte les métriques suivantes. Certains noms métriques sont préfixés par un indicateur de catégorie et un point, tels que db. ou index..
Attribut PostgreSQLDatabaseSample
Description
db.connections
Nombre de backend actuellement connectés à cette base de données.
db.maxconnections
Le nombre maximal de connexions simultanées au serveur de base de données.
db.commitsPerSecond
Transactions validées par seconde.
db.rollbacksPerSecond
Transactions annulées par seconde.
db.readsPerSecond
Nombre de blocs de disque lus dans cette base de données par seconde.
db.bufferHitsPerSecond
Nombre de fois où des blocs de disque ont déjà été trouvés dans le cache tampon, de sorte qu'une lecture n'était pas nécessaire. Cela inclut uniquement les hits dans le cache tampon PostgreSQL, pas dans le cache système de fichiers du système d'exploitation.
db.rowsReturnedPerSecond
Lignes renvoyées par requête par seconde.
db.rowsFetchedPerSecond
Lignes récupérées par requête par seconde.
db.rowsInsertedPerSecond
Lignes insérées par seconde.
db.rowsUpdatedPerSecond
Lignes mises à jour par seconde.
db.rowsDeletedPerSecond
Lignes supprimées par seconde.
db.conflicts.tablespacePerSecond
Nombre de requêtes dans cette base de données qui ont été annulées en raison de tablespaces supprimés.
db.conflicts.locksPerSecond
Nombre de requêtes dans cette base de données qui ont été annulées en raison de délais de verrouillage.
db.conflicts.snapshotPerSecond
Nombre de requêtes dans cette base de données qui ont été annulées en raison d'anciens snapshots.
db.conflicts.bufferpinPerSecond
Nombre de requêtes dans cette base de données qui ont été annulées en raison de tampons épinglés.
db.conflicts.deadlockPerSecond
Nombre de requêtes dans cette base de données qui ont été annulées en raison de blocages.
db.tempFilesCreatedPerSecond
Nombre de fichiers temporaires créés par requête dans cette base de données. Tous les fichiers temporaires sont comptés, quelle que soit la raison pour laquelle le fichier temporaire a été créé (par exemple, pour le tri ou le hachage) et quel que soit le paramètre log_temp_files .
db.tempWrittenInBytesPerSecond
Quantité totale de données écrites dans des fichiers temporaires par requête dans cette base de données. Tous les fichiers temporaires sont comptés, quelle que soit la raison pour laquelle le fichier temporaire a été créé et quel que soit le paramètre log_temp_files .
db.deadlocksPerSecond
Nombre de blocages détectés dans cette base de données.
db.readTimeInMillisecondsPerSecond
Temps passé à lire les blocs de fichiers de données par le backend dans cette base de données, en millisecondes.
db.writeTimeInMillisecondsPerSecond
Temps passé à écrire des blocs de fichiers de données par le backend dans cette base de données, en millisecondes.
Attribut PostgreSQLIndexSample
Description
index.sizeInBytes
La taille d'un index.
index.rowsReadPerSecond
Le nombre d'entrées d'index renvoyées par les analyses sur cet index.
index.rowsFetchedPerSecond
Le nombre d'entrées d'index récupérées par les analyses sur cet index.
Conseil
Avec PostgreSQL v17, nous avons renommé certaines métriques pour mieux refléter leurs tables sources. Vous pouvez voir les noms mis à jour en retrait sous leurs versions antérieures.
Nombre de fois qu'un backend a dû exécuter son propre appel fsync . Normalement, le rédacteur en arrière-plan les gère même lorsque le backend effectue sa propre écriture.
Le nombre moyen de requêtes par seconde au cours de la dernière période de statistiques.
pgbouncer.stats.avgBytesIn
Le trafic réseau client reçu.
pgbouncer.stats.avgBytesOut
Le trafic réseau client a été envoyé.
pgbouncer.stats.avgQueryDurationInMilliseconds
La durée moyenne d'une requête.
pgbouncer.pools.clientConnectionsActive
Connexions client liées à la connexion serveur et capables de traiter les requêtes.
pgbouncer.pools.clientConnectionsWaiting
Connexions client en attente d'une connexion serveur.
pgbouncer.pools.clientConnectionsWaitingCancelReq
Connexions client qui n’ont pas encore transmis les annulations de requête au serveur.
pgbouncer.pools.clientConnectionsActiveCancelReq
Connexions client qui ont transmis des annulations de requête au serveur et attendent la réponse du serveur.
pgbouncer.pools.serverConnectionsActiveCancel
Connexions au serveur qui transmettent actuellement une demande d'annulation.
pgbouncer.pools.serverConnectionsBeingCancel
Serveurs qui pourraient normalement devenir inactifs mais qui attendent de le faire jusqu'à ce que toutes requests d'annulation en cours qui ont été envoyées pour annuler une requête sur ce serveur soient terminées.
pgbouncer.pools.serverConnectionsActive
Connexions serveur liées à une connexion client.
pgbouncer.pools.serverConnectionsIdle
Les connexions au serveur sont inactives et prêtes pour une requête client.
pgbouncer.pools.serverConnectionsUsed
Les connexions au serveur sont inactives plus de server_check_delay, nécessitant server_check_query.
pgbouncer.pools.serverConnectionsTested
Les connexions au serveur s'exécutent actuellement sur server_reset_query ou server_check_query.
pgbouncer.pools.serverConnectionsLogin
Connexions au serveur actuellement en cours de connexion.
pgbouncer.pools.maxwaitInMilliseconds
Âge de la plus ancienne connexion client non desservie.