3.6.4.2. 监控 DevWorkspace Operator


您可以配置示例监控堆栈来处理 DevWorkspace Operator 公开的指标。

要使用 Prometheus 来收集、存储和查询 DevWorkspace Operator 的指标:

先决条件

  • devworkspace-controller-metrics 服务在端口 8443 中公开指标。这会默认预先配置。
  • devworkspace-webhookserver 服务在端口 9443 上公开指标。这会默认预先配置。
  • Prometheus 2.26.0 或更高版本正在运行。Prometheus 控制台在端口 9090 上运行,带有对应的服务。参阅 Prometheus 的第一个步骤

流程

  1. 创建一个 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
    Copy to Clipboard Toggle word wrap
  2. 将 Prometheus 配置为从 devworkspace-controller-metrics Service 公开的端口 8443 提取指标,并从 devworkspace-webhookserver 服务公开的端口 9443 中提取指标。

    注意

    示例监控堆栈 已经使用空配置创建 prometheus-config ConfigMap。要提供 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
    Copy to Clipboard Toggle word wrap
    1
    提取目标的速度。
    2
    重新检查记录和警报规则的速率。
    3
    Prometheus 监控的资源。在默认配置中,两个作业: DevWorkspaceDevWorkspace Webhook,提取 devworkspace-controller-metricsdevworkspace-webhookserver 服务公开的时间序列数据。
    4
    来自端口 8443 的指标提取目标。将 <DWO_project > 替换为 devworkspace-controller-metrics Service 所在的项目。
    5
    指标的修整目标(来自端口 9443 )。将 <DWO_project > 替换为 devworkspace-webhookserver Service 所在的项目。
  3. 缩减 Prometheus Deployment,并最多从上一步中读取更新的 ConfigMap。

    $ oc scale --replicas=0 deployment/prometheus -n monitoring && oc scale --replicas=1 deployment/prometheus -n monitoring
    Copy to Clipboard Toggle word wrap

验证

  1. 使用端口转发在本地访问 Prometheus 服务:

    $ oc port-forward svc/prometheus 9090:9090 -n monitoring
    Copy to Clipboard Toggle word wrap
  2. 通过查看 localhost:9090/targets 上的目标端点,验证所有目标是否已启动。
  3. 使用 Prometheus 控制台查看和查询指标:

    • 查看 localhost:9090/metrics 中的指标。
    • localhost:9090/graph 查询指标。

      如需更多信息,请参阅 使用表达式浏览器

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat