rule_files:
  - ../rules/cluster-next-gen/k8s/kernel-tcocp.rules.yaml

evaluation_interval: 1m

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

  - name: TiDB non-OOM restart does not fire the OOM alert
    interval: 1m
    input_series:
      - series: 'kube_pod_container_status_restarts_total{namespace="tidb2079468921710182400",pod="db-629391015421149184-tidb-abcdef",container="tidb"}'
        values: '0 0 1 1 1'
      - series: 'kube_pod_container_status_last_terminated_reason{namespace="tidb2079468921710182400",pod="db-629391015421149184-tidb-abcdef",container="tidb",reason="Error"}'
        values: '0 0 1 1 1'
    alert_rule_test:
      - eval_time: 3m
        alertname: TiDBOOMRelatedPodRestartsNextGen
        exp_alerts: []

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