使用 Prometheus 監控 Config Connector


您可以使用 Prometheus 收集並顯示 Config Connector 的指標。

事前準備

如要完成本頁中的步驟,您必須在叢集上安裝 Prometheus。方法如下:

擷取指標

Prometheus 會透過抓取 HTTP 端點來收集指標。本節說明 Config Connector 刮除端點和 Prometheus 設定。

Config Connector 刮除端點

對於 Config Connector,服務端點位於 cnrm-controller-manager-servicecnrm-resource-stats-recorder-service 的 8888 通訊埠。這些服務具有 prometheus.io/scrape: "true"prometheus.io/port: "8888" 註解。這些服務也包含標籤 cnrm.cloud.google.com/monitored: "true"cnrm.cloud.google.com/system: "true"。您可以設定 Prometheus,從這些註解和標籤中抓取 Config Connector 元件。

設定 Prometheus

您可能需要先設定 Prometheus 的 Kubernetes 服務探索 (SD),才能從 Kubernetes REST API 探索抓取目標。

您設定 Prometheus 從 Config Connector 抓取指標的方式,取決於您安裝 Prometheus 的方式。請參閱 Prometheus 安裝說明文件,瞭解如何更新設定。

舉例來說,如果您使用 Prometheus Operator,並透過 ServiceMonitor 進行設定,可以套用下列設定,從 Config Connector 擷取指標。

  spec:
    endpoints:
    - interval: 10s
      port: metrics
    namespaceSelector:
      matchNames:
      - cnrm-system
    selector:
      matchLabels:
        cnrm.cloud.google.com/monitored: "true"
        cnrm.cloud.google.com/system: "true"

查詢範例

Prometheus 使用 PromQL 查詢語言。本節提供 Config Connector 指標的 PromQL 查詢範例。您可以設定 Prometheus,讓系統從任何有效的 PromQL 查詢產生快訊

依資源類型和狀態查詢協調要求

您可以依資源類型和狀態查看失敗的對帳要求數量。

舉例來說,如要檢查 PubSubTopic 資源的錯誤總數,請使用以下查詢。

configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}

依資源類型和命名空間檢查資源的匯總狀態

您可以查看命名空間中的資源數量。

舉例來說,如要查看 default 命名空間中 PubSubTopic 資源的總數,請使用下列查詢。

configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}

依資源類型查詢重整工作站的使用率

(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)

可用的指標

Config Connector 會收集下列指標,並提供給 Prometheus 使用。

名稱 類型 標籤 說明
configconnector_reconcile_requests_total 計數器 命名空間
group_version_kind
status
重整要求總數。
configconnector_reconcile_request_duration_seconds 直方圖 命名空間
group_version_kind
status
完成對帳要求所需時間的分布情形。
configconnector_applied_resources_total 度量圖 命名空間
group_version_kind
status
受管理資源的總數。
configconnector_build_info 度量圖 version Config Connector 的目前版本。
configconnector_reconcile_workers_total 度量圖 group_version_kind 依資源類型匯總的調和工作站總數。
configconnector_reconcile_occupied_workers_total 度量圖 group_version_kind 已佔用調和工作站的總數,按資源類型匯總。

啟用資源名稱標籤

根據預設,指標會根據資源類型 (例如 PubSubTopic) 進行匯總。您可以啟用指標匯總功能,以便依個別資源匯總指標。

如要啟用資源名稱匯總功能,請執行下列步驟。

  1. 編輯 cnrm-controller-manager StatefulSet 物件

    kubectl edit statefulset cnrm-controller-manager -n cnrm-system

    如果您使用命名空間模式,請將 NAMESPACE_NAME 替換為您的命名空間。

    kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
  2. 找出陣列 spec.args 並新增 --resource-name-label=true

    apiVersion: apps/v1
    kind: StatefulSet
      name: cnrm-controller-manager
    spec:
      template:
        spec:
          containers:
          - name: manager
      args:
            - --resource-name-label=true
    

後續步驟

如要進一步瞭解如何編寫查詢,請參閱 Prometheus 查詢語言說明文件範例