如何将 2 个指标的查询响应拆分为两个

问题描述 投票:0回答:1
UNKNOWN - unable to parse prometheus response: { __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.24.132:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ac-0, service: prometheus }{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.3.110:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ia-0, service: prometheus }
sc_pcd_g2version is 3
0

如何将上面的响应拆分为 2,如下所示

{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.24.132:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ac-0, service: prometheus }


{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.3.110:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ia-0, service: prometheus }

其值 3 和 0 也将在 shell 脚本中拆分

bash shell jq
1个回答
0
投票

输入和期望的输出都不是有效的 JSON。因此,将输入和输出视为原始文本(使用带有标志

-Rr
的 jq,尽管此时您可以使用任何与 JSON 无关的文本处理工具),您可以简单地通过正则表达式扫描,例如从
{
}

jq -Rr 'scan("({[^}]*})")[]'
{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.24.132:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ac-0, service: prometheus }
{ __name__: sc_pcd_g2version, container: mgmtbroker, endpoint: vxexporter, instance: 10.42.3.110:9116, job: prometheus, namespace: delivery, pod: chn1-d1-ia-0, service: prometheus }

演示

© www.soinside.com 2019 - 2024. All rights reserved.