Bonjour à tous. Dans cet article, je vais vous parler de pgSCV - un nouvel exportateur de métriques pour PostgreSQL (et pas seulement), pourquoi il est si bon et quels problèmes il résout.
Tous ceux qui utilisent Prometheus et PostgreSQL ont sûrement rencontré postgres_exporter. Cet exportateur est assez facile à mettre en place et à exécuter. Il offre également des possibilités d'expansion, en fonction de votre demande, vous pouvez décrire les métriques et les supprimer. Si vous avez une bonne connaissance du fonctionnement des statistiques post-grès, vous pouvez collecter un assez grand nombre de métriques. Mais comme vous le savez, en plus des métriques de Postgres lui-même, il est également souhaitable de collecter des métriques système, et s'il existe des services auxiliaires dans l'infrastructure, par exemple des extracteurs de connexion (pgbouncer, odyssey, etc.), alors les métriques devraient également être pris d'eux. Il s'avère que nous devons approvisionner davantage d'exportateurs.
Dans pgSCV, j'ai essayé de résoudre ces deux problèmes.
Solution un. pgSCV peut prendre immédiatement un très grand nombre de métriques de PostgreSQL sans avoir besoin de configuration supplémentaire. À mon avis, cela facilite grandement la tâche du lancement initial . Au lieu de perdre du temps à écrire une configuration personnalisée pour capturer des métriques supplémentaires, vous pouvez les sortir de la boîte immédiatement. La possibilité de configurer des métriques personnalisées est également présente . Une question raisonnable se pose: que se passe-t-il s'il y a trop de paramètres et que tous ne sont pas nécessaires? Dans ce cas, vous pouvez désactiver la collecte de métriques ou limiter la liste des bases de données à partir desquelles vous souhaitez collecter des métriques .
Deuxième solution. Pour le moment, pgSCV est capable de prendre des métriques du système, PostgreSQL et Pgbouncer. Pour ce faire, il recherche automatiquement ces services et commence à collecter des métriques à partir d'eux. Évidemment, pour collecter des métriques à partir des services réseau, vous avez besoin des détails de connexion. La capture des métriques ne se limite pas aux services locaux. Si vous le souhaitez, vous pouvez spécifier la collection de métriques des services hébergés sur d'autres nœuds.
Un cas d'utilisation typique est d'exécuter simplement pgSCV. Dans l'exemple ci-dessous, on suppose que l'utilisateur a déjà été créé.
curl -O -L https://github.com/weaponry/pgscv/releases/download/v0.5.0/pgscv_0.5.0_linux_amd64.tar.gz
tar xvzf pgscv_0.5.0_linux_amd64.tar.gz
cat << EOF > pgscv.yaml
defaults:
postgres_username: "monitoring"
postgres_password: "supersecretpassword"
EOF
./pgscv --config-file pgscv.yaml
Après le lancement, vous pouvez ouvrir une deuxième console et l'utiliser curl -s 127.0.0.1:9890/metrics
pour obtenir une liste de métriques.
Je note que pgSCV a été créé pour les besoins de Weaponry (un projet de surveillance de PostgreSQL et de tout ce qui l'entoure), maintenant pgSCV, à mon avis, s'est stabilisé et je n'ai pas honte de le montrer.
C'est tout, merci pour votre attention! Si vous avez des idées, des souhaits ou des bugs, écrivez aux discussions ou aux problèmes . Enfin, quelques liens:
pgSCV sur Github
wiki pgSCV
Commencer
Collectionneurs disponibles
Métriques disponibles