groups:
  - name: nextgen.metering
    rules:
      - alert: NextGenMeteringServerNoAvailableReplicas
        expr: kube_statefulset_status_replicas_available{statefulset="nextgen-metering-server",namespace="metering"}==0
        labels:
          tier: serverless
          provider_type: aws-free-tier
          severity: major
          response_class: ticket
          component: metering-server
          oncall_team: serverless
        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
        labels:
          tier: serverless
          provider_type: aws-free-tier
          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
        labels:
          tier: serverless
          provider_type: aws-free-tier
          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
        labels:
          tier: serverless
          provider_type: aws-free-tier
          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
        labels:
          tier: serverless
          provider_type: aws-free-tier
          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 }}"
