全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

训推任务Grafana看板配置实践

最近更新时间:2026-06-08 16:37:55

背景信息

本文档以创建任务和子用户维度的监控看板为例,介绍星流通过 Grafana 看板对监控数据指标进行可视化展示的实践案例。

看板整体分为用户和任务两个维度,分别展示 GPU 利用率、GPU 显存、CPU 利用率、内存利用率,每项指标展示 lastmeanmax 三项数据,支持按指标排序和按用户筛选,帮助识别资源利用率低的任务及其归属用户,以便及时清理、提高资源利用效率。

准备工作

配置方式

  • 导入本地Grafana JSON文件生成完整看板

  • 手动逐一配置各项监控看板。

方式一:导入 Grafana 看板JSON文件

  1. 在 Grafana 中依次单击 Create > Import

  2. 单击 Upload JSON file,选择本地保存的 JSON 看板文件并上传。

方式二:手动配置

步骤一:新建监控面板

  1. 在看板编辑界面单击 Add panel

  2. 选择Add a new panel

  3. 在查询编辑器中输入 PromQL 语句。PromQL语句编写规则和各语句解析可参考附录相关内容

步骤二:添加变量实现按用户筛选

  1. 在面板编辑界面单击 Settings。

  2. 在左侧导航栏,找到 Variables,单击 New,新增一行变量。

  3. 设置变量名称NameQuery 填写以下内容后,点击Update

    label_values(kube_pod_labels, label_kaic_com_kaic_creator)

    该查询从 kube_pod_labels 指标中提取所有不同的 label_kaic_com_kaic_creator 标签值,生成下拉筛选选项。

  4. 添加完变量后,修改所有图表中的 PromQL,将上述变量以参数形式添加,使后续所有针对变量的操作与图表联动。修改方式为在 kube_pod_labels 过滤条件中增加 label_kaic_com_kaic_creator=~"$creator",完整语句如下:

    avg by (label_kaic_com_kaic_creator) (
      (sum by (namespace, pod) (
        irate(container_cpu_usage_seconds_total{job="kubelet", metrics_path="/metrics/cadvisor", image!="", namespace="kaic-job"}[5m])
      ) * 100 / on(namespace, pod) group_left()
      sum by (namespace, pod) (
        kube_pod_container_resource_requests{job="kube-state-metrics", namespace="kaic-job", resource="cpu"}
      ))
      * on(pod) group_left(label_kaic_com_kaic_creator)
      kube_pod_labels{namespace="kaic-job", label_kaic_com_kaic_creator=~"$creator"}
    )

步骤三:配置面板展示样式

选择图表类型

在图表编辑界面右上方,根据规划的方案选择合适的图表类型:

  • 折线图:适用于展示指标的时间趋势变化。

  • 表格:适用于展示多维度指标的汇总对比。

配置 Legend 与数据展示
  1. 在左下角 Legend 中,使用双括号 {{ }} 添加需要展示的数据名称,作为图表图例。例如:

    {{label_kaic_com_kaic_creator}}
  2. 在右侧 Legend 菜单中,可以选择展示模式、位置和指标采集方式。以 Table + Right + Mean + Last + Max 为例:

配置数据格式

在右侧 Standard options 菜单的 Unit 选项中,选择数据的展示模式。例如将数值修改为百分比格式并保留 2 位小数。

效果展示

配置完成后,看板按用户和任务两个维度展示监控数据,每项指标包含 lastmeanmax 三项统计值。

  • 表格视图:汇总展示各用户/任务的 GPU 利用率、GPU 显存、CPU 利用率、内存利用率等指标,支持按任意指标列排序。

  • 折线图视图:展示各指标随时间变化的趋势曲线。

  • 顶部筛选器:支持按用户维度筛选,可单独或批量选择用户,图表数据实时联动更新。

通过以上配置,可以快速识别资源利用率较低的任务及其归属用户,及时进行资源回收与清理,提升集群资源利用效率。

附录:编写 PromQL 查询语句

以 CPU 利用率-用户指标为例,完整 PromQL 如下:

avg by (label_kaic_com_kaic_creator) (
  (sum by (namespace, pod) (
    irate(container_cpu_usage_seconds_total{job="kubelet", metrics_path="/metrics/cadvisor", image!="", namespace="kaic-job"}[5m])
  ) * 100 / on(namespace, pod) group_left()
  sum by (namespace, pod) (
    kube_pod_container_resource_requests{job="kube-state-metrics", namespace="kaic-job", resource="cpu"}
  ))
  * on(pod) group_left(label_kaic_com_kaic_creator)
  kube_pod_labels{namespace="kaic-job"}
)

语句的步骤分解如下:

  1. 计算实际 CPU 使用量(记为 A)。

  2. 获取 CPU 请求量(记为 B)。

  3. 计算使用率:A * 100 / B

  4. 关联创建者标签 label_kaic_com_kaic_creator

  5. 按创建者聚合,求每个创建者的平均值。

  6. 关联按用户筛选变量 $creator

各代码段的详细分析如下

代码段一:计算 CPU 使用率

sum by (namespace, pod) (
  irate(
    container_cpu_usage_seconds_total{
      job="kubelet",
      metrics_path="/metrics/cadvisor",
      image!="",
      namespace="kaic-job"
    }[5m]
  )
) * 100
  • irate(container_cpu_usage_seconds_total...[5m]):计算过去 5 分钟内 CPU 使用时间的瞬时增长率。

  • sum by (namespace, pod):按命名空间和 Pod 聚合所有容器的 CPU 使用量。

  • *100:将结果转换为百分比形式。

代码段二:计算 CPU 请求量

/ on(namespace, pod) group_left()
sum by (namespace, pod) (
  kube_pod_container_resource_requests{
    job="kube-state-metrics",
    namespace="kaic-job",
    resource="cpu"
  }
)
  • kube_pod_container_resource_requests:获取 Pod 的 CPU 请求资源量。

  • sum by (namespace, pod):聚合每个 Pod 的总 CPU 请求。

  • / on(namespace, pod) group_left():按 namespacepod 进行除法运算,将使用率与请求量关联。

代码段三:关联创建者标签

* on(pod) group_left(label_kaic_com_kaic_creator)
kube_pod_labels{
  namespace="kaic-job",
  label_kaic_com_kaic_creator=~"$creator"
}
  • * on(pod):通过 Pod 名称进行关联(此处使用乘法运算符,实际作用是标签关联)。

  • group_left(label_kaic_com_kaic_creator):将创建者标签添加到结果中。

  • kube_pod_labels:获取 Pod 的标签信息。

  • label_kaic_com_kaic_creator=~"$creator":使用变量 $creator 过滤特定的创建者。

代码段四:按创建者求平均值

avg by (label_kaic_com_kaic_creator) ( ... )
  • avg by (label_kaic_com_kaic_creator):按创建者标签对结果求平均值,得到每个用户的平均 CPU 利用率。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈