Traqueur en tâche de fond

Les utilisateurs n'aiment ni interrompre leur travail ni regarder le sablier
Répondre
Phil
Administrateur du site
Messages : 225
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Traqueur en tâche de fond

Message par Phil » dim. 5 nov. 2017 18:24

Merci à un utilisateur pour sa question : "comment faut-il faire fonctionner le traqueur pour faire des rapports avec grafana ?"

Réponse : il faut faire tourner le traqueur en tâche de fond, par exemple en l'intégrant avec systemd ou autre. Pour tester rapidement, un petit script lancé en nohup peut aussi être suffisant, exemple :

Code : Tout sélectionner

while (true) do
	/var/lib/postgresql/traqueur.sh -b U -p -g "Cluster de test" -j -d 1
	/var/lib/postgresql/traqueur.sh -m 10
done
Cela permet de garder une dizaine de jours de données de traque. Attention, l'option -j utilise le partitionnement natif (ou déclaratif) et ne fonctionne donc qu'avec PostgreSQL 10+
Cdlt. Phil - pgphil.ovh

Phil
Administrateur du site
Messages : 225
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Traqueur en tâche de fond (systemd)

Message par Phil » mer. 15 mai 2019 00:59

Merci à un administrateur système pour sa question :

"Je lis qu'il est possible d'intégrer le traqueur avec systemd. Pouvez-vous détailler ?"

Réponse :

Oui, j'ai modifié récemment le traqueur pour faciliter cette intégration. Il faut une version 3.4.2 ou supérieure du traqueur et une version 11 ou supérieure de PostgreSQL pour bénéficier de l'option -K permettant de configurer facilement l'arrêt via ExecStopPost. Je reporterai pour les versions 10 et inférieures de PostgreSQL si j'ai des demandes.
Voici un exemple de fichier de configuration :

Code : Tout sélectionner

 
cat /etc/systemd/traqueur@11-main.service 
 
[Unit]
Description=Traqueur PostgreSQL Cluster 11-main
After=postgresql@11-main.service
Requires=postgresql@11-main.service

[Service]
Type=simple
Restart=always
RestartSec=1
User=postgres
ExecStart=/opt/pgphil/traqueur.sh -c "-p 5432 -d traqueur" -m 10 -b U -j -p -u -g "main" -d 1
ExecStopPost=/opt/pgphil/traqueur.sh -c "-p 5432 -d traqueur" -K

[Install]
WantedBy=multi-user.target

Code : Tout sélectionner

systemctl status traqueur@11-main.service
● traqueur@11-main.service - Traqueur PostgreSQL Cluster 11-main
   Loaded: loaded (/etc/systemd/system/traqueur@11-main.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-05-15 00:34:10 CEST; 32min ago
  Process: 7722 ExecStopPost=/opt/pgphil/traqueur.sh -c -p 5432 -d traqueur -K (code=exited, status=0/SUCCESS)
 Main PID: 7775 (traqueur.sh)
   CGroup: /system.slice/system-traqueur.slice/traqueur@11-main.service
           ├─7775 /bin/bash /opt/pgphil/traqueur.sh -c -p 5432 -d traqueur -m 10 -b U -j -p -u -g main -d 1
           └─7831 /usr/lib/postgresql/11/bin/psql -p 5432 -d traqueur -f /tmp/traqueur.7775 -v ON_ERROR_STOP=1 --quiet -X

mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: traqueur 3.04.03 - https://pgphil.ovh - performance tool for PostgreSQL 9.4 => 12
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: INFORMATION, connected to dedicated database traqueur
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: INFORMATION, PostgreSQL version : 110003
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: INFORMATION, deleting data collected in batch mode ...
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: SET
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: START TRANSACTION
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: DO
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: COMMIT
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: INFORMATION, sql preparation ...
mai 15 00:34:10 vps197701.ovh.net traqueur.sh[7775]: INFORMATION, sql execution ...

C'est un exemple à adapter dans votre contexte. Il est valable sur Debian Stretch ou Buster pour un cluster PostgreSQL 11 appelé main écoutant sur le port 5432. Les données sont stockées dans des tables partitionnées et unlogged d'une base traqueur pendant 10 jours. Prévoir environ 1Go pour la base traqueur mais cela dépend bien sûr de l'activité.
Cdlt. Phil - pgphil.ovh

Répondre