使用政策控制器指标

本页面介绍了如何使用指标来监控政策控制器。

政策控制器包含与政策使用情况相关的多个指标。例如,有指标记录限制条件和限制条件模板的数量,以及检测到的审核违规次数。为了创建并记录这些指标,政策控制器会使用 OpenTelemetry。您可以配置政策控制器以将这些指标导出到 PrometheusCloud Monitoring。导出指标的默认设置会将指标同时导出到 Prometheus 和 Cloud Monitoring。

配置指标导出

您可以配置 Policy Controller 导出其指标的方式。您可以在安装 Policy Controller 时,选择 Prometheus 和/或 Cloud Monitoring,也可以两者都不选。默认情况下,政策控制器会尝试将指标同时导出到 Prometheus 和 Cloud Monitoring。

将指标导出到 Cloud Monitoring

如果 Policy Controller 在具有默认服务帐号的 Google Cloud 环境中运行,则 Policy Controller 会自动将指标导出到 Cloud Monitoring。

如果启用了 GKE Workload Identity舰队 Workload Identity,则通过运行以下命令允许 Policy Controller 发送指标:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
  --role=roles/monitoring.metricWriter

PROJECT_ID 替换为集群的 Google Cloud 项目 ID。

如需查看有关如何查看这些指标的示例,请参阅读取 Cloud Monitoring 中的 OpenCensus 指标

将指标导出到 Prometheus

政策控制器会将 Prometheus 的指标导出到 gatekeeper-system 命名空间下 gatekeeper-controller-manager-* Pod 的端口 8888。

如果 Policy Controller 在配置了 Google Cloud Managed Service for Prometheus 的集群上运行,则系统会自动收集这些指标并将其存储在 Cloud Monitoring 中。这也适用于在安装 Policy Controller 后启用 Google Cloud Managed Service for Prometheus 的集群。您可能还需要向 Google Cloud Managed Service for Prometheus 使用的默认 Compute Engine 服务帐号授予其他权限,具体取决于您的政策。如需详细了解如何向 Google Cloud Managed Service for Prometheus 授予权限,请参阅启用代管式集合:GKE。如需详细了解如何配置 Google Cloud Managed Service for Prometheus,请参阅代管式收集功能使用入门

由于 Policy Controller 可用于 GKE Enterprise,因此 Google Cloud 可观测性(包括 Google Cloud Managed Service for Prometheus)无需额外付费。如果您在要求 GKE Enterprise 许可之前安装了 Policy Controller,并且启用了 Google Cloud Managed Service for Prometheus,则您可能会看到收集到的指标的费用。如需详细了解 Cloud Monitoring 价格,请参阅 Google Cloud Managed Service for Prometheus 的价格

如需查看有关如何使用 Google Cloud Managed Service for Prometheus 解决方案查看指标的示例,请参阅使用 Cloud Monitoring 进行查询

查看指标

Policy Controller 指标会以 Prometheus 格式导出到您的 Cloud Monitoring 项目。因此,您可以使用 Cloud Monitoring API 和 Google Cloud 控制台中的信息中心查询指标。您可以修改此信息中心,以满足您的业务和运营需求。

要查询 Cloud Monitoring API,请使用 Prometheus 查询语言 (PromQL)(Kubernetes 指标的实际查询语言)或监控查询语言 (MQL)(Google 的专有指标查询语言)。

如需创建 Policy Controller 信息中心,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到信息中心页面。

    转到“信息中心”

  2. 信息中心概览页面上,点击示例库标签页。 此标签页会显示您可以导入的所有信息中心。

  3. 类别列中,选择 Anthos Config Management

  4. Anthos Config Management 示例表中,选中政策控制器复选框。

  5. 点击 导入

  6. 如需创建信息中心,请点击确认窗口中的确认

如需查看和修改 Policy Controller 信息中心,请执行以下操作:

  1. 信息中心概览页面上,选择信息中心列表标签页。
  2. 选择 Policy Controller 信息中心。
  3. 如需自定义信息中心,请点击修改信息中心
  4. 进行所需更改,然后点击保存。如需详细了解如何自定义信息中心,请参阅 Cloud Monitoring 文档中的过滤信息中心

创建提醒

如需在指标达到特定阈值时接收通知,请在 Cloud Monitoring 中创建提醒政策

第三方集成

使用 Cloud Monitoring API,任何第三方可观测性工具都可以注入政策控制器指标。

例如,如果您使用的是 Grafana 信息中心,请在 Grafana 中添加 Cloud Monitoring API 作为数据源。如需了解详情,请参阅 Grafana 文档中的 Google Cloud Monitoring

可用指标

如果您在集群上启用了 Policy Controller,并配置为导出到 Cloud Monitoring,则可以查询以下指标(均带有 OpenCensus/ 前缀):

名称 类型 标签 说明
OpenCensus/audit_duration_seconds 累计 审核周期持续时间分布
OpenCensus/audit_last_run_time 仪表盘 自上次审核运行时以来的 Epoch 时间戳,以秒为单位,以浮点数表示
OpenCensus/constraint_template_ingestion_count 累计 状态 限制条件模板提取操作的总数
OpenCensus/constraint_template_ingestion_duration_seconds 累计 状态 限制条件模板提取持续时间分布
OpenCensus/constraint_templates 仪表盘 status 当前限制条件模板数量
OpenCensus/validation_request_count 计数器 admission_status 来自 API 服务器的准入请求计数
OpenCensus/validation_request_duration_seconds 累计 admission_status 准入请求持续时间分布
OpenCensus/violations 仪表盘 enforcement_action 在上一个审核周期中检测到的审核违规次数
OpenCensus/watch_manager_intended_watch_gvk 仪表盘 打算监控多少个唯一的 GroupVersionKinds 政策控制器。此指标结合了同步的资源和限制条件。
OpenCensus/watch_manager_watched_gvk 仪表盘 实际上正在监控多少个唯一的 GroupVersionKinds 政策控制器。当该指标等于 OpenCensus/watch_manager_intended_watch_gvk 时,它会收敛。

如果 Policy Controller 已配置为导出到 Prometheus,您可以查询以下指标(均带有 Prometheus/ 前缀):

名称 类型 标签 说明
Prometheus/gatekeeper_audit_duration_seconds/histogram 累计 审核周期持续时间分布
Prometheus/gatekeeper_audit_last_run_end_time/gauge 仪表盘 上次审核运行的结束的纪元时间戳,以浮点数表示(以秒为单位)
Prometheus/gatekeeper_audit_last_run_time/gauge 仪表盘 上次审核运行的开始的纪元时间戳,以浮点数表示(以秒为单位)
Prometheus/gatekeeper_constraint_template_ingestion_count/counter 累计 状态 限制条件模板提取操作的总数
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram 累计 状态 限制条件模板提取持续时间分布
Prometheus/gatekeeper_constraint_templates/gauge 仪表盘 status 当前限制条件模板数量
Prometheus/gatekeeper_validation_request_count/counter 累计 admission_status、admission_dryrun 来自 API 服务器的准入请求计数
Prometheus/gatekeeper_validation_request_duration_seconds/histogram 累计 admission_status 准入请求持续时间分布
Prometheus/gatekeeper_violations/gauge 仪表盘 enforcement_action 在上一个审核周期中检测到的审核违规次数
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge 仪表盘 打算监控多少个唯一的 GroupVersionKinds 政策控制器。此指标结合了同步的资源和限制条件。
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge 仪表盘 实际上正在监控多少个唯一的 GroupVersionKinds 政策控制器。当该指标等于 Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge 时,它会收敛。

后续步骤