如何在Grafana中提取Canon打印机碳粉名称前三个词并修改字段值?
解决Grafana中Canon碳粉名称仅显示前三个词的问题
方法一:在Flux查询中直接处理(推荐)
你可以在现有Flux查询末尾添加map函数,用已验证的正则表达式提取前三个词,修改后的查询如下:
from(bucket: "snmp_monitoring") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["host"] == "mon02.bilten.resilux.corp") |> filter(fn: (r) => r["agent_host"] == "$snmp_agent_host") |> filter(fn: (r) => r["_field"] == "SuppliesDescription_BlackToner") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) // 新增map函数提取前三个词 |> map(fn: (r) => ({ r with _value: regexp.extractString(r: /(\S+\s+\S+\s+\S+)/, v: r._value) })) |> yield(name: "last")
该map函数会遍历每条数据,用正则从_value字段提取前三个词,直接替换原完整名称。
方法二:在Grafana面板字段转换中处理
若不想修改查询,可通过Grafana内置转换功能实现:
- 打开目标表格面板,切换到「转换」标签页
- 点击「添加转换」,选择「提取正则表达式」
- 配置转换规则:
- 选择需处理的字段(通常为
_value) - 输入正则表达式:
(\S+\s+\S+\s+\S+) - 勾选「替换字段」,用提取结果覆盖原字段内容
- 选择需处理的字段(通常为
- 保存设置后,面板将显示截断后的碳粉名称
内容的提问来源于stack exchange,提问作者Ferenc
相关产品推荐
相关产品推荐

