如何将Grafana面板列名替换为MM-DD格式的日期别名?
Grafana 列名批量替换为日期别名的可行方案
方法1:批量配置Field Override
直接给所有数字列名配置统一替换规则,无需逐个手动添加:
- 进入面板编辑页,切换到「Overrides」标签页
- 点击「Add override」→「Fields with name matching regex」
- 输入匹配规则
^-?[0-6]$(精准匹配0、-1至-6的列名) - 点击「Add override property」→「Display name」
- 选择「Override with template」,输入以下模板表达式:
该表达式会自动将「0」转为当日MM-DD格式日期,「-N」转为N天前的对应日期${__field.name == '0' ? dateFormat(now(), 'MM-DD') : dateFormat(now().subtract(parseInt(__field.name.replace('-', '')), 'd'), 'MM-DD')}
方法2:数据源查询阶段直接指定别名
如果你的数据源支持(如PromQL、InfluxQL等),在查询语句中直接给字段重命名,比面板层修改更高效:
- 以PromQL为例,用
alias()函数为每个查询结果指定别名:
不同数据源的日期函数语法有差异,根据实际使用的数据源调整即可your_current_day_query | alias(date(now(), "MM-DD")) your_yesterday_query | alias(date(now()-1d, "MM-DD")) your_2days_ago_query | alias(date(now()-2d, "MM-DD"))
方法3:用Transform工具批量重命名字段
- 进入面板编辑页,切换到「Transform」标签页
- 点击「Add transformation」→「Rename by regex」
- 在「Pattern」中填入
^(-?)(\d)$,「Replacement」中填入模板:
正则会捕获列名中的负号和数字,自动生成对应的日期别名${1 == '' ? dateFormat(now(), 'MM-DD') : dateFormat(now().subtract($2, 'd'), 'MM-DD')}
内容的提问来源于stack exchange,提问作者Rok
相关产品推荐
相关产品推荐

