ArgoCD Monitor

Headless metrics Services and ServiceMonitors for ArgoCD component scraping by VMAgent.

What is ArgoCD Monitor?

ArgoCD Monitor is a small CDK8s chart that creates the missing metrics plumbing for ArgoCD. ArgoCD's Helm chart does not expose metrics Services by default, so VMAgent cannot scrape any ArgoCD component. This chart fills that gap.

Why ArgoCD Monitor?

ArgoCD is deployed by Pulumi in the platform layer. Its Helm chart disables metrics services by default. Rather than forking the Helm values or patching the platform layer, this workloads-layer chart adds the four headless metrics Services and matching ServiceMonitors so VMAgent discovers and scrapes them without any changes to the ArgoCD deployment itself.

How It's Used Here

Four ArgoCD components are scraped:

ComponentMetrics Port
argocd-application-controller8082
argocd-server8083
argocd-repo-server8084
argocd-applicationset-controller8085

For each component, a Service and a ServiceMonitor are created in the argocd namespace. The Service selects ArgoCD pods by app.kubernetes.io/name, and the ServiceMonitor selects the Service by a -metrics label suffix.

Source: workloads/observability/argocd_monitor.go

Configuration

SettingValue
Namespaceargocd
Scrape interval30s
Path/metrics

Troubleshooting

Metrics Not Appearing in VMAgent

# Check ServiceMonitors exist
kubectl get servicemonitor -n argocd

# Check Services exist and have endpoints
kubectl get svc -n argocd | grep metrics
kubectl get endpoints -n argocd | grep metrics

If endpoints are empty, the Service selector does not match any pods — check the ArgoCD pod labels:

kubectl get pods -n argocd --show-labels