跳到主要内容
版本:v1.8 🚧

调度监控

简介

Koordinator 提供了用于监控 koord-scheduler 调度性能的 Grafana 仪表盘。该仪表盘帮助您观察关键调度指标,如队列状态、调度延迟、调度结果、抢占、Gang 调度等。

仪表盘 JSON 文件维护在 Koordinator 仓库的 dashboards/scheduling.json

前置条件

  • Koordinator >= 1.8
  • 已部署 Prometheus 并配置为采集 koord-scheduler 指标
  • 已部署 Grafana >= 9.0.0 并连接到 Prometheus 数据源

启用指标采集

要启用 Prometheus 采集 koord-scheduler 指标,需要为 koord-scheduler 启用 PodMonitor。可以在安装或升级 Koordinator Helm chart 时设置 scheduler.monitorEnabled=true

# 安装时启用 PodMonitor
$ helm install koordinator koordinator-sh/koordinator --version 1.8.0 \
--set scheduler.monitorEnabled=true

# 或升级现有安装
$ helm upgrade koordinator koordinator-sh/koordinator --version 1.8.0 \
--set scheduler.monitorEnabled=true

这会创建一个 PodMonitor 资源,告诉 Prometheus Operator 采集 koord-scheduler Pod 上端口 10251(默认)的 /metrics 端点。

注意:PodMonitor 需要集群中安装了 Prometheus Operator。如果使用的是不带 Operator 的独立 Prometheus,则需要手动配置 Prometheus 来采集 koord-scheduler 的指标端点。

导入仪表盘

步骤 1:下载仪表盘 JSON 文件

从 Koordinator 仓库下载调度仪表盘 JSON 文件:

wget https://raw.githubusercontent.com/koordinator-sh/koordinator/main/dashboards/scheduling.json

步骤 2:导入到 Grafana

  1. 在浏览器中打开 Grafana。
  2. 导航到 DashboardsImport(或点击左侧栏的 + 图标并选择 Import)。
  3. 点击 Upload JSON file 并选择下载的 scheduling.json 文件。
  4. 选择采集 koord-scheduler 指标的 Prometheus 数据源。
  5. 点击 Import

步骤 3:配置变量

导入后,仪表盘提供以下模板变量:

变量描述默认值
datasource要查询的 Prometheus 数据源自动检测
jobkoord-scheduler 的 Prometheus job 标签koord-scheduler

在仪表盘顶部调整这些变量以匹配您的环境。

仪表盘面板

调度仪表盘包含以下部分:

Basic Summary(基础概览)

调度器健康状况和吞吐量概览:

  • Queue Growth Rate:调度队列增长速率(入队速率减去出队速率)。
  • Active Queue Pending Pods:当前在活跃队列中等待的 Pod 数量。
  • Avg Scheduled Latency:成功调度的 Pod 的平均端到端调度延迟。
  • Slow Scheduling (Timeout):调度超时的次数。
  • Enqueue QPS / Dequeue QPS:队列吞吐量指标。
  • Process CPU / Memory Usage:调度器进程的资源消耗。

Basic Summary

Scheduler Summary(调度器概览)

详细的调度管道指标:

  • Scheduling Queue Pending Pods:在活跃、退避和不可调度队列中等待的 Pod。
  • Unschedulable Pods by Plugin:哪些调度器插件导致 Pod 不可调度。
  • Active Queue Incoming Pods Rate:Pod 进入活跃队列的速率,按事件类型细分。
  • Backoff Queue Signal Rate:退避队列中的重试信号速率。
  • Scheduling Result Rate:调度尝试的成功与失败比率。
  • Scheduling Attempts by Result:按结果分类的调度尝试次数。

Scheduler Summary 1

Scheduler Summary 2

Algorithm Summary(算法概览)

调度算法性能:

  • Filter / Score / Preemption Latency:关键调度阶段的延迟分布。
  • Plugin Execution Time:各调度器插件的执行时间。

Algorithm Summary

ElasticQuota Summary(弹性配额概览)

弹性配额调度指标:

  • ElasticQuota Usage:弹性配额组中的资源使用量与配额限制。

ElasticQuota Summary

Transformer & Extension Summary(转换器和扩展概览)

调度器扩展和转换器指标:

  • Transformer Extension:与调度器转换器扩展相关的指标。
  • Client-Go Summary:调度器的 client-go 工作队列和请求指标。

Transformer Extension Summary

Client-Go Summary