| @@ -16,7 +16,7 @@ prometheus_node_exporter_enabled: true | |||||
| prometheus_postgres_exporter_enabled: true | prometheus_postgres_exporter_enabled: true | ||||
| # You can remove this, if unnecessary. | # You can remove this, if unnecessary. | ||||
| matrix_prometheus_nginxlog_exporter_enabled: true | |||||
| matrix_prometheus_traefik_exporter_enabled: true | |||||
| grafana_enabled: true | grafana_enabled: true | ||||
| @@ -64,7 +64,7 @@ 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_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_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](configuring-playbook-prometheus-postgres.md) 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. | |||||
| `matrix_prometheus_traefik_exporter_enabled`|Export [Traefik metrics](https://doc.traefik.io/traefik/observability/metrics/prometheus) to Prometheus and add Grafana dashboard for them. | |||||
| `grafana_enabled`|[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.example.com` subdomain) the dashboards with the graphs that we're interested in | `grafana_enabled`|[Grafana](https://grafana.com/) is the visual component. It shows (on the `stats.example.com` subdomain) the dashboards with the graphs that we're interested in | ||||
| `grafana_anonymous_access`|By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option. | `grafana_anonymous_access`|By default you need to log in to see graphs. If you want to publicly share your graphs (e.g. when asking for help in [`#synapse:matrix.org`](https://matrix.to/#/#synapse:matrix.org?via=matrix.org&via=privacytools.io&via=mozilla.org)) you'll want to enable this option. | ||||
| `grafana_default_admin_user`<br>`grafana_default_admin_password`|By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here | `grafana_default_admin_user`<br>`grafana_default_admin_password`|By default Grafana creates a user with `admin` as the username and password. If you feel this is insecure and you want to change it beforehand, you can do that here | ||||
| @@ -100,6 +100,7 @@ Name | Description | |||||
| `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_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_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_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. | ||||
| `matrix_prometheus_traefik_exporter_enabled`|Set this to `true` to export [Traefik metrics](https://doc.traefik.io/traefik/observability/metrics/prometheus) (locally, on the container network) and add Grafana dashboard for them. | |||||
| `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_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_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. | `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. | ||||
| @@ -5310,6 +5310,8 @@ prometheus_config_scrape_configs_auto: | | |||||
| (matrix_prometheus_services_connect_scraper_media_repo_scrape_configs if matrix_prometheus_services_connect_scraper_media_repo_enabled else []) | (matrix_prometheus_services_connect_scraper_media_repo_scrape_configs if matrix_prometheus_services_connect_scraper_media_repo_enabled else []) | ||||
| + | + | ||||
| (matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_configs if matrix_prometheus_services_connect_scraper_synapse_usage_exporter_enabled else []) | (matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_configs if matrix_prometheus_services_connect_scraper_synapse_usage_exporter_enabled else []) | ||||
| + | |||||
| (matrix_prometheus_services_connect_scraper_traefik_scrape_configs if matrix_prometheus_services_connect_scraper_traefik_enabled else []) | |||||
| }} | }} | ||||
| ###################################################################### | ###################################################################### | ||||
| @@ -5345,6 +5347,9 @@ matrix_prometheus_services_connect_scraper_hookshot_static_configs_target: "{{ m | |||||
| matrix_prometheus_services_connect_scraper_nginxlog_enabled: "{{ matrix_prometheus_nginxlog_exporter_enabled }}" | matrix_prometheus_services_connect_scraper_nginxlog_enabled: "{{ matrix_prometheus_nginxlog_exporter_enabled }}" | ||||
| matrix_prometheus_services_connect_scraper_nginxlog_static_configs_target: "{{ matrix_prometheus_nginxlog_exporter_identifier }}:{{ matrix_prometheus_nginxlog_exporter_container_metrics_port | string }}" | matrix_prometheus_services_connect_scraper_nginxlog_static_configs_target: "{{ matrix_prometheus_nginxlog_exporter_identifier }}:{{ matrix_prometheus_nginxlog_exporter_container_metrics_port | string }}" | ||||
| matrix_prometheus_services_connect_scraper_traefik_enabled: "{{ matrix_prometheus_traefik_exporter_enabled }}" | |||||
| matrix_prometheus_services_connect_scraper_traefik_static_configs_target: "{{ traefik_identifier }}:{{ traefik_config_entrypoint_metrics_port | string }}" | |||||
| matrix_prometheus_services_connect_scraper_media_repo_enabled: "{{ matrix_media_repo_enabled and matrix_media_repo_metrics_enabled }}" | matrix_prometheus_services_connect_scraper_media_repo_enabled: "{{ matrix_media_repo_enabled and matrix_media_repo_metrics_enabled }}" | ||||
| matrix_prometheus_services_connect_scraper_media_repo_static_configs_target: "{{ matrix_media_repo_identifier }}:{{ matrix_media_repo_metrics_port }}" | matrix_prometheus_services_connect_scraper_media_repo_static_configs_target: "{{ matrix_media_repo_identifier }}:{{ matrix_media_repo_metrics_port }}" | ||||
| @@ -5419,6 +5424,8 @@ grafana_dashboard_download_urls: | | |||||
| (matrix_media_repo_dashboard_urls if matrix_media_repo_metrics_enabled else []) | (matrix_media_repo_dashboard_urls if matrix_media_repo_metrics_enabled else []) | ||||
| + | + | ||||
| (matrix_synapse_usage_exporter_dashboard_urls if matrix_synapse_usage_exporter_enabled else []) | (matrix_synapse_usage_exporter_dashboard_urls if matrix_synapse_usage_exporter_enabled else []) | ||||
| + | |||||
| (matrix_traefik_dashboard_download_urls if matrix_traefik_dashboard_download_enabled else []) | |||||
| }} | }} | ||||
| grafana_provisioning_dashboard_template_files: | | grafana_provisioning_dashboard_template_files: | | ||||
| @@ -5932,6 +5939,9 @@ devture_container_socket_proxy_api_containers_enabled: true | |||||
| traefik_enabled: "{{ matrix_playbook_reverse_proxy_type == 'playbook-managed-traefik' }}" | traefik_enabled: "{{ matrix_playbook_reverse_proxy_type == 'playbook-managed-traefik' }}" | ||||
| # Controls whether Traefik prometheus exporter integration should be done | |||||
| matrix_prometheus_traefik_exporter_enabled: false | |||||
| traefik_identifier: matrix-traefik | traefik_identifier: matrix-traefik | ||||
| traefik_base_path: "{{ matrix_base_data_path }}/traefik" | traefik_base_path: "{{ matrix_base_data_path }}/traefik" | ||||
| @@ -5951,6 +5961,8 @@ traefik_config_providers_docker_endpoint: "{{ devture_container_socket_proxy_end | |||||
| traefik_container_additional_networks_auto: | | traefik_container_additional_networks_auto: | | ||||
| {{ | {{ | ||||
| ([devture_container_socket_proxy_container_network] if devture_container_socket_proxy_enabled else []) | ([devture_container_socket_proxy_container_network] if devture_container_socket_proxy_enabled else []) | ||||
| + | |||||
| ([matrix_monitoring_container_network] if matrix_prometheus_traefik_exporter_enabled else []) | |||||
| }} | }} | ||||
| traefik_systemd_required_services_list: | | traefik_systemd_required_services_list: | | ||||
| @@ -5960,6 +5972,14 @@ traefik_systemd_required_services_list: | | |||||
| ([devture_container_socket_proxy_identifier + '.service'] if devture_container_socket_proxy_enabled else []) | ([devture_container_socket_proxy_identifier + '.service'] if devture_container_socket_proxy_enabled else []) | ||||
| }} | }} | ||||
| traefik_config_metrics_prometheus_enabled: "{{ matrix_prometheus_traefik_exporter_enabled }}" | |||||
| traefik_container_metrics_host_bind_port: "{{ '' if matrix_prometheus_traefik_exporter_enabled else (traefik_config_entrypoint_metrics_port if traefik_config_entrypoint_metrics_enabled else '') }}" | |||||
| # Controls whether the Traefik grafana dashboard shall be downloaded | |||||
| matrix_traefik_dashboard_download_enabled: "{{ matrix_prometheus_traefik_exporter_enabled }}" | |||||
| matrix_traefik_dashboard_download_download_tag: master | |||||
| matrix_traefik_dashboard_download_urls: ["https://raw.githubusercontent.com/traefik/traefik/refs/heads/{{ matrix_traefik_dashboard_download_download_tag }}/contrib/grafana/traefik.json"] | |||||
| ######################################################################## | ######################################################################## | ||||
| # # | # # | ||||
| # /traefik # | # /traefik # | ||||
| @@ -143,6 +143,26 @@ matrix_prometheus_services_connect_scraper_nginxlog_scrape_configs: | | |||||
| }] | }] | ||||
| }} | }} | ||||
| # Controls whether Traefik shall be scraped | |||||
| matrix_prometheus_services_connect_scraper_traefik_enabled: false | |||||
| matrix_prometheus_services_connect_scraper_traefik_job_name: traefik | |||||
| matrix_prometheus_services_connect_scraper_traefik_metrics_path: /metrics | |||||
| matrix_prometheus_services_connect_scraper_traefik_scrape_interval: 15s | |||||
| matrix_prometheus_services_connect_scraper_traefik_scrape_timeout: 10s | |||||
| matrix_prometheus_services_connect_scraper_traefik_static_configs: "{{ [{'targets': [matrix_prometheus_services_connect_scraper_traefik_static_configs_target]}] }}" | |||||
| matrix_prometheus_services_connect_scraper_traefik_static_configs_target: '' | |||||
| # The final scrape config for the Traefik scraper | |||||
| matrix_prometheus_services_connect_scraper_traefik_scrape_configs: | | |||||
| {{ | |||||
| [{ | |||||
| 'job_name': matrix_prometheus_services_connect_scraper_traefik_job_name, | |||||
| 'metrics_path': matrix_prometheus_services_connect_scraper_traefik_metrics_path, | |||||
| 'scrape_interval': matrix_prometheus_services_connect_scraper_traefik_scrape_interval, | |||||
| 'scrape_timeout': matrix_prometheus_services_connect_scraper_traefik_scrape_timeout, | |||||
| 'static_configs': matrix_prometheus_services_connect_scraper_traefik_static_configs, | |||||
| }] | |||||
| }} | |||||
| # Controls whether media-repo shall be scraped | # Controls whether media-repo shall be scraped | ||||
| matrix_prometheus_services_connect_scraper_media_repo_enabled: false | matrix_prometheus_services_connect_scraper_media_repo_enabled: false | ||||
| matrix_prometheus_services_connect_scraper_media_repo_job_name: media-repo | matrix_prometheus_services_connect_scraper_media_repo_job_name: media-repo | ||||