apiVersion: v1
data:
  dashboard-config: |-
    {
       "apiVersion":1,
       "providers":[
          {
             "folder":"",
             "name":"0",
             "options":{
                "path":"/grafana-dashboard-definitions/tidb"
             },
             "allowUiUpdates":true,
             "orgId":1,
             "type":"file"
          }
       ]
    }
  prometheus-config: |2
    global:
      scrape_interval: 15s
      evaluation_interval: 15s
      external_labels:
        prometheus_replica: $(NAMESPACE)_$(POD_NAME)
        cluster: CLUSTER_NAME
        project: PROJECT
        shoot_name: SHOOT_NAME
        name: SHOOT_NAME
        seed_region: SEED_REGION
        seed_provider: SEED_PROVIDER
        shoot_infra: SHOOT_INFRA
        ignoreAlerts: "false"
        tenant: TENANT_ID
        cluster_id: CLUSTER_ID
    scrape_configs:
    - job_name: TIDB_NAMESPACE-db-pd
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: pd
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-pd-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    - job_name: TIDB_NAMESPACE-db-tidb
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: tidb
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-tidb-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    - job_name: TIDB_NAMESPACE-db-tidb-auditlog
      honor_labels: true
      scrape_interval: 15s
      scheme: http
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: tidb
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_tidb_auditlog_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-tidb-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_pod_annotation_tidb_auditlog_prometheus_io_port]
        regex: (.+)
        target_label: __address__
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        replacement: auditlog
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
    - job_name: TIDB_NAMESPACE-db-tikv
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      metric_relabel_configs:
      - source_labels: [__name__]
        separator: ;
        regex: tikv_thread_nonvoluntary_context_switches|tikv_thread_voluntary_context_switches|tikv_threads_io_bytes_total
        action: drop
      - source_labels: [__name__,name]
        separator: ;
        regex: tikv_thread_cpu_seconds_total;(tokio|rocksdb).+
        action: drop
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: tikv
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-tikv-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    - job_name: TIDB_NAMESPACE-db-tiflash
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: tiflash
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-tiflash-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    - job_name: TIDB_NAMESPACE-db-tiflash-proxy
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: tiflash
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_tiflash_proxy_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-tiflash-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    - job_name: TIDB_NAMESPACE-db-ticdc
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: ticdc
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-ticdc-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    # If TiCDC deploy to downstream, tidbcluster instance name is db-cdc
    - job_name: TIDB_NAMESPACE-db-cdc-ticdc
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db-cdc
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: ticdc
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-ticdc-peer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    - job_name: TIDB_NAMESPACE-db-importer
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        ca_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_ca.crt
        cert_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.crt
        key_file: /var/lib/cluster-assets-tls/secret_TIDB_NAMESPACE_db-cluster-client-secret_tls.key
        insecure_skip_verify: false
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: importer
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_instance,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $1.$2-importer.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace
    - job_name: TIDB_NAMESPACE-db-lightning
      honor_labels: true
      scrape_interval: 15s
      scheme: https
      kubernetes_sd_configs:
      - api_server: null
        role: pod
        namespaces:
          names:
          - TIDB_NAMESPACE
      tls_config:
        insecure_skip_verify: true
      relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        regex: db
        action: keep
      - source_labels: [__meta_kubernetes_namespace]
        regex: TIDB_NAMESPACE
        action: keep
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        regex: "true"
        action: keep
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        regex: tidb-lightning
        action: keep
      - source_labels: [__meta_kubernetes_pod_name, __meta_kubernetes_pod_label_app_kubernetes_io_name,
          __meta_kubernetes_namespace, __meta_kubernetes_pod_annotation_prometheus_io_port]
        regex: (.+);(.+);(.+);(.+)
        target_label: __address__
        replacement: $2.$3:$4
        action: replace
      - source_labels: [__meta_kubernetes_namespace]
        target_label: kubernetes_namespace
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
        target_label: cluster
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        target_label: instance
        action: replace
      - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
        target_label: component
        action: replace
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_pod_label_app_kubernetes_io_instance]
        separator: '-'
        target_label: tidb_cluster
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        regex: (.+)
        target_label: __metrics_path__
        action: replace

immutable: false
kind: ConfigMap
metadata:
  name: external-prometheus-config
  namespace: infra
