- postgres: use lib/pq conninfo DATA_SOURCE_NAME; the postgresql:// URL
form broke on special chars in the password (net/url: invalid userinfo)
- nginx: flush handlers after deploying stub_status so nginx reloads
before the exporter starts scraping
- valkey: drop invalid +arcount command from the exporter ACL set
(Valkey aborted startup parsing the ACL file)
- nginx: nginx-prometheus-exporter gated by nginx_exporter_enabled,
deploys loopback-only stub_status (8090), exporter on 9113
- postgres: postgres_exporter gated by postgres_exporter_enabled,
creates postgres_exporter role with pg_monitor, exporter on 9187
- valkey: redis_exporter gated by valkey_exporter_enabled, adds
read-only ACL user to users.acl, exporter on 9121
Each exporter follows the nut pattern (tasks/exporter.yml included from
main.yml, OS vars, 0600 secret env files, password asserts).