apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: example-argocd
labels:
example: repo
spec:
# ...
monitoring:
enabled: true
# ...
使用 Red Hat OpenShift GitOps,您可以监控特定 Argo CD 实例的 Argo CD 自定义资源工作负载的可用性。通过监控 Argo CD 自定义资源工作负载,您可以通过为其启用警报来获取有关 Argo CD 实例状态的最新信息。当相应 Argo CD 实例的组件工作负载 Pod(例如 application-controller、repo-server 或 server)由于某些原因无法启动,并且在一段时间内准备好副本数与所需副本数之间存在差异时,Operator 就会触发警报。
您可以启用和禁用监控 Argo CD 自定义资源工作负载的设置。
您作为具有 `cluster-admin` 角色的用户可以访问集群。
Red Hat OpenShift GitOps 已安装在您的集群中。
监控堆栈已在您的集群的 `openshift-monitoring` 项目中配置。此外,Argo CD 实例位于您可以通过 Prometheus 监控的命名空间中。
`kube-state-metrics` 服务正在您的集群上运行。
可选:如果您要为已存在于用户定义项目中的 Argo CD 实例启用监控,请确保已 为用户定义的项目启用监控。
如果您要在默认的 |
默认情况下,Argo CD 自定义资源工作负载的监控配置设置为false
。
使用 Red Hat OpenShift GitOps,您可以为特定的 Argo CD 实例启用工作负载监控。因此,Operator 会创建一个包含所有由特定 Argo CD 实例管理的工作负载的告警规则的PrometheusRule
对象。当相应组件的副本数量偏离所需状态一段时间后,这些告警规则会触发告警。Operator 不会覆盖用户对PrometheusRule
对象所做的更改。
将给定 Argo CD 实例上的.spec.monitoring.enabled
字段值设置为true
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: example-argocd
labels:
example: repo
spec:
# ...
monitoring:
enabled: true
# ...
验证 Operator 创建的 PrometheusRule 中是否包含告警规则
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: argocd-component-status-alert
namespace: openshift-gitops
spec:
groups:
- name: ArgoCDComponentStatus
rules:
# ...
- alert: ApplicationSetControllerNotReady (1)
annotations:
message: >-
applicationSet controller deployment for Argo CD instance in
namespace "default" is not running
expr: >-
kube_statefulset_status_replicas{statefulset="openshift-gitops-application-controller statefulset",
namespace="openshift-gitops"} !=
kube_statefulset_status_replicas_ready{statefulset="openshift-gitops-application-controller statefulset",
namespace="openshift-gitops"}
for: 1m
labels:
severity: critical
1 | PrometheusRule 中的告警规则,用于检查 Argo CD 实例创建的工作负载是否按预期运行。 |
您可以为特定的 Argo CD 实例禁用工作负载监控。禁用工作负载监控会删除创建的 PrometheusRule。
将给定 Argo CD 实例上的.spec.monitoring.enabled
字段值设置为false
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: example-argocd
labels:
example: repo
spec:
# ...
monitoring:
enabled: false
# ...