global:
  scrape_interval: 5s

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'synapse-{{ matrix_domain }}'

rule_files:
  - /etc/prometheus/synapse-v2.rules

scrape_configs:
  - job_name: 'synapse'
    metrics_path: /_synapse/metrics
    scheme: {{ 'https' if matrix_nginx_proxy_https_enabled else 'http' }}
{% if matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled %}
    basic_auth:
      username: prometheus
      password_file: /path/to/your/passwordfile.pwd
{% endif %}
    static_configs:
      - targets: ['{{ matrix_server_fqn_matrix }}:{{ matrix_nginx_proxy_container_https_host_bind_port if matrix_nginx_proxy_https_enabled else matrix_nginx_proxy_container_http_host_bind_port }}']
        labels:
          job: "master"
          index: "0"
{% for worker in matrix_nginx_proxy_proxy_synapse_workers_enabled_list %}
  - job_name: 'synapse-{{ worker.type }}-{{ worker.instanceId }}'
    metrics_path: /_synapse-worker-{{ worker.type }}-{{ worker.instanceId }}/metrics
    scheme: {{ 'https' if matrix_nginx_proxy_https_enabled else 'http' }}
{% if matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled %}
    basic_auth:
      username: prometheus
      password_file: /path/to/your/passwordfile.pwd
{% endif %}
    static_configs:
      - targets: ['{{ matrix_server_fqn_matrix }}:{{ matrix_nginx_proxy_container_https_host_bind_port if matrix_nginx_proxy_https_enabled else matrix_nginx_proxy_container_http_host_bind_port }}']
        labels:
          job: "{{ worker.type }}"
          index: "{{ worker.instanceId }}"
{% endfor %}