Browse Source

Introduce matrix_prometheus_traefik_exporter_enabled variable

pull/3688/head
ginta1337 1 year ago
parent
commit
4cef8cbb9f
3 changed files with 43 additions and 2 deletions
  1. +3
    -2
      docs/configuring-playbook-prometheus-grafana.md
  2. +20
    -0
      group_vars/matrix_servers
  3. +20
    -0
      roles/custom/matrix-prometheus-services-connect/defaults/main.yml

+ 3
- 2
docs/configuring-playbook-prometheus-grafana.md View File

@@ -16,7 +16,7 @@ prometheus_node_exporter_enabled: true
prometheus_postgres_exporter_enabled: true

# You can remove this, if unnecessary.
matrix_prometheus_nginxlog_exporter_enabled: true
matrix_prometheus_traefik_exporter_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_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.
`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_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
@@ -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_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.
`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_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.


+ 20
- 0
group_vars/matrix_servers View File

@@ -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_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_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_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_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: |
@@ -5932,6 +5939,9 @@ devture_container_socket_proxy_api_containers_enabled: true

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_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: |
{{
([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: |
@@ -5960,6 +5972,14 @@ traefik_systemd_required_services_list: |
([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 #


+ 20
- 0
roles/custom/matrix-prometheus-services-connect/defaults/main.yml View File

@@ -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
matrix_prometheus_services_connect_scraper_media_repo_enabled: false
matrix_prometheus_services_connect_scraper_media_repo_job_name: media-repo


Loading…
Cancel
Save