# use infra-layer metrics to alert such case
groups:
- name: dedicated-regionalserver-resource-operations
  rules:
  - alert: VPCCreationDurationTooLong 
    annotations:
      message: The VPC Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 5 minutes
    expr: |
      max(regional_server_vpc_info{service="regional-server", status=~"Pending|ReadyForCreate|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 5m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: VPCCreationDurationTooLong
    annotations:
      message: The VPC Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 10 minutes
    expr: |
      max(regional_server_vpc_info{service="regional-server", status=~"Pending|ReadyForCreate|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 10m
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: VPCDeletionDurationTooLong
    annotations:
      message: The VPC Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} deletion time exceeds 15 minutes
    expr: |
      max(regional_server_vpc_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 15m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: InternetResourceCreationDurationTooLong
    annotations:
      message: The Internet Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 10 minutes
    expr: |
      max(regional_server_internet_info{service="regional-server", status=~"ReadyForCreate|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 10m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: InternetResourceCreationDurationTooLong
    annotations:
      message: The Internet Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 20 minutes
    expr: |
      max(regional_server_internet_info{service="regional-server", status=~"ReadyForCreate|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 20m
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: InternetResourceDeletionDurationTooLong
    annotations:
      message: The Internet Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} deletion time exceeds 15 minutes
    expr: |
      max(regional_server_internet_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 15m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: InternetResourceDeletionDurationTooLong
    annotations:
      message: The Internet Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} deletion time exceeds 24 hours
    expr: |
      max(regional_server_internet_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 24h
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: K8sCreationDurationTooLong
    annotations:
      message: K8s Resource(APPBox CR) {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 20 minutes
    expr: |
      max(regional_server_appbox_info{service="regional-server", status=~"ReadyForCreate|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 20m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: K8sCreationDurationTooLong
    annotations:
      message: K8s Resource(APPBox CR) {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 30 minutes
    expr: |
      max(regional_server_appbox_info{service="regional-server", status=~"ReadyForCreate|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 30m
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: K8sDeletionDurationTooLong
    annotations:
      message: K8s Resource(APPBox CR) {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} deletion time exceeds 30 minutes
    expr: |
      max(regional_server_appbox_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 30m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: K8sDeletionDurationTooLong
    annotations:
      message: K8s Resource(APPBox CR) {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} deletion time exceeds 24 hours
    expr: |
      max(regional_server_appbox_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 24h
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: TiDBClusterRouteCreationDurationTooLong
    annotations:
      message: The TiDBClusterRoute Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 5 minutes
    expr: |
      max(regional_server_approute_info{service="regional-server", status=~"Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 5m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: TiDBClusterRouteCreationDurationTooLong
    annotations:
      message: The TiDBClusterRoute Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 10 minutes
    expr: |
      max(regional_server_approute_info{service="regional-server", status=~"Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 10m
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: TiDBClusterRouteDeletionDurationTooLong
    annotations:
      message: The TiDBClusterRoute Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} deletion time exceeds 30 minutes
    expr: |
      max(regional_server_approute_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 30m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: VPCPeeringCreationDurationTooLong
    annotations:
      message: The VPC Peering Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 20 minutes
    expr: |
      max(regional_server_vpcpeering_info{service="regional-server", status=~"Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 20m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: VPCPeeringPendingDurationTooLong
    annotations:
      message: The VPC Peering Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} pending time exceeds 2 hours, waiting for the peer VPC to accept the peering
    expr: |
      max(regional_server_vpcpeering_info{service="regional-server", status=~"Pending"})by(name, region, project_id, tenant_id) >= 1
    for: 2h
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: VPCPeeringDeletionDurationTooLong
    annotations:
      message: The VPC Peering Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 20 minutes
    expr: |
      max(regional_server_vpcpeering_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 20m
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: PrivateLinkServiceCreationDurationTooLong
    annotations:
      message: The Private Link Service Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 15 minutes
    expr: |
      max(regional_server_privatelinkservice_info{service="regional-server", status=~"Pending|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 15m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: PrivateLinkServiceCreationDurationTooLong
    annotations:
      message: The Private Link Service Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} creation time exceeds 30 minutes
    expr: |
      max(regional_server_privatelinkservice_info{service="regional-server", status=~"Pending|Creating|Failed"})by(name, region, project_id, tenant_id) >= 1
    for: 30m
    labels:
      severity: critical
      response_class: page
      component: dedicated-regional-server
      oncall_team: dedicated_service
  - alert: PrivateLinkServiceDeletionDurationTooLong
    annotations:
      message: The Private Link Service Resource {{ $labels.name }} in {{ $labels.region }}/{{ $labels.project_id }}/{{ $labels.tenant_id }} deletion time exceeds 20 minutes
    expr: |
      max(regional_server_privatelinkservice_info{service="regional-server", status=~"Deleting"})by(name, region, project_id, tenant_id) >= 1
    for: 20m
    labels:
      severity: major
      response_class: ticket
      component: dedicated-regional-server
      oncall_team: dedicated_service
