Skip to content

Metrics 指標

原文: Metrics

Argo CD 為每個內部組件公開不同的 Prometheus 指標集。

ArgoCD 元件指標

API Server 指標

API Server 是一個 gRPC/REST 服務器,它公開 Web UI、CLI 和 CI/CD 系統使用的 API。它具有以下職責:

  • 應用程序管理和狀態報告
  • 調用應用程序操作(例如同步、回滾、用戶定義的操作)
  • 存儲庫和集群憑證管理(存儲為 K8s 秘密)
  • 對外部身份提供者的身份驗證和授權委託
  • RBAC 執行
  • Git webhook 事件的偵聽器/轉發器

有關 API 服務器 API 請求和響應活動的指標(請求總數、響應代碼等)。在 argocd-server-metrics:8083/metrics 端點抓取。

指標 型別 描述
argocd_redis_request_duration histogram Redis 請求持續時間。
argocd_redis_request_total counter 應用程序協調期間執行的 kubernetes 請求數。
grpc_server_handled_total counter 服務器上完成的 RPC 總數,無論成功還是失敗。
grpc_server_msg_sent_total counter 服務器發送的 gRPC 流消息總數。

Repository Server 指標

Repository Server 是一項內部服務,它維護一個包含應用程序清單的 Git 存儲庫的本地緩存。當提供以下輸入時,它負責生成和返回 Kubernetes 清單:

  • repository URL
  • revision (commit, tag, branch)
  • application path
  • template specific settings: parameters, helm values.yaml

有關 Repository Server 的指標。在 argocd-repo-server:8084/metrics 端點抓取。

指標 型別 描述
argocd_git_request_duration_seconds histogram Git 請求 duration 秒數。
argocd_git_request_total counter Repo server 執行的 git 請求數。
argocd_redis_request_duration_seconds histogram Redis 請求 duration 秒數。
argocd_redis_request_total counter 應用程序協調期間執行的 kubernetes 請求數。
argocd_repo_pending_request_total gauge 需要存儲庫鎖定的待處理請求數

Application Controller 指標

Application Controller 是一個 Kubernetes 控制器,它持續監控正在運行的應用程序並將當前的實時狀態與所需的目標狀態(如 repo 中指定)進行比較。它檢測 OutOfSync 應用程序狀態並可選擇採取糾正措施。它負責為生命週期事件(PreSync、Sync、PostSync)調用任何用戶定義的掛鉤。

功能:

  • 將應用程序自動部署到指定的目標環境
  • 支持多種配置管理/模板工具(Kustomize、Helm、Jsonnet、plain-YAML)
  • 能夠管理和部署到多個集群
  • SSO 集成(OIDC、OAuth2、LDAP、SAML 2.0、GitHub、GitLab、Microsoft、LinkedIn)
  • 用於授權的多租戶和 RBAC 策略
  • 回滾/隨地滾動到 Git 存儲庫中提交的任何應用程序配置
  • 應用資源健康狀況分析
  • 自動配置漂移檢測和可視化
  • 自動或手動將應用程序同步到所需狀態
  • 提供應用程序活動實時視圖的 Web UI
  • 用於自動化和 CI 集成的 CLI
  • Webhook 集成(GitHub、BitBucket、GitLab)
  • 用於自動化的訪問令牌
  • PreSync、Sync、PostSync 掛鉤以支持複雜的應用程序佈署(例如藍/綠和金絲雀升級)
  • 應用程序事件和 API 調用的審計跟踪
  • Prometheus 指標
  • 用於在 Git 中覆蓋 helm 參數的參數覆蓋

關於 Application Controller 的指標。在 argocd-metrics:8082/metrics 端點抓取。

指標 型別 描述
argocd_app_info gauge 有關應用程序的信息。它包含諸如 sync_status 和 health_status 之類的標籤,它們反映了 ArgoCD 中的應用程序狀態。
argocd_app_k8s_request_total counter 應用程序協調期間執行的 kubernetes 請求數。
argocd_app_labels gauge Argo 應用程序標籤轉換為 Prometheus 標籤。默認情況下禁用。請參閱下面有關如何啟用它的部分。
argocd_app_reconcile histogram 應用協調性能。
argocd_app_sync_total counter 應用程序同步歷史計數器。
argocd_cluster_api_resource_objects gauge 緩存中的 k8s 資源物件數。
argocd_cluster_api_resources gauge 受監控的 kubernetes API 資源的數量。
argocd_cluster_cache_age_seconds gauge 以秒為單位的集群緩存期限。
argocd_cluster_connection_status gauge k8s集群當前連接狀態。
argocd_cluster_events_total counter k8s 資源事件的進程數。
argocd_cluster_info gauge 有關集群的信息。
argocd_kubectl_exec_pending gauge 待處理的 kubectl 執行次數
argocd_kubectl_exec_total counter kubectl 執行次數
argocd_redis_request_duration histogram Redis 請求持續時間。
argocd_redis_request_total counter 應用協調期間執行的 redis 請求數。

與 Prometheus Operator 整合

如果 Kubernetes 中使用了 Prometheus Operator,則可以使用以下 ServiceMonitor 示例來通知 Prometheus 括取指標。

metadata.labels.release 更改為您的 Prometheus 選擇的標籤名稱。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: argocd-metrics
  labels:
    release: prometheus-operator
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-metrics
  endpoints:
  - port: metrics
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: argocd-server-metrics
  labels:
    release: prometheus-operator
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server-metrics
  endpoints:
  - port: metrics
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: argocd-repo-server-metrics
  labels:
    release: prometheus-operator
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-repo-server
  endpoints:
  - port: metrics
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: argocd-applicationset-controller-metrics
  labels:
    release: prometheus-operator
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-applicationset-controller
  endpoints:
  - port: metrics

Grafana Dashbaord

您可以在此處找到示例 Grafana 儀表板或查看演示實例儀表板