当前位置:网站首页>Prometheus Export (XV) PostgreSQL Server export

Prometheus Export (XV) PostgreSQL Server export

2021-12-03 23:53:53 InfoQ


Cet article a été inclus dans Prometheus Ensemble 
Prometheus Peut recueillir ces indicateurs?-- Fréquent Exporter Ensemble
 Moyenne.

Ces dernières années,Dans une base de données relationnelle, PostgreSQL Grand spectacle,L'utilisation augmente très rapidement.Aujourd'hui, regardons PostgreSQL Surveillance.

Pour PostgreSQL Base de données Prometheus Community Offre un PostgreSQL Server Exporter Pour recueillir des indicateurs de surveillance,L'adresse officielle de l'entrepôt est https://github.com/prometheus-community/postgres_exporter ,PostgreSQL Server Exporter C'est déjà PostgreSQL De 9.4、9.5、9.6、10、11、12、13 Testé sur la version.La dernière version actuelle est v0.10.0 ,Posted on 2021 Année7 Mois 8 Jour.

Fonctionnement de l'installation

# Start an example database
docker run --net=host -it --rm -e POSTGRES_PASSWORD=password postgres
# Connect to it
docker run \
 --net=host \
 -e DATA_SOURCE_NAME="postgresql://postgres:password@localhost:5432/postgres?sslmode=disable" \
 quay.io/prometheuscommunity/postgres-exporter:v0.10.0

PostgreSQL Server Exporter  Il y a beaucoup de paramètres à choisir au démarrage , Les détails scientifiques sont les suivants :

  • help  Afficher les informations d'aide ,Peut également être utilisé --help-long Et --help-man .
  • web.listen-address  Le programme écoute après le démarrage  web Port, Les données de surveillance de l'exposition sont également ce port ,Par défaut :9187 .
  • web.telemetry-path  Le chemin de l'indicateur d'exposition ,Par défaut /metrics.
  • disable-default-metrics  Désactiver la collecte par défaut à la métrique , N'utilisez que via  --extend.query-path Désignation queries.yaml  Indicateurs définis dans le document .
  • disable-settings-metrics  Si vous ne voulez pas  pg_settings  Ce paramètre peut être utilisé pour désactiver .
  • auto-discover-databases  Découverte dynamique d'instances de base de données sur le serveur .
  • extend.query-path  Chemin de fichier pour personnaliser les paramètres de requête , Ce fichier utilise  YAML Format à écrire, Vérifier le format du fichier avant de commencer .
  • dumpmaps  Ce paramètre ne fonctionnera pas  Exporter , Seules les relations internes de cartographie des indicateurs seront imprimées .Pour debug  Fichier de requête personnalisé .
  • constantLabels  Pour définir tous les paramètres  Label, En général, une liste ,Adoption label=value  Ce genre de réglage d'une paire à l'autre ,Le Centre est séparé par des virgules.
  • version Imprimer Exporter Version de.
  • exclude-databases Activer autoDiscoverDatabases  Liste des bases de données à ne pas collecter .
  • include-databases Activer autoDiscoverDatabases  Seules les instances de base de données de cette liste de base de données sont collectées .
  • log.level  Définir la base du Journal ,C'est tout. 4 Moyenne, debug, info, warn, error, Sélectionnez - en un. .
  • log.format  Format du Journal , logfmt Ou json.
  • web.config.file Utiliser TLS Ou basic authentication  Profil à l'époque , La mise en jachère de ce fichier suit  exporter-toolkit  Spécifications de l'entrepôt .

PostgreSQL Server Exporter  Il y a beaucoup d'options qui peuvent être définies avec des variables d'environnement au démarrage ,SiExporter  S'il fonctionne sur une machine en binaire , Les variables d'environnement ne sont pas recommandées , Parce que la gestion des variables d'environnement est très fastidieuse . Si c'est un miroir de conteneur , Les variables d'environnement seront mieux gérées . Les variables d'environnement disponibles sont les suivantes :

  • DATA_SOURCE_NAME the default legacy format. Accepts URI form and key=value form arguments. The URI may contain the username and password to connect with.
  • DATA_SOURCE_URI an alternative to DATA_SOURCE_NAME which exclusively accepts the hostname without a username and password component. For example, my_pg_hostname or my_pg_hostname?sslmode=disable.
  • DATA_SOURCE_URI_FILE The same as above but reads the URI from a file.
  • DATA_SOURCE_USER When using DATA_SOURCE_URI, this environment variable is used to specify the username.
  • DATA_SOURCE_USER_FILE The same, but reads the username from a file.
  • DATA_SOURCE_PASS When using DATA_SOURCE_URI, this environment variable is used to specify the password to connect with.
  • DATA_SOURCE_PASS_FILE The same as above but reads the password from a file.
  • PG_EXPORTER_WEB_LISTEN_ADDRESS Address to listen on for web interface and telemetry. Default is :9187.
  • PG_EXPORTER_WEB_TELEMETRY_PATH Path under which to expose metrics. Default is /metrics.
  • PG_EXPORTER_DISABLE_DEFAULT_METRICS Use only metrics supplied from queries.yaml. Value can be true or false. Default is false.
  • PG_EXPORTER_DISABLE_SETTINGS_METRICS Use the flag if you don't want to scrape pg_settings. Value can be true or false. Default is false.
  • PG_EXPORTER_AUTO_DISCOVER_DATABASES Whether to discover the databases on a server dynamically. Value can be true or false. Default is false.
  • PG_EXPORTER_EXTEND_QUERY_PATH Path to a YAML file containing custom queries to run. Check out queries.yaml for examples of the format.
  • PG_EXPORTER_CONSTANT_LABELS Labels to set in all metrics. A list of label=value pairs, separated by commas.
  • PG_EXPORTER_EXCLUDE_DATABASES A comma-separated list of databases to remove when autoDiscoverDatabases is enabled. Default is empty string.
  • PG_EXPORTER_INCLUDE_DATABASES A comma-separated list of databases to only include when autoDiscoverDatabases is enabled. Default is empty string, means allow all.
  • PG_EXPORTER_METRIC_PREFIX A prefix to use for each of the default metrics exported by postgres-exporter. Default is pg

En outre,  
PG_
  La variable d'environnement initiale écrase les paramètres de la ligne de commande lorsqu'elle est utilisée ,Priorité élevée.

Ajouter un nouvel indicateur de surveillance

Si des mesures de surveillance supplémentaires sont ajoutées à l'avenir , Exporter  On tentera de les ajouter et de les exporter dynamiquement , Mais les types de ces indicateurs seront marqués comme  “untyped”. En copiant ces tableaux et en utilisant  Python Fragment de code,Peut être obtenu à partir de Postgres  Il est facile de créer des cartes d'autres indicateurs dans le document :

x = """tab separated raw text of a documentation table"""
for l in StringIO(x):
 column, ctype, description = l.split('\t')
 print """"{0}" : {{ prometheus.CounterValue, prometheus.NewDesc("pg_stat_database_{0}", "{2}", nil, nil) }}, """.format(column.strip(), ctype, description.strip())

Ajustement approprié de la nouvelle production  Prometheus  Surveiller la valeur du type d'indicateur , Cela permet de préciser le type d'indicateur , Et facilite la recherche et le calcul .

Extension.query-path Le paramètre en ligne de commande spécifie un YAMLDocumentation.Inqueries.yaml Quelques exemples sont donnés dans .

--extend.query-path
  Les paramètres en ligne de commande fournissent un  YAML Documentation, Ce fichier vous permet de personnaliser les paramètres de surveillance à collecter , La rédaction de ce document peut se référer à  
queries.yaml
 .

Désactiver la collecte des paramètres par défaut

Si vous utilisez Exporter  Non officiellement soutenu  Postgres Version,Par exemple, 8.2.15 Version Postgres ,Ou Postgres Une variante de,Par exemple, Greenplum ,Vous pouvez utiliser 
--disable-default-metrics
  Paramètre désactive toutes les acquisitions de paramètres par défaut , Pour que toutes les mesures intégrées n'apparaissent pas .Besoin d'utiliser
--extend.query-path
 Désignation queries.yaml  Fichier pour spécifier les paramètres à collecter . Sinon, seuls les  Exporter  Indicateurs propres , Impossible de collecter les paramètres de la base de données .

Ouvrir l'Instance de base de données autodiscover

Pour obtenir les données des indicateurs de surveillance de toutes les bases de données du serveur de base de données ,Peut passer 
--auto-discover-databases
  Base de données de découverte dynamique des paramètres en ligne de commande  DSN.
SELECT datname FROM pg_database WHERE datallowconn = true AND datistemplate = false and datname != current_database()
  Toutes les configurations DSNExécution, Quand le résultat est vrai , Créer un nouvel ensemble de DSN, Saisir les indicateurs de surveillance pour .

Ça ira avec  
--exclude-databases
 Et 
--include-databases
  Deux paramètres sont utilisés ,
--exclude-databases
  Vous pouvez supprimer les bases de données indésirables ,
--include-databases
  Vous pouvez conserver les données que vous voulez seulement .

Résumé

PostgreSQL Server Exporter  Acquisition flexible  Postgres  Indicateurs de suivi de la base de données .

版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/12/20211203234640557p.html

随机推荐