# {{ cephadm_managed }}
global:
  scrape_interval: 10s
  evaluation_interval: 10s
{% if not secure_monitoring_stack %}
  external_labels:
    cluster: {{ cluster_fsid }}
{% endif %}

rule_files:
  - /etc/prometheus/alerting/*

{% if alertmanager_sd_url %}
alerting:
  alertmanagers:
{% if secure_monitoring_stack %}
    - scheme: https
      basic_auth:
        username: {{ alertmanager_web_user }}
        password: {{ alertmanager_web_password }}
      tls_config:
        ca_file: root_cert.pem
      http_sd_configs:
        - url: {{ alertmanager_sd_url }}
          basic_auth:
            username: {{ service_discovery_username }}
            password: {{ service_discovery_password }}
          tls_config:
            ca_file: root_cert.pem
{% else %}
    - scheme: http
      http_sd_configs:
        - url: {{ alertmanager_sd_url }}
{% endif %}
{% endif %}

scrape_configs:
  - job_name: 'ceph'
{% if secure_monitoring_stack %}
    scheme: https
    tls_config:
      ca_file: mgr_prometheus_cert.pem
    honor_labels: true
    relabel_configs:
    - source_labels: [instance]
      target_label: instance
      replacement: 'ceph_cluster'
    http_sd_configs:
    - url: {{ mgr_prometheus_sd_url }}
      basic_auth:
        username: {{ service_discovery_username }}
        password: {{ service_discovery_password }}
      tls_config:
        ca_file: root_cert.pem
{% else %}
    honor_labels: true
    relabel_configs:
    - source_labels: [__address__]
      target_label: cluster
      replacement: {{ cluster_fsid }}
    - source_labels: [instance]
      target_label: instance
      replacement: 'ceph_cluster'
    http_sd_configs:
    - url: {{ mgr_prometheus_sd_url }}
{% endif %}

{% if node_exporter_sd_url %}
  - job_name: 'node'
{% if secure_monitoring_stack %}
    scheme: https
    tls_config:
      ca_file: root_cert.pem
    http_sd_configs:
    - url: {{ node_exporter_sd_url }}
      basic_auth:
        username: {{ service_discovery_username }}
        password: {{ service_discovery_password }}
      tls_config:
        ca_file: root_cert.pem
{% else %}
    http_sd_configs:
    - url: {{ node_exporter_sd_url }}
    relabel_configs:
    - source_labels: [__address__]
      target_label: cluster
      replacement: {{ cluster_fsid }}
{% endif %}
{% endif %}

{% if haproxy_sd_url %}
  - job_name: 'haproxy'
{% if secure_monitoring_stack %}
    scheme: https
    tls_config:
      ca_file: root_cert.pem
    http_sd_configs:
    - url: {{ haproxy_sd_url }}
      basic_auth:
        username: {{ service_discovery_username }}
        password: {{ service_discovery_password }}
      tls_config:
        ca_file: root_cert.pem
{% else %}
    http_sd_configs:
    - url: {{ haproxy_sd_url }}
    relabel_configs:
    - source_labels: [__address__]
      target_label: cluster
      replacement: {{ cluster_fsid }}
{% endif %}
{% endif %}

{% if ceph_exporter_sd_url %}
  - job_name: 'ceph-exporter'
{% if secure_monitoring_stack %}
    honor_labels: true
    scheme: https
    tls_config:
      ca_file: root_cert.pem
    http_sd_configs:
    - url: {{ ceph_exporter_sd_url }}
      basic_auth:
        username: {{ service_discovery_username }}
        password: {{ service_discovery_password }}
      tls_config:
        ca_file: root_cert.pem
{% else %}
    honor_labels: true
    relabel_configs:
    - source_labels: [__address__]
      target_label: cluster
      replacement: {{ cluster_fsid }}
    http_sd_configs:
    - url: {{ ceph_exporter_sd_url }}
{% endif %}
{% endif %}

{% if nvmeof_sd_url %}
  - job_name: 'nvmeof'
{% if secure_monitoring_stack %}
    honor_labels: true
    scheme: https
    tls_config:
      ca_file: root_cert.pem
    http_sd_configs:
    - url: {{ nvmeof_sd_url }}
      basic_auth:
        username: {{ service_discovery_username }}
        password: {{ service_discovery_password }}
      tls_config:
        ca_file: root_cert.pem
{% else %}
    http_sd_configs:
    - url: {{ nvmeof_sd_url }}
{% endif %}
{% endif %}

{% if nfs_sd_url %}
  - job_name: 'nfs'
{% if secure_monitoring_stack %}
    honor_labels: true
    scheme: https
    tls_config:
      ca_file: root_cert.pem
    http_sd_configs:
    - url: {{ nfs_sd_url }}
      basic_auth:
        username: {{ service_discovery_username }}
        password: {{ service_discovery_password }}
      tls_config:
        ca_file: root_cert.pem
{% else %}
    http_sd_configs:
    - url: {{ nfs_sd_url }}
{% endif %}
{% endif %}

{% if not secure_monitoring_stack %}
  - job_name: 'federate'
    scrape_interval: 15s
    honor_labels: true
    metrics_path: '/federate'
    params:
      'match[]':
        - '{job="ceph"}'
        - '{job="node"}'
        - '{job="haproxy"}'
        - '{job="ceph-exporter"}'
    static_configs:
    - targets: {{ external_prometheus_targets }}
{% endif %}
