apiVersion: capacity-planner.tidbcloud.com/v1alpha1
kind: CapacityPlannerConfiguration

controller:
  leaderElection: true
  syncPeriod: 30s

server:
  health:
    bindAddress: ":8081"

# The capacity-planner's own Prometheus metrics endpoint.
metrics:
  bindAddress: "0"

storage:
  path: /var/lib/capacity-planner/metrics
  retention: 1h

query:
  bindAddress: "0"
  timeout: 10s
  maxSamples: 50000
  maxPoints: 11000

records:
  dir: /var/lib/capacity-planner/records

scrapers:
  interval: 15s

  metricsServer:
    maxAge: 2m
    resources:
      cpu: cpu
      memory: memory

  podWatcher:
    metrics:
    - name: pod_status_running
      jsonPath: .status.phase
      matchValue: Running
    - name: pod_status_ready
      jsonPath: .status.conditions[?(@.type=="Ready")].status
      matchValue: "True"

  podMetrics:
    timeout: 10s
    maxBodySize: 32MiB
    concurrency: 16
    metrics:
    - tidb_server_query_total

rules:
  interval: 15s
  engine:
    timeout: 10s
    maxSamples: 50000
    lookbackDelta: 5m
  records:
  - record: pod:tidb_server_query:rate1m
    expr: |
      sum by (namespace, group, component, pod) (
        rate(tidb_server_query_total[1m])
      )

logging:
  development: false
  encoder: json
  level: info
  stacktraceLevel: error
  timeEncoding: rfc3339nano
