本頁說明如何將指標從 Config Sync 傳送至 Cloud Monitoring。
Config Sync 會使用 OpenTelemetry 建立、記錄及匯出指標。本頁說明如何設定 Cloud Monitoring 指標。如要瞭解其他匯出指標的方式,請參閱「使用 Prometheus 監控 Config Sync」或「使用自訂監控功能監控 Config Sync」。
如要設定 Cloud Monitoring 指標,您必須擁有專案的 iam.serviceAccounts.setIamPolicy
權限。如需查看這些指標的範例,請參閱「範例偵錯程序」。您可以使用 Metrics Explorer 或透過 Cloud Monitoring API 查看這些指標。
授予 Cloud Monitoring 指標寫入權限
如要為 Config Sync 設定 Cloud Monitoring,您必須授予專案中服務帳戶的指標寫入權限。所需權限取決於是否已啟用 Workload Identity Federation for GKE。
透過 Workload Identity Federation for GKE 設定 Cloud Monitoring
如果已啟用 GKE 適用的工作負載身分聯盟,請執行下列指令,允許 Config Sync 傳送指標:
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/monitoring.metricWriter \
--member="serviceAccount:PROJECT_ID.svc.id.goog[config-management-monitoring/default]"
將 PROJECT_ID
替換為叢集的專案 ID。
設定 Cloud Monitoring,但不使用 Workload Identity Federation for GKE
如果未啟用 Workload Identity Federation for GKE,且 Config Sync 在Google Cloud 環境中執行,您可以使用 Compute Engine 預設服務帳戶。如果貴機構強制執行iam.automaticIamGrantsForDefaultServiceAccounts
機構政策限制,系統可能不會自動將專案的編輯者 (roles/editor
) 角色授予這個服務帳戶。您必須執行下列指令,將專案的 Monitoring Metric Writer (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 中設定相關快訊。
Reconciler 是以 Deployment 形式部署的 Pod。這個工具會將資訊清單從可靠資料來源同步至叢集。建立 RootSync 物件時,如果 RootSync 的名稱是 root-sync
,Config Sync 會建立名為 root-reconciler-ROOT_SYNC_NAME
或 root-reconciler
的協調器。建立 RepoSync 物件時,如果 RepoSync 的名稱是 repo-sync
,Config Sync 會建立名為 ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
或 ns-reconciler-NAMESPACE
的協調器,其中 NAMESPACE
是您建立 RepoSync 物件時使用的命名空間。
下圖說明當可靠資料來源為 Git 存放區時,調解器 Pod 的運作方式:
舉例來說,如要在使用 Cloud Monitoring 時依協調器名稱篩選,請完成下列工作:
前往 Google Cloud 控制台的「Monitoring」:
在「Monitoring」導覽窗格中,按一下 leaderboard「Metrics Explorer」。
在「選取指標」下拉式清單中,新增:
custom.googleapis.com/opencensus/config_sync/reconciler_errors
。在「Filter」(篩選器) 下拉式清單中,選取「reconciler」(對帳工具)。系統隨即會顯示「篩選欄位」方塊。
在篩選器欄位方塊中,選取第一個欄位的「=」,然後在第二個欄位中選取調解員名稱 (例如
root-reconciler
)。按一下 [套用]。
您現在可以查看 RootSync 物件的指標。
如需依特定資料類型篩選資料的更多操作說明,請參閱「篩選資料」。
依元件和狀態查詢 Config Sync 作業
啟用 RootSync 和 RepoSync API 後,調解器會處理從可靠來源匯入及取得來源,並同步至叢集。reconciler_errors
指標會依元件標示,方便您查看發生錯誤的位置。
舉例來說,如要在使用 Cloud Monitoring 時依元件篩選,請完成下列工作:
前往 Google Cloud 控制台的「Monitoring」:
在「Monitoring」導覽窗格中,按一下 leaderboard「Metrics Explorer」。
在「選取指標」下拉式清單中,新增
custom.googleapis.com/opencensus/config_sync/reconciler_errors
。在「Filter」(篩選器) 下拉式清單中,選取「component」(元件)。系統隨即會顯示「篩選欄位」方塊。
在篩選器欄位方塊中,依序選取第一個方塊的「=」和第二個方塊的「來源」。
按一下 [套用]。
您現在可以查看從調解工具的單一事實來源擷取資料時發生的錯誤。
您也可以查詢下列指標並依 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