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.
55 lines
2.5 KiB
YAML
55 lines
2.5 KiB
YAML
---
|
|
|
|
#
|
|
# Tasks related to setting up matrix-prometheus-postgres-exporter
|
|
#
|
|
|
|
- name: Ensure matrix-prometheus-postgres-exporter image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_prometheus_postgres_exporter_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
force_source: "{{ matrix_prometheus_postgres_exporter_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_prometheus_postgres_exporter_docker_image_force_pull }}"
|
|
when: "matrix_prometheus_postgres_exporter_enabled|bool"
|
|
|
|
- name: Ensure matrix-prometheus-postgres-exporter.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-prometheus-postgres-exporter.service.j2"
|
|
dest: "{{ matrix_systemd_path }}/matrix-prometheus-postgres-exporter.service"
|
|
mode: 0644
|
|
register: matrix_prometheus_postgres_exporter_systemd_service_result
|
|
when: matrix_prometheus_postgres_exporter_enabled|bool
|
|
|
|
- name: Ensure systemd reloaded after matrix-prometheus.service installation
|
|
service:
|
|
daemon_reload: yes
|
|
when: "matrix_prometheus_postgres_exporter_enabled|bool and matrix_prometheus_postgres_exporter_systemd_service_result.changed"
|
|
|
|
#
|
|
# Tasks related to getting rid of matrix-prometheus-postgres-exporter (if it was previously enabled)
|
|
#
|
|
|
|
- name: Check existence of matrix-prometheus-postgres-exporter service
|
|
stat:
|
|
path: "{{ matrix_systemd_path }}/matrix-prometheus-postgres-exporter.service"
|
|
register: matrix_prometheus_postgres_exporter_service_stat
|
|
|
|
- name: Ensure matrix-prometheus-postgres-exporter is stopped
|
|
service:
|
|
name: matrix-prometheus-postgres-exporter
|
|
state: stopped
|
|
daemon_reload: yes
|
|
register: stopping_result
|
|
when: "not matrix_prometheus_postgres_exporter_enabled|bool and matrix_prometheus_postgres_exporter_service_stat.stat.exists"
|
|
|
|
- name: Ensure matrix-prometheus-postgres-exporter.service doesn't exist
|
|
file:
|
|
path: "{{ matrix_systemd_path }}/matrix-prometheus-postgres-exporter.service"
|
|
state: absent
|
|
when: "not matrix_prometheus_postgres_exporter_enabled|bool and matrix_prometheus_postgres_exporter_service_stat.stat.exists"
|
|
|
|
- name: Ensure systemd reloaded after matrix-prometheus-postgres-exporter.service removal
|
|
service:
|
|
daemon_reload: yes
|
|
when: "not matrix_prometheus_postgres_exporter_enabled|bool and matrix_prometheus_postgres_exporter_service_stat.stat.exists"
|