使用 Prometheus 的托管服务收集 Argo CD 指标

Argo CD 是用于 Kubernetes 的声明性 GitOps 持续交付工具。 Argo CD 遵循使用 Git 存储库作为定义所需应用程序状态的真相来源的 GitOps 模式。 它在指定目标环境中自动部署所需的应用程序状态。 应用程序部署可以跟踪分支或标签的更新,或者在 Git 提交时将其绑定到清单的特定版本。

本文介绍如何使用 Azure Kubernetes 服务 (AKS) 和已启用 Azure Arc 的 Kubernetes 配置 Azure Monitor 适用于 Prometheus 的托管服务功能,以通过抓取 Prometheus 指标来监视 Argo CD。

先决条件

  • 在 AKS 上或已启用 Azure Arc 的 Kubernetes 上运行的 Argo CD
  • 已在群集上启用适用于 Prometheus 的托管服务。 有关详细信息,请参阅启用 Prometheus 和 Grafana

部署服务监视器

部署以下服务监视器以配置适用于 Prometheus 的托管服务加载项,从 Argo CD 工作负荷中抓取 Prometheus 指标。

备注

如果服务监视器与示例中配置的标签不匹配,请为它们在 matchLabels 中指定正确的标签。

apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
     app.kubernetes.io/name: argocd-metrics
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-repo-server-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-repo-server
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics
---
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: azmon-argocd-server-metrics
spec:
  labelLimit: 63
  labelNameLengthLimit: 511
  labelValueLengthLimit: 1023
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server-metrics
  namespaceSelector:
    any: true
  endpoints:
  - port: metrics

备注

如果你要配置任何其他服务或 Pod 监视器,请按照以下说明操作。

部署规则

  1. 下载 模板文件和 用于警报规则 的参数文件

  2. 编辑参数文件中的以下值。

    参数 价值
    azureMonitorWorkspace Azure Monitor 工作区的资源 ID。 在 Azure Monitor 工作区的“概述”页上的“JSON 视图”中检索。
    location Azure Monitor 工作区的位置。 在 Azure Monitor 工作区的“概述”页上的“JSON 视图”中检索。
    clusterName AKS 群集的名称。 从群集概述页面的“JSON 视图”中检索。
    actionGroupId 警报操作组的资源 ID。 从群集概述页面的“JSON 视图”中检索。 详细了解操作组
  3. 使用任何用于安装 Azure 资源管理器模板的标准方法部署模板。 有关指导,请参阅用于 Azure Monitor 的资源管理器模板示例

  4. 部署模板后,可以在 Azure 门户中查看规则。 查看警报阈值,以确保它们适合你的集群和工作负载。 相应地更新阈值。

如果你想使用任何其他开源 Prometheus 警报/记录规则,请使用 az-prom-rules-converter 来创建与 Azure 等效的 Prometheus 规则。

导入 Grafana 仪表板

若要使用 ID 或 JSON 导入 Argo CD 的 Grafana 仪表板 (ID 14191),请按照从 Grafana Labs 导入仪表板中的说明进行操作。

故障排除

成功应用服务监视器之后,如果要确保插件选取服务监视器目标,请按照以下说明操作。