3.6.4.2. 监控 DevWorkspace Operator
您可以配置示例监控堆栈来处理 DevWorkspace Operator 公开的指标。
3.6.4.2.1. 使用 Prometheus 收集 DevWorkspace Operator 指标
要使用 Prometheus 来收集、存储和查询 DevWorkspace Operator 的指标:
先决条件
-
devworkspace-controller-metrics服务在端口8443中公开指标。这会默认预先配置。 -
devworkspace-webhookserver服务在端口9443上公开指标。这会默认预先配置。 -
Prometheus 2.26.0 或更高版本正在运行。Prometheus 控制台在端口
9090上运行,带有对应的服务。参阅 Prometheus 的第一个步骤。
流程
创建一个 ClusterRoleBinding,将 Prometheus 关联的 ServiceAccount 绑定到 devworkspace-controller-metrics-reader ClusterRole。对于 示例监控堆栈,要使用的 ServiceAccount 的名称是
prometheus。注意如果没有 ClusterRoleBinding,您无法访问 DevWorkspace 指标,因为访问受基于角色的访问控制(RBAC)保护。
例 3.31. ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: devworkspace-controller-metrics-binding subjects: - kind: ServiceAccount name: prometheus namespace: monitoring roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: devworkspace-controller-metrics-reader将 Prometheus 配置为从
devworkspace-controller-metricsService 公开的端口8443提取指标,并从devworkspace-webhookserver服务公开的端口9443中提取指标。注意示例监控堆栈 已经使用空配置创建
prometheus-configConfigMap。要提供 Prometheus 配置详情,请编辑 ConfigMap 的data字段。例 3.32. Prometheus 配置
apiVersion: v1 kind: ConfigMap metadata: name: prometheus-config namespace: monitoring data: prometheus.yml: |- global: scrape_interval: 5s 1 evaluation_interval: 5s 2 scrape_configs: 3 - job_name: 'DevWorkspace' scheme: https authorization: type: Bearer credentials_file: '/var/run/secrets/kubernetes.io/serviceaccount/token' tls_config: insecure_skip_verify: true static_configs: - targets: ['devworkspace-controller-metrics.<DWO_project>:8443'] 4 - job_name: 'DevWorkspace webhooks' scheme: https authorization: type: Bearer credentials_file: '/var/run/secrets/kubernetes.io/serviceaccount/token' tls_config: insecure_skip_verify: true static_configs: - targets: ['devworkspace-webhookserver.<DWO_project>:9443'] 5- 1
- 提取目标的速度。
- 2
- 重新检查记录和警报规则的速率。
- 3
- Prometheus 监控的资源。在默认配置中,两个作业:
DevWorkspace和DevWorkspace Webhook,提取devworkspace-controller-metrics和devworkspace-webhookserver服务公开的时间序列数据。 - 4
- 来自端口
8443的指标提取目标。将<DWO_project> 替换为devworkspace-controller-metricsService所在的项目。 - 5
- 指标的修整目标(来自端口
9443)。将<DWO_project> 替换为devworkspace-webhookserverService所在的项目。
缩减
PrometheusDeployment,并最多从上一步中读取更新的 ConfigMap。$ oc scale --replicas=0 deployment/prometheus -n monitoring && oc scale --replicas=1 deployment/prometheus -n monitoring
验证
使用端口转发在本地访问
Prometheus服务:$ oc port-forward svc/prometheus 9090:9090 -n monitoring
-
通过查看
localhost:9090/targets上的目标端点,验证所有目标是否已启动。 使用 Prometheus 控制台查看和查询指标:
-
查看
localhost:9090/metrics中的指标。 从
localhost:9090/graph查询指标。如需更多信息,请参阅 使用表达式浏览器。
-
查看