rule_files:
  - ../rules/cluster-next-gen/cluster-server/control/base-grpc-server.yaml

evaluation_interval: 1m

tests:
  - interval: 1m
    input_series:
      - series: 'grpc_server_handled_total{grpc_code="NotFound",grpc_method="GetCassandraProxy",grpc_service="cluster_service_ng.v1beta.TiDBClusterService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+3x12'
    alert_rule_test:
      - eval_time: 10m
        alertname: "gRPCServerErrorRate > 10%"
        exp_alerts: []

  - interval: 1m
    input_series:
      - series: 'grpc_server_handled_total{grpc_code="Internal",grpc_method="GetCassandraProxy",grpc_service="cluster_service_ng.v1beta.TiDBClusterService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+3x12'
      - series: 'grpc_server_handled_total{grpc_code="Unavailable",grpc_method="GetSharedPool",grpc_service="cluster_service_ng.v1beta.TiDBClusterService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+3x12'
    alert_rule_test:
      - eval_time: 10m
        alertname: "gRPCServerErrorRate > 10%"
        exp_alerts:
          - exp_labels:
              component: cluster-ng-service
              grpc_method: GetCassandraProxy
              grpc_service: cluster_service_ng.v1beta.TiDBClusterService
              job: cluster-ng-server
              oncall_team: premium
              response_class: ticket
              severity: major
              tier: next-gen
            exp_annotations:
              message: gRPC server on region  failure rate is 100.00%, method=cluster_service_ng.v1beta.TiDBClusterService/GetCassandraProxy, component=cluster-ng-server.
          - exp_labels:
              component: cluster-ng-service
              grpc_method: GetSharedPool
              grpc_service: cluster_service_ng.v1beta.TiDBClusterService
              job: cluster-ng-server
              oncall_team: premium
              response_class: ticket
              severity: major
              tier: next-gen
            exp_annotations:
              message: gRPC server on region  failure rate is 100.00%, method=cluster_service_ng.v1beta.TiDBClusterService/GetSharedPool, component=cluster-ng-server.

  - interval: 1m
    input_series:
      - series: 'grpc_server_handled_total{grpc_code="NotFound",grpc_method="GetSharedPool",grpc_service="cluster_service_ng.v1beta.TiDBClusterService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+3x12'
      - series: 'grpc_server_handled_total{grpc_code="NotFound",grpc_method="GetPlacementPolicy",grpc_service="cluster_service_ng.v1beta.SharedPoolService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+3x12'
      - series: 'grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UpdateTiDBGroup",grpc_service="cluster_service_ng.v1beta.TiDBClusterService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+3x12'
    alert_rule_test:
      - eval_time: 10m
        alertname: "gRPCServerErrorRate > 10%"
        exp_alerts: []

  - interval: 1m
    input_series:
      - series: 'grpc_server_handled_total{grpc_code="Internal",grpc_method="GetCassandraProxy",grpc_service="cluster_service_ng.v1beta.TiDBClusterService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+1x12'
      - series: 'grpc_server_handled_total{grpc_code="OK",grpc_method="GetCassandraProxy",grpc_service="cluster_service_ng.v1beta.TiDBClusterService",job="cluster-ng-server",namespace="cluster-ng-service"}'
        values: '0+4x12'
    alert_rule_test:
      - eval_time: 10m
        alertname: "gRPCServerErrorRate > 10%"
        exp_alerts:
          - exp_labels:
              component: cluster-ng-service
              grpc_method: GetCassandraProxy
              grpc_service: cluster_service_ng.v1beta.TiDBClusterService
              job: cluster-ng-server
              oncall_team: premium
              response_class: ticket
              severity: major
              tier: next-gen
            exp_annotations:
              message: gRPC server on region  failure rate is 20.00%, method=cluster_service_ng.v1beta.TiDBClusterService/GetCassandraProxy, component=cluster-ng-server.
