Grafana技巧:如何按条件以不同样式显示时间序列
Grafana实现历史/预测数据曲线样式区分
方案1:查询阶段拆分数据集
- 直接把数据分成两个查询系列:
- 历史数据:过滤过去24小时,比如SQL数据源写
WHERE time >= NOW() - INTERVAL 24 HOUR AND time <= NOW() - 预测数据:过滤未来24小时,写
WHERE time > NOW() AND time <= NOW() + INTERVAL 24 HOUR
- 历史数据:过滤过去24小时,比如SQL数据源写
- 回到可视化面板,分别选中两个系列:
- 历史数据系列,把线条类型设为实线
- 预测数据系列,把线条类型设为虚线
方案2:单查询加标记字段拆分
如果你的数据里能加标记区分历史/预测,或者查询时生成标记字段:
- 以InfluxQL为例,查询语句这么写:
SELECT value, CASE WHEN time <= NOW() THEN 'history' ELSE 'forecast' END AS type FROM your_measurement WHERE time >= NOW() - INTERVAL 24 HOUR AND time <= NOW() + INTERVAL 24 HOUR - 在Time series面板里,把分组依据设为
type,自动拆成两个系列后,分别设置线条样式就行。
注意事项
- 确保两个系列的时间范围衔接紧密,别出现曲线断开的情况
- 也可以用面板的Override功能批量设置:匹配系列名带
forecast的,统一改成虚线样式
内容的提问来源于stack exchange,提问作者trexde
相关产品推荐
相关产品推荐

