If you’re running kube-prometheus-stack and ArgoCD but not monitoring your GitOps pipeline, you’re missing critical visibility into sync performance, app health trends, and controller resource usage. Here’s how to enable comprehensive ArgoCD monitoring in under 10 minutes.

What You’ll Get

  • Prometheus metrics for all ArgoCD components
  • Pre-built Grafana dashboard for sync performance and app health
  • Service monitor auto-discovery by Prometheus Operator
  • Real-time alerts for application sync failures

Enable ArgoCD Metrics and Service Monitors

Update your ArgoCD Helm values to enable metrics for each component. Add this configuration to the components you want to monitor:

server:
  metrics:
    enabled: true
    serviceMonitor:
      enabled: true
      additionalLabels:
        release: kube-prometheus-stack

controller:
  metrics:
    enabled: true
    serviceMonitor:
      enabled: true
      additionalLabels:
        release: kube-prometheus-stack

repoServer:
  metrics:
    enabled: true
    serviceMonitor:
      enabled: true
      additionalLabels:
        release: kube-prometheus-stack

applicationSet:
  metrics:
    enabled: true
    serviceMonitor:
      enabled: true
      additionalLabels:
        release: kube-prometheus-stack

Critical Configuration Notes

Label Matching: The release: kube-prometheus-stack label must match your Prometheus Operator’s service monitor selector. If you used a different release name during installation, adjust accordingly.

Component Coverage: Enable metrics for all ArgoCD components you care about - controller, server, repoServer, and applicationSet. Missing even one component creates blind spots in your monitoring.

Add the Grafana Dashboard

Configure Grafana to automatically load the ArgoCD dashboard:

grafana:
  dashboards:
    default:
      argocd:
        url: https://raw.githubusercontent.com/argoproj/argo-cd/master/examples/dashboard.json
        token: ""
        curlOptions: "-sLf"
      
  dashboardProviders:
    dashboardproviders.yaml:
      apiVersion: 1
      providers:
      - name: "default"
        orgId: 1
        folder: ""
        type: file
        disableDeletion: false
        editable: true
        options:
          path: /var/lib/grafana/dashboards/default

What the Dashboard Provides

The ArgoCD Grafana dashboard gives you immediate visibility into:

  • Sync operation performance and duration trends
  • Application health status across your entire cluster
  • Controller resource utilization (CPU, memory)
  • Repository connection health
  • API request rates and latency

This is especially valuable when troubleshooting slow syncs or investigating why applications are degraded. Rather than checking the ArgoCD UI repeatedly, you get proactive monitoring and historical trends.

Verification

After applying your Helm changes, verify the service monitors were created:

kubectl get servicemonitor -n argocd

Check that Prometheus is scraping the targets:

kubectl port-forward -n monitoring svc/kube-prometheus-stack-prometheus 9090:9090
# Navigate to http://localhost:9090/targets

Access the Grafana dashboard to confirm metrics are flowing.

Key Takeaway

Monitoring your GitOps pipeline shouldn’t be an afterthought. With these configurations, you gain complete visibility into ArgoCD’s performance and health, enabling you to catch issues before they impact deployments.