warning
8.2.1.ArgoCD service not synced
Service {{ $labels.name }} run by argo is currently not in sync.
- alert: ArgoCDServiceNotSynced
expr: argocd_app_info{sync_status!="Synced"} != 0
for: 15m
labels:
severity: warning
annotations:
summary: ArgoCD service not synced (instance {{ $labels.instance }})
description: "Service {{ $labels.name }} run by argo is currently not in sync.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.2.ArgoCD service unhealthy
Service {{ $labels.name }} run by argo is currently not healthy.
- alert: ArgoCDServiceUnhealthy
expr: argocd_app_info{health_status!~"Healthy|Progressing"} != 0
for: 15m
labels:
severity: warning
annotations:
summary: ArgoCD service unhealthy (instance {{ $labels.instance }})
description: "Service {{ $labels.name }} run by argo is currently not healthy.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.3.ArgoCD application sync failed
ArgoCD application {{ $labels.name }} failed to sync (phase {{ $labels.phase }}) in project {{ $labels.project }}, check the application controller logs for the root cause.
- alert: ArgoCDApplicationSyncFailed
expr: sum(increase(argocd_app_sync_total{phase!="Succeeded"}[10m])) by (name, phase, project) > 0
for: 1m
labels:
severity: warning
annotations:
summary: ArgoCD application sync failed (instance {{ $labels.instance }})
description: "ArgoCD application {{ $labels.name }} failed to sync (phase {{ $labels.phase }}) in project {{ $labels.project }}, check the application controller logs for the root cause.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.4.ArgoCD cluster connection error
ArgoCD lost connection to the managed Kubernetes cluster {{ $labels.server }}, sync operations targeting this cluster will fail until connectivity is restored.
- alert: ArgoCDClusterConnectionError
expr: argocd_cluster_connection_status < 1
for: 5m
labels:
severity: warning
annotations:
summary: ArgoCD cluster connection error (instance {{ $labels.instance }})
description: "ArgoCD lost connection to the managed Kubernetes cluster {{ $labels.server }}, sync operations targeting this cluster will fail until connectivity is restored.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.5.ArgoCD git fetch failures
ArgoCD is failing to fetch git repository {{ $labels.repo }}, which will block application sync and manifest generation.
- alert: ArgoCDGitFetchFailures
expr: sum(rate(argocd_git_fetch_fail_total[5m])) by (repo) > 0
for: 5m
labels:
severity: warning
annotations:
summary: ArgoCD git fetch failures (instance {{ $labels.instance }})
description: "ArgoCD is failing to fetch git repository {{ $labels.repo }}, which will block application sync and manifest generation.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.6.ArgoCD high gRPC error rate
More than 5% of gRPC requests handled by ArgoCD are failing ({{ $value | humanize }}%), indicating degraded health of the API server or repo server.
- alert: ArgoCDHighGRPCErrorRate
expr: sum(rate(grpc_server_handled_total{grpc_code=~"Internal|Unavailable|DeadlineExceeded|ResourceExhausted|Aborted|Unknown"}[5m])) / sum(rate(grpc_server_handled_total[5m])) * 100 > 5 and sum(rate(grpc_server_handled_total[5m])) > 0
for: 10m
labels:
severity: warning
annotations:
summary: ArgoCD high gRPC error rate (instance {{ $labels.instance }})
description: "More than 5% of gRPC requests handled by ArgoCD are failing ({{ $value | humanize }}%), indicating degraded health of the API server or repo server.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.7.ArgoCD repo server too many pending requests
ArgoCD repo server has more than 50 requests pending on the repository lock for {{ $labels.repo }}, indicating the repo server is overloaded and manifest generation is being delayed.
# 50 is a rough default; scales with your number of managed apps and sync frequency — adjust based on your workload.
- alert: ArgoCDRepoServerTooManyPendingRequests
expr: argocd_repo_pending_request_total > 50
for: 10m
labels:
severity: warning
annotations:
summary: ArgoCD repo server too many pending requests (instance {{ $labels.instance }})
description: "ArgoCD repo server has more than 50 requests pending on the repository lock for {{ $labels.repo }}, indicating the repo server is overloaded and manifest generation is being delayed.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.8.ArgoCD repo server slow git operations
The 95th percentile duration of git operations against repository {{ $labels.repo }} is above 30 seconds, which can be caused by a large repository, network latency, or an overloaded repo server.
# 30s threshold is a rough default; depends on your repository size and network latency to the git host — adjust based on your baseline.
- alert: ArgoCDRepoServerSlowGitOperations
expr: histogram_quantile(0.95, sum(rate(argocd_git_request_duration_seconds_bucket[5m])) by (le, repo)) > 30
for: 10m
labels:
severity: warning
annotations:
summary: ArgoCD repo server slow git operations (instance {{ $labels.instance }})
description: "The 95th percentile duration of git operations against repository {{ $labels.repo }} is above 30 seconds, which can be caused by a large repository, network latency, or an overloaded repo server.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"warning
8.2.9.ArgoCD application controller slow reconciliation
The 95th percentile application reconciliation duration is above 60 seconds, which can delay drift detection and slow down sync operations across the cluster.
# 60s threshold is a rough default; depends on your number of managed apps and manifest complexity — adjust based on your workload.
- alert: ArgoCDApplicationControllerSlowReconciliation
expr: histogram_quantile(0.95, sum(rate(argocd_app_reconcile_bucket[5m])) by (le)) > 60
for: 10m
labels:
severity: warning
annotations:
summary: ArgoCD application controller slow reconciliation (instance {{ $labels.instance }})
description: "The 95th percentile application reconciliation duration is above 60 seconds, which can delay drift detection and slow down sync operations across the cluster.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"