文档首页/ 云容器引擎 CCE/ 最佳实践/ 监控/ Volcano调度指标采集及Grafana仪表盘搭建
更新时间:2026-02-09 GMT+08:00
分享

Volcano调度指标采集及Grafana仪表盘搭建

应用场景

Volcano插件中提供了各种监控指标采集,能够全面监控volcano调度工作负载情况,具体请参见Volcano默认监控指标说明。您可以基于Volcano监控指标构建不同维度的监控看板,以便及时了解集群相关信息。

当前云原生监控插件暂不支持自动采集这些指标。若需在Grafana仪表盘中查看,需手动配置云原生监控插件采集相关数据,并构建相应的仪表盘。本文将介绍如何进行Volcano监控指标的采集以及相关仪表盘的搭建。

前提条件

  • 集群中已安装Volcano插件,具体安装步骤请参见Volcano调度器
  • 集群中已安装云原生监控插件和Grafana插件,并且Grafana插件已启用“公网访问”,具体安装步骤请参见云原生监控插件安装Grafana
    • 如果您需使用AOM数据源,请在云原生监控插件中启用“监控数据上报至AOM服务”,并在Grafana插件中启用“数据源对接AOM”,同时确保两者选择的AOM实例一致
    • 如果您需使用Prometheus数据源,请在云原生监控插件中开启“本地存储模式”

步骤一:采集Volcano监控指标

当前云原生监控插件暂不支持自动采集Volcano监控指标。如果您需要通过监控中心查看Volcano监控指标,需要手动配置云原生监控插件以采集相关指标。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中,单击“集群 > 配置中心”。在右侧页面中,切换至“监控运维配置”页签。在“监控配置 > 采集配置 > 系统预置采集 > PodMonitor”中,单击“管理”,并在出现的对话框中搜索“volcano-scheduler”,并启用此采集开关。

    图1 启用采集开关

  3. 开启后,请在当前页面的“监控配置 > 指标配置”中单击“立即刷新”获取数据。刷新后,在“监控配置 > 采集配置 > 系统预置采集 > Targets”中,单击“查看详情”,能找到volcano-scheduler的采集记录为正常状态即可。

    图2 查看采集记录

步骤二:配置Grafana数据源

Grafana支持配置AOM数据源或Prometheus数据源:

  • 使用AOM数据源:Grafana将自动生成“prometheus-aom”数据源,需确保其与Grafana的连通性正常。
  • 使用Prometheus数据源:可直接使用Grafana自带的“prometheus”数据源,此时也需确保该数据源与Grafana的连通性正常。

如果需要AOM数据源,请确保当前集群中的云原生监控插件已开启“监控数据上报至AOM服务”,Grafana插件已启用“数据源对接AOM”,并且两个插件对接同一个AOM实例。Grafana插件开启“数据源对接AOM”后,Grafana可视化界面将自动生成“prometheus-aom”数据源。请确保该数据源的连通性,连通测试通过即可正常使用AOM数据源。

  1. 在集群左侧导航栏中,单击“集群 > 插件”。在右侧插件列表中,在Grafana插件模块单击“访问”,进入Grafana可视化界面。
  2. 首次访问Grafana可视化界面,需要输入用户名和密码,默认用户名与密码均为admin。输入用户名和密码后,您需要根据界面提示重置密码。
  3. 在Grafana可视化界面左上角单击,单击“Connections”左侧的 ,单击“Data sources”,进入Data sources界面。
  4. 在数据源列表中,单击“prometheus-aom”。在“prometheus-aom”数据源页面底部单击“Save&test”,测试数据源是否连通。若提示“Successfully queried the Prometheus API”,则说明连通测试通过。

    图3 连通测试通过

使用Prometheus数据源时,需确保已开启云原生监控插件的“本地存储模式”。Grafana自带的“prometheus”数据源可以直接对接本地存储模式的Prometheus数据源,请确保数据源的连通性,连通性测试通过后即可正常使用。

  1. 在集群左侧导航栏中,单击“集群 > 插件”。在右侧插件列表中,查找Grafana插件并在该插件模块中单击“访问”,进入Grafana可视化界面。
  2. 首次访问Grafana可视化界面,需要输入用户名和密码,默认用户名与密码均为admin。输入用户名和密码后,您需要根据界面提示重置密码。
  3. 在Grafana可视化界面左上角单击,单击“Connections”左侧的 ,单击“Data sources”,进入Data sources界面。
  4. 在数据源列表中,单击“prometheus”。在“prometheus”数据源页面底部单击“Save&test”,测试数据源是否连通。若提示“Successfully queried the Prometheus API”,则说明连通测试通过。

    图4 连通测试通过

步骤三:配置Grafana Dashboard

Grafana Dashboard是一个用于集中监控和可视化数据的仪表盘工具,支持多种数据源,您可以通过图表、图形和告警功能实时掌握系统状态和业务指标。基于Volcano监控指标,Grafana可以搭建调度性能相关监控仪表盘。

Volcano根据一些常用场景提供了Grafana Dashboard配置JSON文件,您可以直接复制后导入,本文以“volcano-scheduler-internal-dashboard”为例向您介绍如何配置Grafana Dashboard,如需要其他JSON配置请参见https://github.com/volcano-sh/volcano/blob/8aba772412bed8bdd9c20b599f97ff7835e8f422/installer/volcano-monitoring.yaml#L499-L508

  1. 导入Volcano的Grafana Dashboard,用于展示Volcano监控指标。

    1. 在Grafana可视化界面单击,打开左侧菜单栏。单击“Dashboards”。在“Dashboards”页面右上角,单击“New”,下拉菜单中单击“Import”
      图5 创建New dashboard
    2. volcano-scheduler-internal-dashboard的JSON内容复制到dashboard框中,单击“Load”,然后再单击“Import”进行导入。
      图6 复制JSON

  2. 完成后跳转到Volcano监控面板页面,根据步骤二:配置Grafana数据源中配置的Grafana数据源选择对应的Prometheus或AOM数据源。

    图7 选择数据源

    观察到面板数据如下:

    图8 观察面板

  3. 编辑具体的面板,调整普罗语句查询,这里以“E2E Job Scheduling Duration By JobName”示例,进入Edit Panel页面。

    图9 编辑面板

    可以查看到当前面板的PromQL,此语句可根据情况调整:

    图10 查看PromQL语句

    如修改为根据队列名称计算:avg by (queue) (volcano_e2e_job_scheduling_duration),然后单击“Run queries”。

    图11 修改PromQL语句

    若需要保存修改则单击面板右上角的“Save”和“Apply”。

    图12 保存修改

  4. 在当前面板内新增可视化面板。

    1. 右侧单击“Add”,并在下拉菜单中单击“Visualization”,创建一个新面板。
      图13 新增面板
    2. 在“Edit panel”页面左下方“Query”页签中,“Data source”选择步骤二:配置Grafana数据源中配置的数据源。单击“A”左侧,在展开内容的右侧单击“Code”,并在“Metrics browser”中输入对应的PromQL语句,用于收集数据。
      图14 编辑面板参数
    3. 在“Edit panel”页面右上方切换面板类型至“Table”,并在“Panel options > Title”中设置面板标题,本示例标题设置为“Task Latency P95”,您可以根据需求自定义。
      图15 设置面板标题
    4. 在右上角单击“Save”,在弹出的“Save dashboard”页面中再次单击“Save”,保存面板配置。在右上角单击“Apply”,返回Dashboard页面,此时新面板已创建。
      图16 保存面板

Volcano默认监控指标说明

指标名

类型

说明

volcano_e2e_scheduling_latency_milliseconds

Histogram

端到端调度器总调度耗时(包含调度算法 + 绑定 Pod)单位 ms

volcano_e2e_job_scheduling_latency_milliseconds

Histogram

每个 Job 的调度延迟,单位 ms

volcano_e2e_job_scheduling_duration

GaugeVec

某 Job 的调度总耗时(单位:ms),含 job_name, queue, namespace 标签

volcano_e2e_job_scheduling_start_time

GaugeVec

Job 开始调度的时间(Unix 时间戳)

volcano_e2e_job_scheduling_last_time

GaugeVec

Job 最后一次调度尝试的时间

volcano_plugin_scheduling_latency_milliseconds

HistogramVec

各个 Plugin 的调度耗时,标签:plugin, OnSession(阶段)

volcano_action_scheduling_latency_milliseconds

HistogramVec

各个调度阶段 Action 的耗时,标签:action

volcano_task_scheduling_latency_milliseconds

Histogram

单个 Task 的调度耗时(ms)

volcano_pod_preemption_victims

Gauge

被抢占的 Pod 数量(调度器为了优先级抢占资源)

volcano_total_preemption_attempts

Counter

累计的抢占尝试次数

volcano_unschedule_task_count

GaugeVec

当前无法调度的 task 数量(标签:job_id)

volcano_unschedule_job_count

Gauge

当前无法调度的 job 总数

Volcano指标相关PromQL语句

性能相关指标

  • 调度整体时延(E2E):

    监控面板名称

    PromQL 语句

    指标说明

    Scheduler E2E Scheduling Latency P95

    histogram_quantile(0.95, sum(rate(volcano_e2e_scheduling_latency_milliseconds_bucket[5m])) by (le))

    Volcano Scheduler从Job进入调度到完成一次完整调度决策的端到端调度耗时P95,反映整体调度性能是否出现长尾

    Scheduler E2E Scheduling Latency Heatmap

    sum(rate(volcano_e2e_scheduling_latency_milliseconds_bucket[5m])) by (le)

    E2E调度延迟的直方图分布,用于观察延迟分布是否出现抖动或长尾扩散

  • Job 级调度时延:

    监控面板名称

    PromQL 语句

    指标说明

    E2E Job Scheduling Duration By JobName (Latest)

    avg by (job_name) (volcano_e2e_job_scheduling_duration)

    按Job维度统计的平均调度耗时,用于定位具体慢Job,也可修改为其他维度如queue、job_namespace

    E2E Job Scheduling Latency Heatmap (Latest)

    sum(rate(volcano_e2e_job_scheduling_latency_milliseconds_bucket[5m])) by (le)

    Job级调度延迟分布热力图,用于观察Job调度是否存在整体延迟上升

  • 抢占(Preemption)相关指标:

    监控面板名称

    PromQL 语句

    指标说明

    Preemption Attempts Rate

    rate(volcano_total_preemption_attempts[5m])

    单位时间内Volcano触发的抢占尝试次数,数值升高通常意味着资源紧张或队列竞争激烈

    Current Preemption Victims

    volcano_pod_preemption_victims

    当前被标记为抢占者(Victim) 的Pod数量,反映抢占影响面

  • Plugin 级调度耗时:

    监控面板名称

    PromQL 语句

    指标说明

    Plugin Scheduling Latency P95 By Plugin / OnSession

    histogram_quantile(0.95, sum(rate(volcano_plugin_scheduling_latency_milliseconds_bucket[5m])) by (le, plugin, OnSession))

    按Plugin + OnSession维度统计的调度插件执行耗时P95,用于定位慢插件或Session阶段异常

  • Action 级调度耗时:

    监控面板名称

    PromQL 语句

    指标说明

    Action Scheduling Latency P95 By Action

    histogram_quantile(0.95, sum(rate(volcano_action_scheduling_latency_milliseconds_bucket[5m])) by (le, action))

    各个调度Action(allocate/preempt/reclaim等) 的执行耗时P95,是定位调度慢因的核心指标

  • 集群中作业调度情况:

    监控面板名称

    PromQL 语句

    指标说明

    -

    volcano_unschedule_job_count

    集群内未调度成功的vcjob数量

    -

    volcano_unschedule_task_count

    集群内未调度的Pod数量

队列相关指标(开启capacity插件后才可采集到)

  • Queue CPU:Request / Allocated / Deserved

    监控面板名称

    PromQL 语句

    指标说明

    Queue CPU Request

    volcano_queue_request_milli_cpu

    Queue中所有Pod申请的CPU总量(毫核)

    Queue CPU Allocated

    volcano_queue_allocated_milli_cpu

    Queue当前已经分配并使用的CPU资源量

    Queue CPU Deserved

    volcano_queue_deserved_milli_cpu

    Queue配置的CPU应得量

  • Queue Memory:Request / Allocated / Deserved

    监控面板名称

    PromQL 语句

    指标说明

    Queue Memory Request

    volcano_queue_request_memory_bytes

    Queue中所有Pod申请的内存总量

    Queue Memory Allocated

    volcano_queue_allocated_memory_bytes

    Queue已分配并使用的内存

    Queue Memory Deserved

    volcano_queue_deserved_memory_bytes

    Queue配置的内存应得量

  • Queue Scalar(扩展资源,以GPU为例):Request / Allocated / Deserved

    监控面板名称

    PromQL 语句

    指标说明

    Scalar Request

    volcano_queue_request_scalar_resources{resource="nvidia.com/gpu"}

    Queue中所有Pod申请的GPU数

    Scalar Allocated

    volcano_queue_allocated_scalar_resources{resource="nvidia.com/gpu"}

    Queue已分配使用的GPU数量

    Scalar Deserved

    volcano_queue_deserved_scalar_resources{resource="nvidia.com/gpu"}

    Queue配置的GPU应得量

  • Queue Capacity vs Real Capacity(CPU)

    监控面板名称

    PromQL 语句

    指标说明

    CPU Capacity

    volcano_queue_capacity_milli_cpu

    Queue理论上配置的CPU上限

    CPU Real Capacity

    volcano_queue_real_capacity_milli_cpu

    实际可用的CPU上限

  • Queue Capacity vs Real Capacity(Memory)

    监控面板名称

    PromQL 语句

    指标说明

    Memory Capacity

    volcano_queue_capacity_memory_bytes

    Queue理论上配置的内存上限

    Memory Real Capacity

    volcano_queue_real_capacity_memory_bytes

    实际可用内存上限

  • Queue Capacity vs Real Capacity(Scalar , 以GPU为例)

    监控面板名称

    PromQL 语句

    指标说明

    Scalar Capacity

    volcano_queue_capacity_scalar_resources{resource="nvidia.com/gpu"}

    Queue理论上配置的GPU上限

    Scalar Real Capacity

    volcano_queue_real_capacity_scalar_resources{resource="nvidia.com/gpu"}

    实际可用GPU上限

  • Queue Share

    监控面板名称

    PromQL 语句

    指标说明

    Queue Share

    volcano_queue_share

    Queue的实际使用率(allocated/deserved),未配置deserved的队列share值始终为1

相关文档