PAYATHON 2026

Grafana 面板中的 Trendline 趋势线无法通过图例隐藏,怎么办?

数据小许

可以先用字段覆盖(field override)隐藏趋势线。Grafana 仓库已有图例点击无效的 bug 报告。手动配置隐藏规则只能控制显示,不能让查看者自由切换趋势线。

这是否属于 bug?

Grafana 仓库中的 Issue #120956 记录了相同现象:通过 Trendline transformation 生成趋势线后,点击图例无法将其隐藏。该报告使用 Grafana v12.4.1,带有 type/bug 标签。

原问题没有提供 Grafana 版本,因此无法确认你的环境是否与报告一致,也不能推断所有版本都会出现此问题。要确认问题是否已在某个版本修复,需要查看对应版本的发布记录。

Grafana 的 Trendline 文档指出,这个 transformation 会生成包含回归预测值的新数据帧。排查时应检查转换后生成的字段,不要只根据原始查询名称判断隐藏规则是否匹配。

如何通过字段覆盖隐藏趋势线?

以下步骤以 Time series 面板为例,选项名称可能因版本而异。

  1. 进入面板编辑界面,打开 Overrides。
  2. 点击 Add field override,选择 Fields with name。
  3. 从字段列表中选择趋势线实际对应的数值字段。
  4. 添加 Series > Hide in area 属性,选择 Viz。
  5. 如果还要隐藏悬浮提示中的趋势线数据,选择 Tooltip;如果需要移除图例项,选择 Legend。
  6. 检查预览,确认原始曲线仍然显示,再保存仪表盘。

字段选择规则见 Grafana 字段覆盖文档。Series > Hide in area 的配置方式也可参见 Grafana 可视化文档中的示例。不同面板和版本对隐藏后图例数值及 Tooltip 的处理可能不同,请在实际面板中确认。

优先从字段下拉列表中选择目标字段。趋势线名称可能与原始查询名称不同,也不能假定它总是使用某个固定名称。

对应的 JSON 配置是什么?

下面是传统面板 JSON 中的一个 override 条目,应加入现有的 fieldConfig.overrides 数组。将 TRENDLINE_FIELD_NAME 替换为面板中实际匹配的趋势线字段名称,不要覆盖已有的其他规则。

{
  "matcher": {
    "id": "byName",
    "options": "TRENDLINE_FIELD_NAME"
  },
  "properties": [
    {
      "id": "custom.hideFrom",
      "value": {
        "viz": true,
        "tooltip": true,
        "legend": false
      }
    }
  ]
}

该配置会在图形和 Tooltip 中隐藏趋势线,同时保留图例项。配置结构可参见 Grafana 仓库中的隐藏规则示例。建议先通过界面生成配置,再查看当前版本导出的 JSON。

如何让查看者自行切换?

保存上述 override 后,查看者看到的是预先配置的隐藏状态。即使保留图例项,也不能保证点击后曲线会重新显示;Grafana 仓库中有关于这一限制的相关报告。

如果安装版本提供 Legend > Series visibility,可以验证它能否识别并筛选这条趋势线。Grafana 图例文档描述了按名称或标签筛选系列的功能,也支持将筛选控件固定到侧边栏;该功能仅适用于 Time series。文档没有保证它能解决所有版本中的 Trendline 图例问题,因此需要在目标环境中测试。

若内置交互仍然无效,可以预先提供“带趋势线”和“不带趋势线”两种视图供查看者选择。如果必须在同一面板中使用自定义 drawer,还需要实现控件与系列可见状态之间的联动;单独增加 drawer 不会自动修复字段匹配问题。

手动覆盖也无效时检查什么?

先核对 override 是否选中了转换后的趋势线字段,再检查其他 override 是否对同一字段设置了冲突属性。可以在面板编辑界面使用 transformation 的调试视图检查输入和输出;操作方法见 Grafana transformation 文档。

继续排查时,至少记录 Grafana 版本、面板类型、转换顺序和最小面板配置,以便判断是字段匹配错误、配置冲突,还是与已报告的图例缺陷一致。

备注:内容仅供参考。