You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana中查询InfluxDB创建动态CPU核心数模板变量

解决Grafana模板变量提取InfluxDB单一数值的问题

我来帮你搞定这个动态获取CPU核心数的模板变量配置,这样就能完美适配不同核数的实例了,具体步骤如下:

1. 创建依赖$host的$ncpus模板变量

进入你的Grafana仪表盘,点击顶部的「设置」图标 → 「变量」→ 「新建变量」:

  • 变量类型:选择「查询」
  • 数据源:选中你的InfluxDB数据源
  • 名称:填写ncpus(对应后续使用的$ncpus变量)
  • 查询语句:输入以下InfluxQL,注意要引用已有的$host变量:
    SELECT last("n_cpus") FROM "system" WHERE ("host" =~ /^$host$/)
    
  • 查询选项:
    • 在「字段」下拉框里选择last(因为你的查询返回的数值列名为last,选它就能只提取数值,过滤掉时间字段)
    • 「刷新」选项选择「On Dashboard Load」或者「On Time Range Change」,确保切换host时变量自动同步更新
  • 补充设置:可以给变量加个标签比如「CPU核心数」,方便后续识别

这样配置完成后,$ncpus就只会返回对应host的核心数数值(比如4),不会再带时间字段了。

2. 在Singlestats面板中动态使用$ncpus

配置负载平均值的Singlestats面板时:

  • Gauge刻度设置:将「Max」值直接填为$ncpus,仪表盘的刻度会自动适配当前实例的核心数
  • 着色阈值配置:
    • 红色阈值可以设为$ncpus - 1(Grafana支持直接在阈值框里做算术运算)
    • 黄色阈值可根据需求设置,比如$ncpus * 0.75(对应75%核心负载的预警线)

3. 验证配置效果

切换不同的$host实例,检查$ncpus变量是否正确显示对应实例的核心数,同时Singlestats的Gauge刻度和阈值是否随之动态调整。如果遇到变量不更新的情况,可以排查:

  • 确认$host变量设置为「单值」(多值host需要调整查询语句适配,你这里应该是单host选择场景)
  • 检查InfluxDB的system表中是否有对应host的n_cpus数据,确保last()能取到有效数值

内容的提问来源于stack exchange,提问作者nbari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:56:27