4e2780ff88
This commit introduces a new role that downloads and installs the prometheus community postgres exporter https://github.com/prometheus-community/postgres_exporter. A new credential is added to matrix_postgres_additional_databases that allows the exporter access to the database to gather statistics. A new dashboard was added to the grafana role, with some refactoring to enable the dashboard only if the new role is enabled. I've included some basic instructions for how to enable the role in the Docs section. In terms of testing, I've tested enabling the role, and disabling it to make sure it cleans up the container and systemd role.
49 lines
3 KiB
YAML
49 lines
3 KiB
YAML
# matrix-prometheus-postgres-exporter is an Prometheus exporter for postgres metrics
|
|
# See: https://github.com/prometheus-community/postgres_exporter
|
|
|
|
matrix_prometheus_postgres_exporter_enabled: false
|
|
|
|
matrix_prometheus_postgres_exporter_version: v0.9.0
|
|
matrix_prometheus_postgres_exporter_port: 9187
|
|
|
|
matrix_prometheus_postgres_exporter_docker_image: "quay.io/prometheuscommunity/postgres-exporter:{{ matrix_prometheus_postgres_exporter_version }}"
|
|
matrix_prometheus_postgres_exporter_docker_image_force_pull: "{{ matrix_prometheus_postgres_exporter_docker_image.endswith(':latest') }}"
|
|
|
|
# A list of extra arguments to pass to the container
|
|
matrix_prometheus_postgres_exporter_container_extra_arguments: ["-e PG_EXPORTER_AUTO_DISCOVER_DATABASES=true",
|
|
"-e PG_EXPORTER_WEB_LISTEN_ADDRESS=\":{{matrix_prometheus_postgres_exporter_port}}\"",
|
|
"-e DATA_SOURCE_NAME=\"postgresql://{{matrix_prometheus_postgres_exporter_database_username}}:{{matrix_prometheus_postgres_exporter_database_password}}@{{matrix_prometheus_postgres_exporter_database_hostname}}:5432/{{matrix_prometheus_postgres_exporter_database_name}}?sslmode=disable\"" ]
|
|
|
|
# List of systemd services that matrix-prometheus-postgres-exporter.service depends on
|
|
matrix_prometheus_postgres_exporter_systemd_required_services_list: ['docker.service']
|
|
|
|
# List of systemd services that matrix-prometheus-postgres-exporter.service wants
|
|
matrix_prometheus_postgres_exporter_systemd_wanted_services_list: []
|
|
|
|
# details for connecting to the database
|
|
matrix_prometheus_postgres_exporter_database_username: 'matrix_prometheus_postgres_exporter'
|
|
matrix_prometheus_postgres_exporter_database_password: 'some-password'
|
|
matrix_prometheus_postgres_exporter_database_hostname: 'matrix-postgres'
|
|
matrix_prometheus_postgres_exporter_database_port: 5432
|
|
matrix_prometheus_postgres_exporter_database_name: 'matrix_prometheus_postgres_exporter'
|
|
|
|
|
|
# Controls whether the matrix-prometheus container exposes its HTTP port (tcp/9100 in the container).
|
|
#
|
|
# Takes an "<ip>:<port>" value (e.g. "127.0.0.1:9100"), or empty string to not expose.
|
|
#
|
|
# Official recommendations are to run this container with `--net=host`,
|
|
# but we don't do that, since it:
|
|
# - likely exposes the metrics web server way too publicly (before applying https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1008)
|
|
# - or listens on a loopback interface only (--net=host and 127.0.0.1:9100), which is not reachable from another container (like `matrix-prometheus`)
|
|
#
|
|
# Using `--net=host` and binding to Docker's `matrix` bridge network may be a solution to both,
|
|
# but that's trickier to accomplish and won't necessarily work (hasn't been tested).
|
|
#
|
|
# Not using `--net=host` means that our network statistic reports are likely broken (inaccurate),
|
|
# because node-exporter can't see all interfaces, etc.
|
|
# For now, we'll live with that, until someone develops a better solution.
|
|
matrix_prometheus_postgres_exporter_container_http_host_bind_port: ''
|
|
|
|
matrix_prometheus_postgres_exporter_dashboard_urls:
|
|
- "https://grafana.com/api/dashboards/9628/revisions/7/download" |