This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.11. 使用 Prometheus 配置内置监控
本指南介绍了 Operator SDK 通过 Prometheus Operator 提供的内置监控支持,及其对 Operator 作者的详细用途。
5.11.1. Prometheus Operator 支持 复制链接链接已复制到粘贴板!
Prometheus 是一个开源系统监视和警报工具包。Prometheus Operator 会创建、配置和管理在基于 Kubernetes 的集群(如 OpenShift Container Platform)中运行的 Prometheus 集群。
默认情况下,Operator SDK 中包括帮助函数,用于在任何生成的 Go-based Operator 中自动设置指标,以便在部署了 Prometheus Operator 的集群上使用。
5.11.2. 公开自定义指标 复制链接链接已复制到粘贴板!
作为 Operator 作者,您可以使用 controller-runtime/pkg/metrics
库中的全局 Prometheus registry 发布自定义指标。
先决条件
- 使用 Operator SDK 生成基于 Go 的 Operator
- Prometheus Operator (默认情况下在 OpenShift Container Platform 集群中部署)
流程
在 Operator SDK 项目中,取消注释
config/default/kustomization.yaml
文件中的以下行:../prometheus
../prometheus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建自定义控制器类,以便从 Operator 发布其他指标。以下示例将
widgets
和widgetFailures
收集器声明为全局变量,然后将它们注册到控制器的软件包中的init()
函数:例 5.6.
controllers/memcached_controller_test_metrics.go
文件Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录这些收集器来自
main
控制器类中协调循环的任何部分,这决定了指标的业务逻辑:例 5.7.
controllers/memcached_controller.go
文件Copy to Clipboard Copied! Toggle word wrap Toggle overflow 构建和推送 Operator:
make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 Operator:
make deploy IMG=<registry>/<user>/<image_name>:<tag>
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建角色和角色绑定定义,以允许 OpenShift Container Platform 集群的 Prometheus 实例提取 Operator 的服务监控。
必须分配角色,以便服务帐户具有提取命名空间指标的权限:
例 5.8.
config/prometheus/role.yaml
角色Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 5.9.
config/prometheus/rolebinding.yaml
角色绑定Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为部署的 Operator 应用角色和绑定:
oc apply -f config/prometheus/role.yaml
$ oc apply -f config/prometheus/role.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f config/prometheus/rolebinding.yaml
$ oc apply -f config/prometheus/rolebinding.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为您要提取的命名空间设置标签,为该命名空间启用 OpenShift 集群监控:
oc label namespace <operator_namespace> openshift.io/cluster-monitoring="true"
$ oc label namespace <operator_namespace> openshift.io/cluster-monitoring="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
查询并查看 OpenShift Container Platform Web 控制台中的指标。您可以使用自定义控制器类中设置的名称,如
widgets_total
和widget_failures_total
。