本页面介绍了如何将指标从 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
如果启用了 Workload Identity Federation for 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。
在不使用 Workload Identity Federation for GKE 的情况下配置 Cloud Monitoring
如果未启用 Workload Identity Federation for GKE,并且 Config Sync 在 Google Cloud 环境内运行,您可以使用 Compute Engine 默认服务账号。如果已停用自动 Editor 角色 (roles/editor
) 授予,请通过运行以下命令,向服务账号授予 Monitoring Metric Writer (roles/monitoring.metricWriter
) IAM 角色:
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 示例展示了一些模式,当您使用 RootSync 和 RepoSync API 时,它们使用 OpenCensus 指标来检测和诊断与 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 对象时,如果 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
。在过滤条件下拉列表中,选择协调器。此时会显示一个过滤条件字段框。
在过滤条件字段框中,在第一个字段中选择 =,在第二个字段中选择协调器名称(例如
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
。在过滤条件下拉列表中,选择组件。此时会显示一个过滤条件字段框。
在过滤条件字段中,在第一个框中选择 =,在第二个框中选择 source。
点击应用。
现在,您就可以查看从协调器的可靠来源搜寻时发生的错误了。
您还可以通过查询以下指标并按 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