rule_files:
  - ../rules/cluster-next-gen/tiflash/data-plane/kernel-tcocp.rules.yaml

evaluation_interval: 1m

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

  - name: TiFlash non-OOM restart does not fire the OOM alert
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb123",pod="db-example-write-tiflash-abcdef",container="tiflash"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb123",pod="db-example-write-tiflash-abcdef",container="tiflash",reason="Error"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: TiFlashOOMRelatedPodRestartsNextGen
        exp_alerts: []

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