ArgoCD指标默认是否启用?如何查看、修改状态及对接Prometheus?
ArgoCD Metrics 相关问题解答
一、ArgoCD Metrics 默认是否启用?
ArgoCD的所有核心组件(包括argocd-server、argocd-repo-server、argocd-application-controller等)默认都是启用Metrics的,每个组件会在特定端口暴露/metrics端点,比如:
- argocd-server:默认端口8082
- argocd-application-controller:默认端口9093
- argocd-repo-server:默认端口9094
二、如何判断ArgoCD是否已开放指标?
可以通过以下几种方式验证:
- 端口转发直接访问:通过kubectl端口转发到目标组件,然后访问metrics端点。比如验证argocd-server:
之后在本地用curl或浏览器访问kubectl port-forward svc/argocd-server -n argocd 8082:8082http://localhost:8082/metrics,如果能看到大量argocd_*开头的指标数据,说明指标已开放。 - 检查Pod启动参数:查看组件Pod的启动命令,确认是否配置了metrics监听地址。比如查看argocd-application-controller的参数:
如果输出里有kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-application-controller -o yaml | grep -A5 -B5 metrics--metrics-addr=:9093这类配置,说明指标端口正常开放;如果是--metrics-addr=0,则表示已关闭。 - 查看Service端口配置:检查ArgoCD相关Service是否暴露了metrics端口,比如argocd-server的Service是否包含8082端口。
三、如何调整Metrics的启用状态?
修改对应组件的Deployment配置即可开启或关闭:
- 关闭Metrics:编辑目标组件的Deployment,在容器启动参数中添加或修改
--metrics-addr=0。比如修改argocd-server:
在kubectl edit deployment argocd-server -n argocdspec.template.spec.containers[0].args列表中加入--metrics-addr=0,保存后Pod会自动重启,Metrics随即关闭。 - 开启Metrics(若之前被关闭):同样编辑Deployment,将启动参数改为指定端口,比如
--metrics-addr=:8082,保存重启Pod后,指标就会重新开放。
四、Prometheus采集不到argocd_*指标的排查步骤
- 先按照前面的方法确认ArgoCD指标确实已经开放。
- 检查Prometheus的抓取配置,确保添加了针对ArgoCD的采集规则,示例配置如下:
scrape_configs: - job_name: 'argocd' kubernetes_sd_configs: - role: pod namespaces: names: - argocd relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name] action: keep regex: argocd-(server|repo-server|application-controller|dex-server|redis) - source_labels: [__meta_kubernetes_pod_container_port_number] action: keep regex: '8082|9093|9094|5555|6379' # 对应各组件的metrics端口
- 检查网络策略:确认Prometheus所在命名空间有权限访问argocd命名空间的对应metrics端口,避免被网络策略拦截。
- 查看Prometheus Targets页面:确认ArgoCD的采集目标是否处于
UP状态,若为DOWN,根据页面提示的错误信息进一步排查(比如端口不可达、权限问题等)。
内容的提问来源于stack exchange,提问作者Joseph Gagnon
相关产品推荐
相关产品推荐

