2.2. 监控 Argo CD 实例
				默认情况下,Red Hat OpenShift GitOps Operator 会自动检测在定义的命名空间中安装的 Argo CD 实例,如 openshift-gitops,并将其连接到集群的监控堆栈,以便为不同步应用程序提供警报。
			
2.2.1. 先决条件 复制链接链接已复制到粘贴板!
- 
							您可以使用 
cluster-admin权限访问集群。 - 访问 OpenShift Container Platform web 控制台。
 - 在集群中安装了 Red Hat OpenShift GitOps Operator。
 - 
							您已在定义的命名空间中安装了 Argo CD 应用程序,如 
openshift-gitops。 
2.2.2. 使用 Prometheus 指标监控 Argo CD 健康状况 复制链接链接已复制到粘贴板!
您可以通过针对它运行 Prometheus metrics 查询来监控 Argo CD 应用程序的健康状况。
流程
- 
							在 web 控制台的 Developer 视角中,选择安装 Argo CD 应用程序的命名空间,并导航到 Observe 
Metrics。  - 从 Select query 下拉列表中,选择 Custom query。
 要检查 Argo CD 应用程序的健康状态,请在 Expression 字段中输入类似以下示例的 Prometheus Query Language (PromQL)查询:
Example
sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status)sum(argocd_app_info{dest_namespace=~"<your_defined_namespace>",health_status!=""}) by (health_status)1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - 将 &
lt;your_defined_namespace> 变量替换为定义的命名空间的实际名称,如openshift-gitops。 
2.2.3. 为 Argo CD 实例禁用自动提取指标 复制链接链接已复制到粘贴板!
默认情况下,Red Hat OpenShift GitOps Operator 会自动提取所有 Argo CD 实例的指标来测量性能。因此,Operator 会创建以下资源和标签到安装 Argo CD 实例的命名空间:
- 
							
GITOPS-operator-argocd-alertsprometheus 规则 - 
							
<argocd_namespace>-readrole - 
							
<argocd_name>, <argocd_name>-repo-server, 和<argocd_name>-server服务监控器 - 
							
<argocd_namespace>-prometheus-k8s-read-bindingrole binding - 
							
openshift.io/cluster-monitoring=truelabel 
					为集群中的多个 Argo CD 实例提取指标可能会导致过量存储使用。作为一种防止度量,使用 Web 控制台的 YAML 视图并配置 ArgoCD 自定义资源(CR)来禁用 Argo CD 实例的指标自动提取。
				
作为集群管理员,通过为各个实例禁用指标提取,您可以为用户提供更好的控制、灵活性和稳定性,以管理其定义的命名空间。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
 - 
							在 Web 控制台的 Administrator 视角中,点 Operators 
Installed Operators。  - 从 Project 列表中,选择安装用户定义的 Argo CD 实例的项目。
 - 从安装的 Operator 列表中选择 Red Hat OpenShift GitOps,再进入 Argo CD 选项卡。
 - 点用户定义的 Argo CD 实例。
 配置用户定义的 Argo CD 实例的
ArgoCDCR,以禁用自动提取指标:- 
									点 YAML 选项卡,并编辑 
ArgoCDCR 的 YAML 文件。 在
ArgoCDCR 中,将spec.monitoring.disableMetrics字段设置为true:ArgoCDCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示另外,使用以下命令在 Red Hat OpenShift GitOps
argocdCLI 中禁用自动提取指标:示例命令
oc patch argocd example -n spring-petclinic --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'$ oc patch argocd example -n spring-petclinic --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
argocd.argoproj.io/example patched
argocd.argoproj.io/example patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 
									点 YAML 选项卡,并编辑 
 验证 Operator 是否将
openshift.io/cluster-monitoring=false标签添加到定义的命名空间中:进入 Administration
Namespaces。 Namespaces 页面显示创建的命名空间。
- 
									点您定义的命名空间,进入 YAML 选项卡,并验证 Operator 的 
metadata.labels部分下是否添加了openshift.io/cluster-monitoring=false标签。 
验证 Operator 是否从定义的命名空间中删除以下资源:
- 
									前往 Home 
Search。  从 Resources 列表中,选择 PrometheusRule,Role,RoleBinding, 和 ServiceMonitor。
Search 页面显示所选资源。
- 
									在 Search 页面中,验证 PrometheusRule 部分下的 
gitops-operator-argocd-alertsprometheus 规则已被删除。 - 在 Roles 部分的 Filter 列表中,选择 Namespace Roles。
 - 
									验证 < 
;argocd_namespace>-read角色是否已删除。 - 在 RoleBindings 部分下,从 Filter 列表中选择 Namespace RoleBindings。
 - 
									验证 < 
;argocd_namespace>-prometheus-k8s-read-binding角色绑定已被删除。 - 
									验证在 ServiceMonitors 部分下,< 
argocd_name> , <argocd_name>-repo-server, 和<argocd_name>-server服务监控器已被删除。 
- 
									前往 Home 
 
						您可以通过将 spec.monitoring.disableMetrics 字段值修改为 false 来为实例启用指标。然后,Operator 会创建所需的角色、角色绑定和服务监控器,并将 openshift.io/cluster-monitoring=true 标签添加到定义的命名空间中。