Argocd 运维与最佳实践
Argocd 运维与最佳实践
Argo CD 的可观测性:监控你的控制平面
Argo CD 是我们持续交付的“大脑”和“中枢神经”,它的健康状况至关重要。我们必须像对待任何一个核心生产服务一样,对它建立完善的可观测性。
A. Prometheus 指标 (Prometheus Metrics)
Argo CD 的核心组件(API Server, Repo Server, Application Controller)都原生暴露了大量丰富的 Prometheus 格式的指标。
-
如何暴露和抓取: Argo CD 的
argocd-metrics
Service(端口 8082)和argocd-repo-server-metrics
Service(端口 8084)专门用于暴露这些指标。你需要在 Prometheus 的配置中添加相应的 scrape jobs 来抓取它们。 -
SRE 需要关注的关键指标:
argocd_app_sync_total
: 应用同步操作的总次数。通过rate()
函数可以计算出同步频率。argocd_app_sync_latency_seconds_bucket
: 应用同步操作的延迟分布。可以用来计算 P95/P99 同步延迟。argocd_app_info
: 这是一个非常有用的指标,它通过标签 (label) 暴露了每个应用的健康状态 (health_status
) 和同步状态 (sync_status
)。我们可以用它来告警:count(argocd_app_info{health_status!="Healthy"})
: 计算处于非健康状态的应用数量。count(argocd_app_info{sync_status!="Synced"})
: 计算处于失步状态的应用数量。
argocd_cluster_connection_status
: Argo CD 与其所管理的目标集群的连接状态。argocd_repo_server_request_latency_seconds_bucket
: Git 仓库操作(如git fetch
)的延迟。