apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: tidb-cluster-pod-monitor
  namespace: monitoring
  labels:
    monitor: tidb-cluster
spec:
  jobLabel: "pingcap.com/component"
  namespaceSelector:
    any: true
  selector:
    matchLabels:
      app.kubernetes.io/managed-by: tidb-operator
  podMetricsEndpoints:
    - interval: 15s
      scheme: http
      honorLabels: true
      metricRelabelings:
        - action: labeldrop
          regex: container
      relabelings:
        - sourceLabels: [__meta_kubernetes_pod_label_pingcap_com_component]
          action: keep
          regex: tibr
        - sourceLabels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
          action: keep
          regex: "true"
        - sourceLabels: [__meta_kubernetes_pod_name]
          targetLabel: pod
        - sourceLabels: [__meta_kubernetes_namespace]
          targetLabel: namespace
        - sourceLabels:
          - __meta_kubernetes_namespace
          - __meta_kubernetes_pod_label_app_kubernetes_io_instance
          separator: '-'
          targetLabel: tidb_cluster

    - interval: 15s
      scheme: http
      honorLabels: true
      metricRelabelings:
        - action: labeldrop
          regex: container
      relabelings:
        - sourceLabels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
          action: keep
          regex: "true"
        - sourceLabels:
            - __meta_kubernetes_pod_name
            - __meta_kubernetes_pod_label_pingcap_com_group
            - __meta_kubernetes_pod_label_app_kubernetes_io_component
            - __meta_kubernetes_namespace
            - __meta_kubernetes_pod_annotation_prometheus_io_port
          action: replace
          regex: (.+);(.+);(.+);(.+);(.+)
          replacement: $1.$2-$3-peer.$4:$5
          targetLabel: __address__
        - sourceLabels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
          targetLabel: __metrics_path__
        - sourceLabels: [__meta_kubernetes_namespace]
          targetLabel: kubernetes_namespace
        - sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
          targetLabel: cluster
        - sourceLabels: [__meta_kubernetes_pod_name]
          targetLabel: instance
        - sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_component]
          targetLabel: component
        - sourceLabels:
            - __meta_kubernetes_namespace
            - __meta_kubernetes_pod_label_app_kubernetes_io_instance
          separator: '-'
          targetLabel: tidb_cluster