如何在Grafana中为数组类型字段配置Value Mapping值映射
Grafana数组字段转换实现方案
Value Mapping 不是该需求的唯一实现方案,针对request_types这类数组格式的字段,有三类常用实现方式,可根据实际场景选择:
方案1:使用面板转换功能(Transform)- 数组场景首选
- 适用场景:数组取值不固定、会动态生成新组合的通用场景
- 操作步骤:
- 进入表格面板的编辑页面,切换到Transform标签
- 点击
Add transformation,选择Convert field type转换规则 - 目标字段选择
request_types,输出类型设置为String,Grafana会自动把数组转为逗号分隔的字符串,比如["Music", "Film"]会直接转换为Music, Film - 如果需要把
all转换为大写的All,可以再加一条Replace转换规则,匹配值为all的内容,替换为All即可
该方案不需要提前枚举所有可能的数组取值,动态生成的新组合也能正常处理,是这类需求的首选实现方式。
方案2:使用Value Mapping - 适合取值固定的场景
- 适用场景:
request_types的所有取值组合可以提前枚举,不会出现新的未知组合 - 操作步骤:
- 进入表格面板编辑页面,切换到右侧的Field配置标签,找到
request_types字段的独立配置区 - 下拉找到
Value mappings配置项,点击Add value mapping - 选择
Value类型映射,逐一填写匹配值和目标显示值即可,比如:- 匹配值填
["all"],显示值填All - 匹配值填
["Artist", "Film"],显示值填Artist, Film
- 匹配值填
- 保存配置后即可生效
- 进入表格面板编辑页面,切换到右侧的Field配置标签,找到
缺点是如果后续出现新的数组组合,需要手动新增映射规则,否则会显示原始的数组格式。
方案3:数据源查询阶段预处理 - 性能最优
- 适用场景:有权限调整查询语句,且数据源支持数组处理函数
- 操作步骤:直接在查询阶段把数组字段处理成需要的字符串格式,比如使用PostgreSQL查询时,可以用
array_to_string(request_types, ', ')函数直接把数组转为逗号分隔的字符串,再搭配大小写转换函数处理all这类特殊值即可。
该方案不需要Grafana侧做额外的转换处理,查询返回的就是最终要展示的内容,性能最优。
内容的提问来源于stack exchange,提问作者The Coder
相关产品推荐
相关产品推荐

