groups:
- name: nextgen.metering
  rules:
  - alert: NextGenMeteringServerNoAvailableReplicas
    expr: kube_statefulset_status_replicas_available{statefulset="nextgen-metering-server",namespace="metering"}==0
    for: 5m
    labels:
      component: metering-server
      oncall_team: serverless
      severity: major
      response_class: ticket
    annotations:
      description: There are no running NextGen metering-server pods.
  - alert: NextGenMeteringServerOOMKilled
    expr: increase(kube_pod_container_status_restarts_total{container="nextgen-metering-server"}[5m]) >= 1 AND ignoring(reason) kube_pod_container_status_last_terminated_reason{reason="OOMKilled",container="nextgen-metering-server"} == 1
    for: 3m
    labels:
      severity: major
      response_class: ticket
      component: metering-server
      oncall_team: serverless
    annotations:
      description: "NextGen Metering Server in {{ $labels.cluster }} has been OOMKilled {{ $value }} times in the last 5 minutes.\n LABELS = {{ $labels }}"
  - alert: NextGenMeteringServerTooManyAPIRequestsFailed
    expr: increase(metering_common_meter_request_api_total{api_result="failed"}[5m]) >= 5
    for: 5m
    labels:
      severity: major
      response_class: ticket
      component: metering-server
      oncall_team: serverless
    annotations:
      description: "NextGen Metering Server in {{ $labels.cluster }} has too many api request failed in the last 5 minutes.\n LABELS = {{ $labels }}"
  - alert: NextGenMeteringServerMeteringFailed
    expr: increase(metering_nextgen_task_count_total{type="failed"}[5m]) >= 1
    for: 5m
    labels:
      severity: major
      response_class: ticket
      component: metering-server
      oncall_team: serverless
    annotations:
      description: "NextGen Metering Server in {{ $labels.cluster }} has failed in the last 5 minutes.\n LABELS = {{ $labels }}"
  - alert: NextGenMeteringServerMeteringSkipped
    expr: increase(metering_nextgen_metering_skip_total{reason="metadata_missing"}[5m]) >= 2
    for: 10m
    labels:
      severity: major
      response_class: ticket
      component: metering-server
      oncall_team: serverless
    annotations:
      description: "NextGen Metering Server in {{ $labels.cluster }} has skipped some run tasks in the last 5 minutes.\n LABELS = {{ $labels }}"

