Merge the document for instruction about metrics for Postgres to docs/configuring-playbook-prometheus-grafana.md to improve maintainability
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
This commit is contained in:
		| @@ -33,11 +33,28 @@ Name | Description | ||||
| -----|---------- | ||||
| `prometheus_enabled`|[Prometheus](https://prometheus.io) is a time series database. It holds all the data we're going to talk about. | ||||
| `prometheus_node_exporter_enabled`|[Node Exporter](https://prometheus.io/docs/guides/node-exporter/) is an addon of sorts to Prometheus that collects generic system information such as CPU, memory, filesystem, and even system temperatures. | ||||
| `prometheus_postgres_exporter_enabled`|[Postgres Exporter](configuring-playbook-prometheus-postgres.md) is an addon of sorts to expose Postgres database metrics to Prometheus. | ||||
| `prometheus_postgres_exporter_enabled`|[Postgres Exporter](#enabling-metrics-and-graphs-for-postgres-optional) is an addon of sorts to expose Postgres database metrics to Prometheus. | ||||
| `matrix_prometheus_nginxlog_exporter_enabled`|[nginx Log Exporter](configuring-playbook-prometheus-nginxlog.md) is an addon of sorts to expose nginx logs to Prometheus. | ||||
|  | ||||
| **Note**: the retention policy of Prometheus metrics is [15 days by default](https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects). Older data gets deleted automatically. | ||||
|  | ||||
| #### Enabling metrics and graphs for Postgres (optional) | ||||
|  | ||||
| Expanding on the metrics exposed by the [synapse exporter and the node exporter](configuring-playbook-prometheus-grafana.md), the playbook enables the [postgres exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your postgres database. | ||||
|  | ||||
| To enable the postgres exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: | ||||
|  | ||||
| ```yaml | ||||
| prometheus_postgres_exporter_enabled: true | ||||
| ``` | ||||
|  | ||||
| Name | Description | ||||
| -----|---------- | ||||
| `prometheus_postgres_exporter_enabled`|Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false' | ||||
| `prometheus_postgres_exporter_database_username`| The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter' | ||||
| `prometheus_postgres_exporter_database_password`| The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook | ||||
| `prometheus_postgres_exporter_container_labels_traefik_enabled`|If set to `true`, exposes the Postgres exporter metrics on `https://matrix.example.com/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` on that other documentation page. | ||||
|  | ||||
| #### Extending the configuration | ||||
|  | ||||
| There are some additional things you may wish to configure about Prometheus. | ||||
| @@ -123,8 +140,8 @@ Name | Description | ||||
| `matrix_synapse_metrics_proxying_enabled`|Set this to `true` to expose Synapse's metrics on `https://matrix.example.com/metrics/synapse/main-process` and `https://matrix.example.com/metrics/synapse/worker/TYPE-ID`. Read [below](#collecting-synapse-worker-metrics-to-an-external-prometheus-server) if you're running a Synapse worker setup (`matrix_synapse_workers_enabled: true`). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. | ||||
| `prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter (locally, on the container network). | ||||
| `prometheus_node_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. | ||||
| `prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](configuring-playbook-prometheus-postgres.md) (locally, on the container network). | ||||
| `prometheus_postgres_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [Postgres exporter](configuring-playbook-prometheus-postgres.md) metrics on `https://matrix.example.com/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. | ||||
| `prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](#enabling-metrics-and-graphs-for-postgres-optional) (locally, on the container network). | ||||
| `prometheus_postgres_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [Postgres exporter](#enabling-metrics-and-graphs-for-postgres-optional) metrics on `https://matrix.example.com/metrics/postgres-exporter`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. | ||||
| `matrix_prometheus_nginxlog_exporter_enabled`|Set this to `true` to enable the [nginx Log exporter](configuring-playbook-prometheus-nginxlog.md) (locally, on the container network). | ||||
| `matrix_sliding_sync_metrics_enabled`|Set this to `true` to make [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) expose metrics (locally, on the container network). | ||||
| `matrix_sliding_sync_metrics_proxying_enabled`|Set this to `true` to expose the [Sliding Sync](configuring-playbook-sliding-sync-proxy.md) metrics on `https://matrix.example.com/metrics/sliding-sync`. To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` above. | ||||
| @@ -178,3 +195,4 @@ As with all other services, you can find the logs in [systemd-journald](https:// | ||||
| - [The Prometheus scraping rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus) (we use v2) | ||||
| - [The Synapse Grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana) | ||||
| - [The Node Exporter dashboard](https://github.com/rfrail3/grafana-dashboards) (for generic non-synapse performance graphs) | ||||
| - [The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic postgres dashboard) | ||||
|   | ||||
| @@ -1,46 +0,0 @@ | ||||
| <!-- | ||||
| SPDX-FileCopyrightText: 2021 Raymond Coetzee | ||||
| SPDX-FileCopyrightText: 2021 WobbelTheBear | ||||
| SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev | ||||
| SPDX-FileCopyrightText: 2024 Suguru Hirahara | ||||
|  | ||||
| SPDX-License-Identifier: AGPL-3.0-or-later | ||||
| --> | ||||
|  | ||||
| # Enabling metrics and graphs for Postgres (optional) | ||||
|  | ||||
| Expanding on the metrics exposed by the [synapse exporter and the node exporter](configuring-playbook-prometheus-grafana.md), the playbook enables the [postgres exporter](https://github.com/prometheus-community/postgres_exporter) that exposes more detailed information about what's happening on your postgres database. | ||||
|  | ||||
| ## Adjusting the playbook configuration | ||||
|  | ||||
| To enable the postgres exporter, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: | ||||
|  | ||||
| ```yaml | ||||
| prometheus_postgres_exporter_enabled: true | ||||
| ``` | ||||
|  | ||||
| ## Installing | ||||
|  | ||||
| After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: | ||||
|  | ||||
| <!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. --> | ||||
| ```sh | ||||
| ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start | ||||
| ``` | ||||
|  | ||||
| The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` | ||||
|  | ||||
| `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too. | ||||
|  | ||||
| ## What does it do? | ||||
|  | ||||
| Name | Description | ||||
| -----|---------- | ||||
| `prometheus_postgres_exporter_enabled`|Enable the postgres prometheus exporter. This sets up the docker container, connects it to the database and adds a 'job' to the prometheus config which tells prometheus about this new exporter. The default is 'false' | ||||
| `prometheus_postgres_exporter_database_username`| The 'username' for the user that the exporter uses to connect to the database. The default is 'matrix_prometheus_postgres_exporter' | ||||
| `prometheus_postgres_exporter_database_password`| The 'password' for the user that the exporter uses to connect to the database. By default, this is auto-generated by the playbook | ||||
| `prometheus_postgres_exporter_container_labels_traefik_enabled`|If set to `true`, exposes the Postgres exporter metrics on `https://matrix.example.com/metrics/postgres-exporter` for usage with an [external Prometheus server](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server). To password-protect the metrics, see `matrix_metrics_exposure_http_basic_auth_users` on that other documentation page. | ||||
|  | ||||
| ## More information | ||||
|  | ||||
| - [The PostgresSQL dashboard](https://grafana.com/grafana/dashboards/9628) (generic postgres dashboard) | ||||
		Reference in New Issue
	
	Block a user