apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: argocd-rules
  namespace: argocd
spec:
  groups:
    - name: argocd.rules
      interval: 15s
      rules:
        - alert: ArgoCDHighErrorRate
          expr: |
            (
              sum(rate(argocd_http_request_total{status=~"5.."}[5m]))
              /
              sum(rate(argocd_http_request_total[5m]))
            ) > 0.05
          for: 10m
          labels:
            severity: warning
          annotations:
            summary: "High error rate on Argo CD"
            description: "5xx error rate exceeded 5% for 10 minutes. Value: {{ $value | humanizePercentage }}"

        - alert: ArgoCDApplicationSyncFailure
          expr: |
            argocd_app_health_degraded_total > 0
          for: 10m
          labels:
            severity: warning
          annotations:
            summary: "Argo CD applications in degraded state"
            description: "{{ $value | humanize }} application(s) have been degraded for 10 minutes"
