---
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.
  evaluation_interval: 15s # By default, scrape targets every 15 seconds.
  # scrape_timeout is set to the global default (10s).
  external_labels:
    cluster: '{{ cluster_name }}'
{% for item in prometheus_extra_labels %}
    {{ item.label }}: "{{ item.value }}"
{% endfor %}

{% set pushgateway_host = hostvars[groups.monitoring_servers[0]].ansible_host | default(hostvars[groups.monitoring_servers[0]].inventory_hostname)
    if groups.get('monitoring_servers', []) else '' -%}
{% set pushgateway_port = hostvars[groups.monitoring_servers[0]].pushgateway_port if pushgateway_host else '' -%}

{% set tidb_status_addrs = [] -%}
{% for host in groups.tidb_servers -%}
  {% set tidb_ip = hostvars[host].ansible_host | default(hostvars[host].inventory_hostname) -%}
  {% set tidb_status_port = hostvars[host].tidb_status_port -%}
  {% set _ = tidb_status_addrs.append("%s:%s" % (tidb_ip, tidb_status_port)) -%}
{% endfor -%}

{% set pd_addrs = [] -%}
{% for host in groups.pd_servers -%}
  {% set pd_ip = hostvars[host].ansible_host | default(hostvars[host].inventory_hostname) -%}
  {% set pd_port = hostvars[host].pd_client_port -%}
  {% set _ = pd_addrs.append("%s:%s" % (pd_ip, pd_port)) -%}
{% endfor -%}

scrape_configs:
{% if pushgateway_host %}
  - job_name: 'overwritten-cluster'
    scrape_interval: 15s
    honor_labels: true # don't overwrite job & instance labels
    static_configs:
      - targets: ['{{ pushgateway_host }}:{{ pushgateway_port }}']
{% endif %}

  - job_name: "tidb"
    honor_labels: true # don't overwrite job & instance labels
    static_configs:
    - targets:
{% for tidb_status_addr in tidb_status_addrs %}
      - '{{ tidb_status_addr }}'
{% endfor %}

  - job_name: "pd"
    honor_labels: true # don't overwrite job & instance labels
    static_configs:
    - targets:
{% for pd_addr in pd_addrs %}
      - '{{ pd_addr }}'
{% endfor %}
