Matrix Docker Ansible eploy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
11 KiB

  1. # SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister
  2. # SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev
  3. #
  4. # SPDX-License-Identifier: AGPL-3.0-or-later
  5. ---
  6. # matrix-prometheus-services-connect is a role which helps integrate
  7. # the various Matrix services with the Prometheus role.
  8. # Controls whether Synapse integration should be done
  9. matrix_prometheus_services_connect_synapse_enabled: false
  10. # Controls whether the synapse rules shall be loaded into Prometheus
  11. matrix_prometheus_services_connect_synapse_rules_enabled: "{{ matrix_prometheus_services_connect_synapse_enabled }}"
  12. # Controls whether the synapse rules shall be downloaded
  13. matrix_prometheus_services_connect_synapse_rules_download_enabled: "{{ matrix_prometheus_services_connect_synapse_rules_enabled }}"
  14. matrix_prometheus_services_connect_synapse_rules_download_synapse_tag: master
  15. matrix_prometheus_services_connect_synapse_rules_download_src_url: "https://raw.githubusercontent.com/{{ matrix_synapse_github_org_and_repo }}/{{ matrix_prometheus_services_connect_synapse_rules_download_synapse_tag }}/contrib/prometheus/synapse-v2.rules"
  16. matrix_prometheus_services_connect_synapse_rules_download_dir_path: ''
  17. matrix_prometheus_services_connect_synapse_rules_download_owner: ''
  18. matrix_prometheus_services_connect_synapse_rules_download_group: ''
  19. # Controls whether Synapse shall be scraped
  20. matrix_prometheus_services_connect_scraper_synapse_enabled: false
  21. # Controls scraping the Synapse processes
  22. matrix_prometheus_services_connect_scraper_synapse_job_name: synapse
  23. matrix_prometheus_services_connect_scraper_synapse_metrics_path: /_synapse/metrics
  24. matrix_prometheus_services_connect_scraper_synapse_scrape_interval: 15s
  25. matrix_prometheus_services_connect_scraper_synapse_scrape_timeout: 15s
  26. matrix_prometheus_services_connect_scraper_synapse_configs: |
  27. {{
  28. [{
  29. 'job_name': matrix_prometheus_services_connect_scraper_synapse_job_name,
  30. 'metrics_path': matrix_prometheus_services_connect_scraper_synapse_metrics_path,
  31. 'scrape_interval': matrix_prometheus_services_connect_scraper_synapse_scrape_interval,
  32. 'scrape_timeout': matrix_prometheus_services_connect_scraper_synapse_scrape_timeout,
  33. 'static_configs': matrix_prometheus_services_connect_scraper_synapse_static_configs,
  34. }]
  35. }}
  36. matrix_prometheus_services_connect_scraper_synapse_static_configs: |
  37. {{
  38. (matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs if matrix_prometheus_services_connect_scraper_synapse_main_process_enabled else [])
  39. +
  40. (matrix_prometheus_services_connect_scraper_synapse_workers_static_configs if matrix_prometheus_services_connect_scraper_synapse_workers_enabled else [])
  41. }}
  42. # Controls whether the Synapse main process shall be scraped
  43. matrix_prometheus_services_connect_scraper_synapse_main_process_enabled: "{{ matrix_prometheus_services_connect_scraper_synapse_enabled }}"
  44. matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs: |
  45. {{
  46. [{
  47. 'targets': [matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs_target],
  48. 'labels': {
  49. 'instance': matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs_instance,
  50. 'job': matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs_job,
  51. 'index': 0,
  52. }
  53. }]
  54. }}
  55. matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs_target: ''
  56. matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs_instance: "{{ matrix_domain }}"
  57. matrix_prometheus_services_connect_scraper_synapse_main_process_static_configs_job: master
  58. # Controls whether Synapse workers shall be scraped
  59. matrix_prometheus_services_connect_scraper_synapse_workers_enabled: "{{ matrix_prometheus_services_connect_scraper_synapse_enabled and matrix_prometheus_services_connect_scraper_synapse_workers_enabled_list | length > 0 }}"
  60. matrix_prometheus_services_connect_scraper_synapse_workers_enabled_list: []
  61. # No {# #} comments inside the block below: indented, they leak whitespace and corrupt the YAML.
  62. matrix_prometheus_services_connect_scraper_synapse_workers_static_configs_as_yaml: |
  63. {% for worker in matrix_prometheus_services_connect_scraper_synapse_workers_enabled_list %}
  64. {% if worker.metrics_port != 0 %}
  65. - targets: ['{{ worker.name }}:{{ worker.metrics_port }}']
  66. labels:
  67. instance: {{ matrix_prometheus_services_connect_scraper_synapse_workers_static_configs_instance | to_json }}
  68. worker_id: {{ worker.id | to_json }}
  69. index: {{ worker.id | regex_search('[0-9]+') | to_json }}
  70. job: {{ worker.type | to_json }}
  71. app: {{ worker.app | to_json }}
  72. {% endif %}
  73. {% endfor %}
  74. matrix_prometheus_services_connect_scraper_synapse_workers_static_configs_instance: "{{ matrix_domain }}"
  75. matrix_prometheus_services_connect_scraper_synapse_workers_static_configs: "{{ [] if matrix_prometheus_services_connect_scraper_synapse_workers_enabled_list | length == 0 else matrix_prometheus_services_connect_scraper_synapse_workers_static_configs_as_yaml | from_yaml or [] }}"
  76. # Controls whether Postgres (postgres-exporter) shall be scraped
  77. matrix_prometheus_services_connect_scraper_postgres_enabled: false
  78. matrix_prometheus_services_connect_scraper_postgres_job_name: postgres
  79. matrix_prometheus_services_connect_scraper_postgres_metrics_path: /metrics
  80. matrix_prometheus_services_connect_scraper_postgres_scrape_interval: 15s
  81. matrix_prometheus_services_connect_scraper_postgres_scrape_timeout: 15s
  82. matrix_prometheus_services_connect_scraper_postgres_static_configs: "{{ [{'targets': [matrix_prometheus_services_connect_scraper_postgres_static_configs_target]}] }}"
  83. matrix_prometheus_services_connect_scraper_postgres_static_configs_target: ''
  84. # The final scrape config for the Postgers scraper
  85. matrix_prometheus_services_connect_scraper_postgres_scrape_configs: |
  86. {{
  87. [{
  88. 'job_name': matrix_prometheus_services_connect_scraper_postgres_job_name,
  89. 'metrics_path': matrix_prometheus_services_connect_scraper_postgres_metrics_path,
  90. 'scrape_interval': matrix_prometheus_services_connect_scraper_postgres_scrape_interval,
  91. 'scrape_timeout': matrix_prometheus_services_connect_scraper_postgres_scrape_timeout,
  92. 'static_configs': matrix_prometheus_services_connect_scraper_postgres_static_configs,
  93. }]
  94. }}
  95. # Controls whether Hookshot shall be scraped
  96. matrix_prometheus_services_connect_scraper_hookshot_enabled: false
  97. matrix_prometheus_services_connect_scraper_hookshot_job_name: hookshot
  98. matrix_prometheus_services_connect_scraper_hookshot_metrics_path: /metrics
  99. matrix_prometheus_services_connect_scraper_hookshot_scrape_interval: 15s
  100. matrix_prometheus_services_connect_scraper_hookshot_scrape_timeout: 15s
  101. matrix_prometheus_services_connect_scraper_hookshot_static_configs: "{{ [{'targets': [matrix_prometheus_services_connect_scraper_hookshot_static_configs_target]}] }}"
  102. matrix_prometheus_services_connect_scraper_hookshot_static_configs_target: ''
  103. # The final scrape config for the Hookshot scraper
  104. matrix_prometheus_services_connect_scraper_hookshot_scrape_configs: |
  105. {{
  106. [{
  107. 'job_name': matrix_prometheus_services_connect_scraper_hookshot_job_name,
  108. 'metrics_path': matrix_prometheus_services_connect_scraper_hookshot_metrics_path,
  109. 'scrape_interval': matrix_prometheus_services_connect_scraper_hookshot_scrape_interval,
  110. 'scrape_timeout': matrix_prometheus_services_connect_scraper_hookshot_scrape_timeout,
  111. 'static_configs': matrix_prometheus_services_connect_scraper_hookshot_static_configs,
  112. }]
  113. }}
  114. # Controls whether nginxlog shall be scraped
  115. matrix_prometheus_services_connect_scraper_nginxlog_enabled: false
  116. matrix_prometheus_services_connect_scraper_nginxlog_job_name: nginxlog
  117. matrix_prometheus_services_connect_scraper_nginxlog_metrics_path: /metrics
  118. matrix_prometheus_services_connect_scraper_nginxlog_scrape_interval: 15s
  119. matrix_prometheus_services_connect_scraper_nginxlog_scrape_timeout: 15s
  120. matrix_prometheus_services_connect_scraper_nginxlog_static_configs: "{{ [{'targets': [matrix_prometheus_services_connect_scraper_nginxlog_static_configs_target]}] }}"
  121. matrix_prometheus_services_connect_scraper_nginxlog_static_configs_target: ''
  122. # The final scrape config for the nginxlog scraper
  123. matrix_prometheus_services_connect_scraper_nginxlog_scrape_configs: |
  124. {{
  125. [{
  126. 'job_name': matrix_prometheus_services_connect_scraper_nginxlog_job_name,
  127. 'metrics_path': matrix_prometheus_services_connect_scraper_nginxlog_metrics_path,
  128. 'scrape_interval': matrix_prometheus_services_connect_scraper_nginxlog_scrape_interval,
  129. 'scrape_timeout': matrix_prometheus_services_connect_scraper_nginxlog_scrape_timeout,
  130. 'static_configs': matrix_prometheus_services_connect_scraper_nginxlog_static_configs,
  131. }]
  132. }}
  133. # Controls whether media-repo shall be scraped
  134. matrix_prometheus_services_connect_scraper_media_repo_enabled: false
  135. matrix_prometheus_services_connect_scraper_media_repo_job_name: media-repo
  136. matrix_prometheus_services_connect_scraper_media_repo_metrics_path: /metrics
  137. matrix_prometheus_services_connect_scraper_media_repo_scrape_interval: 15s
  138. matrix_prometheus_services_connect_scraper_media_repo_scrape_timeout: 15s
  139. matrix_prometheus_services_connect_scraper_media_repo_static_configs: "{{ [{'targets': [matrix_prometheus_services_connect_scraper_media_repo_static_configs_target]}] }}"
  140. matrix_prometheus_services_connect_scraper_media_repo_static_configs_target: ''
  141. # The final scrape config for the media-repo scraper
  142. matrix_prometheus_services_connect_scraper_media_repo_scrape_configs: |
  143. {{
  144. [{
  145. 'job_name': matrix_prometheus_services_connect_scraper_media_repo_job_name,
  146. 'metrics_path': matrix_prometheus_services_connect_scraper_media_repo_metrics_path,
  147. 'scrape_interval': matrix_prometheus_services_connect_scraper_media_repo_scrape_interval,
  148. 'scrape_timeout': matrix_prometheus_services_connect_scraper_media_repo_scrape_timeout,
  149. 'static_configs': matrix_prometheus_services_connect_scraper_media_repo_static_configs,
  150. }]
  151. }}
  152. # Controls whether synapse-usage-exporter shall be scraped
  153. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_enabled: false
  154. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_job_name: synapse-usage-exporter
  155. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_metrics_path: /metrics
  156. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_interval: 300s
  157. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_timeout: 300s
  158. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_static_configs: "{{ [{'targets': [matrix_prometheus_services_connect_scraper_synapse_usage_exporter_static_configs_target]}] }}"
  159. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_static_configs_target: ''
  160. # The final scrape config for the synapse-usage-exporter scraper
  161. matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_configs: |
  162. {{
  163. [{
  164. 'job_name': matrix_prometheus_services_connect_scraper_synapse_usage_exporter_job_name,
  165. 'metrics_path': matrix_prometheus_services_connect_scraper_synapse_usage_exporter_metrics_path,
  166. 'scrape_interval': matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_interval,
  167. 'scrape_timeout': matrix_prometheus_services_connect_scraper_synapse_usage_exporter_scrape_timeout,
  168. 'static_configs': matrix_prometheus_services_connect_scraper_synapse_usage_exporter_static_configs,
  169. }]
  170. }}