如何使用JSONPath在数组迭代时返回父级target值适配Grafana导入
问题解答
你的需求可以实现,结合Grafana JSON数据源的内置特性无需复杂配置即可达成目标。
操作方案
标准JSONPath语法本身不原生支持「拉平嵌套数组同时关联父级字段」的能力,但Grafana官方JSON API数据源内置了嵌套数组展开功能,操作步骤如下:
- 在查询面板的Query输入框中填写JSONPath
$[*],先获取所有CPU核心对应的顶层对象 - 找到解析选项(Parse options)区域,开启展开嵌套对象/数组功能,选择需要展开的字段为
sample - 展开完成后,在字段映射列表中选择三个对应字段即可:
- 原顶层对象的
target字段,作为核心标识列 - 展开后的
sample.time字段,作为时间列 - 展开后的
sample.value字段,作为指标值列
- 原顶层对象的
- 你可以按需将
sample.time、sample.value重命名为time和value,即可完全匹配你需要的表格输出结构。
替代方案(支持增强JSONPath的场景)
如果你使用的数据源支持JSONPath扩展语法(支持$parent父节点引用),也可以直接用如下表达式直接生成目标结构:
$[*].sample.[].{target: $parent.target, time: @.time, value: @.value}
其中@指代当前遍历的sample节点,$parent指代sample所属的顶层CPU核心对象。
内容的提问来源于stack exchange,提问作者jztilly
相关产品推荐
相关产品推荐

