Skip to main content
Argo CD exposes comprehensive Prometheus metrics across all components to monitor performance, health, and operational status.

Metrics Endpoints

Each Argo CD component exposes metrics on dedicated ports:

Application Controller

Endpoint: argocd-metrics:8082/metricsMonitors application reconciliation, cluster connections, and sync operations.

API Server

Endpoint: argocd-server-metrics:8083/metricsTracks API requests, authentication, and user activity.

Repo Server

Endpoint: argocd-repo-server:8084/metricsMeasures Git operations, manifest generation, and caching.

ApplicationSet Controller

Endpoint: argocd-applicationset-controller:8085/metricsMonitors ApplicationSet reconciliation and generation.

Key Metrics by Component

Application Controller Metrics

The controller exposes metrics about application state and cluster management.
argocd_app_info (gauge)
  • Labels: name, namespace, project, sync_status, health_status, dest_server
  • Information about applications including sync and health status
argocd_app_reconcile (histogram)
  • Application reconciliation performance in seconds
  • Use to identify slow reconciliation
argocd_app_k8s_request_total (counter)
  • Number of Kubernetes API requests per application
  • High values may indicate performance issues
argocd_cluster_info (gauge)
  • Information about managed clusters
  • Labels: name, server, version
argocd_cluster_connection_status (gauge)
  • Cluster connection health (1 = healthy, 0 = unhealthy)
argocd_cluster_api_resource_objects (gauge)
  • Number of cached Kubernetes resources
argocd_cluster_cache_age_seconds (gauge)
  • Age of cluster cache data
argocd_app_sync_total (counter)
  • Counter for application sync history
  • Labels: name, namespace, phase, project
argocd_app_sync_duration_seconds_total (counter)
  • Total time spent syncing applications

Repo Server Metrics

Metrics for Git operations and manifest generation.
argocd_git_request_total (counter)
  • Number of Git requests performed
  • Labels: repo, request_type (ls-remote, fetch)
argocd_git_request_duration_seconds (histogram)
  • Git request duration
argocd_git_fetch_fail_total (counter)
  • Number of failed Git fetch operations
argocd_repo_pending_request_total (gauge)
  • Number of pending requests requiring repository lock
  • High values indicate repository contention

API Server Metrics

grpc_server_handled_total (counter)
  • Total RPCs completed on the server
  • Labels: grpc_code, grpc_method, grpc_service
argocd_login_request_total (counter)
  • Number of login requests
For gRPC metrics to appear, set the environment variable ARGOCD_ENABLE_GRPC_TIME_HISTOGRAM=true. Note that this metric is expensive to query and store.

Prometheus ServiceMonitor Configuration

For Prometheus Operator, deploy ServiceMonitors to automatically scrape metrics:
Replace release: prometheus-operator with the label selected by your Prometheus installation.

Grafana Dashboards

Argo CD provides an official Grafana dashboard for visualizing metrics.

Installing the Dashboard

1

Download dashboard JSON

Get the official dashboard from the Argo CD repository:
2

Import to Grafana

  1. Navigate to Grafana UI
  2. Click +Import
  3. Upload argocd-dashboard.json
  4. Select Prometheus datasource
  5. Click Import
3

View live dashboard

Access the dashboard at: https://grafana.apps.argoproj.io (demo instance)

Dashboard Panels

The official dashboard includes:
  • Application Health: Count by health status (Healthy, Progressing, Degraded, Missing)
  • Application Sync Status: Count by sync status (Synced, OutOfSync)
  • Reconciliation Performance: Histogram of reconciliation times
  • Git Fetch Operations: Rate and duration of Git operations
  • Cluster Connections: Status of managed cluster connections
  • API Request Rate: gRPC and REST API request rates
  • Redis Operations: Cache hit rates and operation counts

Alerting Rules

Recommended Prometheus alerting rules:

Advanced Monitoring Features

Exposing Application Labels as Metrics

Enable custom application labels in metrics for team-based routing:
Result:

Metrics Cache Expiration

For environments with frequent application creation/deletion, configure cache expiration:

CPU/Memory Profiling

Enable profiling endpoints for performance troubleshooting:
Access profiling data:

Monitoring Best Practices

Set Baselines

Establish baseline metrics for reconciliation times, sync rates, and API request patterns during normal operations.

Alert Tuning

Tune alert thresholds based on your environment to reduce false positives while catching real issues.

Dashboard Review

Regularly review dashboards to identify trends and potential capacity issues before they impact users.

Metric Cardinality

Monitor metric cardinality, especially with custom labels, to avoid overwhelming Prometheus storage.