使用 Cloud Monitoring 監控 Config Sync

將指標從 Config Sync 匯出至 Cloud Monitoring,即可追蹤同步健康狀態、偵測協調錯誤,以及監控叢集的資源用量。Config Sync 會使用 OpenTelemetry 記錄及匯出指標,您可以使用 Metrics Explorer 或透過 Cloud Monitoring API 查看這些指標。如需查詢這些指標的範例,請參閱「偵錯程序範例」。

建議您使用 Cloud Monitoring 或 Prometheus 匯出指標。您也可以匯出自訂指標。Config Sync 僅支援從 GKE 叢集將指標匯出至 Cloud Monitoring。

授予 Cloud Monitoring 指標寫入權限

如要為 Config Sync 設定 Cloud Monitoring,您必須將指標寫入權限授予專案中的服務帳戶。如要授予這項存取權,您必須具備專案的 resourcemanager.projects.setIamPolicy 權限。服務帳戶設定取決於是否啟用 Workload Identity Federation for GKE。

設定 Cloud Monitoring,並使用 Workload Identity Federation for GKE

如果已啟用 Workload Identity Federation for GKE,請執行下列指令,允許 Config Sync 傳送指標:

gcloud projects add-iam-policy-binding PROJECT_ID \
   --role=roles/monitoring.metricWriter \
   --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/config-management-monitoring/sa/default" \
   --condition=None

更改下列內容:

  • PROJECT_ID:您的專案 ID。
  • PROJECT_NUMBER:您的專案編號。

設定 Cloud Monitoring,不使用 Workload Identity Federation for GKE

如果未啟用 Workload Identity Federation for GKE,且 Config Sync 在Google Cloud 環境中執行,您可以使用 Compute Engine 預設服務帳戶。如果貴組織強制執行 iam.automaticIamGrantsForDefaultServiceAccounts 組織政策限制,系統可能不會自動將專案的編輯者 (roles/editor) 角色授予這個服務帳戶。您必須執行下列指令,將專案的 Monitoring 指標寫入者 (roles/monitoring.metricWriter) IAM 角色授予 Compute Engine 預設服務帳戶:

gcloud projects add-iam-policy-binding PROJECT_ID \
   --role=roles/monitoring.metricWriter \
   --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com

更改下列內容:

  • PROJECT_ID:您的專案 ID。
  • PROJECT_NUMBER:您的專案編號。

Cloud Monitoring 的預設指標清單

名稱 類型
api_duration_seconds 分布
apply_duration_seconds 分布
apply_operations_total 數量
declared_resources 最後一個值
internal_errors_total 數量
last_sync_timestamp 最後一個值
pipeline_error_observed 最後一個值
reconciler_errors 最後一個值
resource_fights_total 數量
reconcile_duration_seconds 分布
resource_group_total 最後一個值
resource_count 最後一個值
ready_resource_count 最後一個值
resource_ns_count 最後一個值
cluster_scoped_resource_count 最後一個值
kcc_resource_count 度量圖

如要修改 Cloud Monitoring 中的指標許可清單,請按照操作說明使用 ConfigMap 修補 otel 收集器部署作業。

Cloud Monitoring 偵錯程序範例

下列 Cloud Monitoring 範例說明一些模式,說明如何使用 OpenCensus 指標,偵測及診斷使用 RootSync 和 RepoSync API 時與 Config Sync 相關的問題。

指標格式

在 Cloud Monitoring 中,指標的格式如下:custom.googleapis.com/opencensus/config_sync/METRIC。

這項指標名稱由下列元件組成:

  • custom.googleapis.com:所有自訂指標都有這個前置字元
  • opencensus:Config Sync 使用 OpenCensus 程式庫,因此會加上這個前置字元
  • config_sync/:Config Sync 匯出至 Cloud Monitoring 的指標具有這個前置字元
  • METRIC:要查詢的指標名稱

依對帳工具查詢指標

RootSync 和 RepoSync 物件會透過高階指標進行檢測,讓您深入瞭解 Config Sync 在叢集上的運作方式。幾乎所有指標都會標上協調器名稱,因此您可以查看是否發生任何錯誤,並在 Cloud Monitoring 中設定錯誤快訊。

協調器是以 Deployment 形式部署的 Pod。可將資訊清單從可靠資料來源同步至叢集。建立 RootSync 物件時,Config Sync 會建立名為 root-reconciler-ROOT_SYNC_NAME 的協調器,如果 RootSync 的名稱為 root-sync,則會建立 root-reconciler。建立 RepoSync 物件時,Config Sync 會建立名為 ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH 的協調器,如果 RepoSync 的名稱為 repo-sync,則會建立 ns-reconciler-NAMESPACE,其中 NAMESPACE 是您建立 RepoSync 物件的命名空間。

下圖顯示當可靠資料來源為 Git 存放區時,協調器 Pod 的運作方式:

對帳工具流程

舉例來說,如要在使用 Cloud Monitoring 時依協調器名稱篩選,請完成下列工作:

  1. 前往 Google Cloud 控制台的「Monitoring」:

    前往「Monioring」

  2. 在「Monitoring」導覽窗格中,點選「 Metrics Explorer」。

  3. 在「選取指標」下拉式選單中,新增:custom.googleapis.com/opencensus/config_sync/reconciler_errors。

  4. 在「Filter」(篩選器) 下拉式選單中,選取「reconciler」。系統隨即會顯示篩選器欄位方塊。

  5. 在篩選器欄位方塊中,第一個欄位選取「=」,第二個欄位選取協調器名稱 (例如 root-reconciler)。

  6. 按一下「套用」。

現在可以查看 RootSync 物件的指標。

如要進一步瞭解如何依特定資料類型篩選,請參閱「篩選資料」。

依元件和狀態查詢 Config Sync 作業

啟用 RootSync 和 RepoSync API 後,系統會由協調器處理從可靠資料來源匯入和擷取資料,以及同步至叢集的作業。reconciler_errors 指標會依元件加上標籤,方便您查看發生錯誤的位置。

舉例來說,如要在使用 Cloud Monitoring 時依元件篩選,請完成下列工作:

  1. 前往 Google Cloud 控制台的「Monitoring」:

    前往「Monioring」

  2. 在「Monitoring」導覽窗格中,點選「 Metrics Explorer」。

  3. 在「Select a metric」(選取指標) 下拉式選單中,新增 custom.googleapis.com/opencensus/config_sync/reconciler_errors。

  4. 在「Filter」(篩選器) 下拉式選單中,選取「component」(元件)。系統隨即會顯示篩選器欄位方塊。

  5. 在篩選器欄位方塊中,依序選取第一個方塊中的「=」和第二個方塊中的「source」。

  6. 按一下「套用」。

現在,您可以查看從協調器的可靠資料來源擷取資料時發生的錯誤。

您也可以查詢下列指標並依 status 標記篩選,查看來源和同步處理程序本身的指標:

custom.googleapis.com/opencensus/config_sync/parser_duration_seconds
custom.googleapis.com/opencensus/config_sync/apply_duration_seconds
custom.googleapis.com/opencensus/config_sync/remediate_duration_seconds