rule_files:
  - ../rules/cluster-next-gen/pd/kernel-tcocp.rules.yaml
  - ../rules/cluster-next-gen/tikv/data-plane/kernel-tcocp.rules.yaml
  - ../rules/cluster-next-gen/ticdc/data-plane/kernel-tcocp.rules.yaml

evaluation_interval: 1m

tests:
  - name: PD OOM restart keeps pod labels and fires
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb123",pod="db-fd6bd3ad-pd-abcdef",container="pd"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb123",pod="db-fd6bd3ad-pd-abcdef",container="pd",reason="OOMKilled"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: PDOOMRelatedPodRestartsNextGen
        exp_alerts:
          - exp_labels:
              namespace: tidb123
              pod: db-fd6bd3ad-pd-abcdef
              tier: next-gen
              severity: critical
              response_class: page
              component: pd
              stability_governance: next-gen-kernel-tcocp
              visibility: internal
              source_component: pd
              oncall_team: pd
              source_tcoc: TCOC-4157
            exp_annotations:
              message: |
                PD Pod tidb123/db-fd6bd3ad-pd-abcdef restarted due to OOMKilled. source_tcoc: TCOC-4157

  - name: OOM in a PD sidecar does not fire the PD process alert
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb123",pod="db-fd6bd3ad-pd-abcdef",container="sidecar"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb123",pod="db-fd6bd3ad-pd-abcdef",container="sidecar",reason="OOMKilled"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: PDOOMRelatedPodRestartsNextGen
        exp_alerts: []

  - name: TiKV OOM restart keeps pod labels and fires
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb123",pod="db-fd6bd3ad-tikv-abcdef",container="tikv"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb123",pod="db-fd6bd3ad-tikv-abcdef",container="tikv",reason="OOMKilled"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: TiKVOOMRelatedPodRestartsNextGen
        exp_alerts:
          - exp_labels:
              namespace: tidb123
              pod: db-fd6bd3ad-tikv-abcdef
              tier: next-gen
              severity: critical
              response_class: page
              component: tikv
              stability_governance: next-gen-kernel-tcocp
              visibility: internal
              source_component: tikv
              oncall_team: tikv_unified
              source_tcoc: TCOC-4157
            exp_annotations:
              message: |
                TiKV Pod tidb123/db-fd6bd3ad-tikv-abcdef restarted due to OOMKilled. source_tcoc: TCOC-4157

  - name: OOM in a TiKV sidecar does not fire the TiKV process alert
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb123",pod="db-fd6bd3ad-tikv-abcdef",container="sidecar"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb123",pod="db-fd6bd3ad-tikv-abcdef",container="sidecar",reason="OOMKilled"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: TiKVOOMRelatedPodRestartsNextGen
        exp_alerts: []

  - name: TiCDC OOM restart keeps pod labels and fires
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb123",pod="ticdc-cluster-456-ticdc-abcdef",container="ticdc"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb123",pod="ticdc-cluster-456-ticdc-abcdef",container="ticdc",reason="OOMKilled"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: TiCDCOOMRelatedPodRestartsNextGen
        exp_alerts:
          - exp_labels:
              namespace: tidb123
              pod: ticdc-cluster-456-ticdc-abcdef
              tier: next-gen
              severity: critical
              response_class: page
              component: ticdc-kernel
              stability_governance: next-gen-kernel-tcocp
              visibility: internal
              source_component: ticdc
              oncall_team: ticdc
              source_tcoc: TCOC-4157
            exp_annotations:
              message: |
                TiCDC Pod tidb123/ticdc-cluster-456-ticdc-abcdef restarted due to OOMKilled. source_tcoc: TCOC-4157

  - name: OOM in a TiCDC sidecar does not fire the TiCDC process alert
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb123",pod="ticdc-cluster-456-ticdc-abcdef",container="sidecar"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb123",pod="ticdc-cluster-456-ticdc-abcdef",container="sidecar",reason="OOMKilled"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: TiCDCOOMRelatedPodRestartsNextGen
        exp_alerts: []
