如何将查询结果组合成固定的输出格式?
How to combine query results into fixed output format?
我正在构建一个 Prometheus 查询 (PromQL) 来获取指标数据以监控我的服务器上的自定义指标。有些服务器有时可能会宕机,我希望始终在我的监控输出中包含此类服务器。
我有 2 个单独的拉取信息查询,如下所示:
查询 1:
up{instance=~"localhost:.+"}
输出 1:
这里的值表示节点是up还是down
Element
Value
up{instance="localhost:8080",job="prometheus",monitor="fav-monitor"}
1
up{instance="localhost:8081",job="prometheus",monitor="fav-monitor"}
0
查询 2:
my_node{instance=~"localhost:.+", job="prometheus"}
输出 2:
Element
Value
my_node{instance="localhost:8080",job="prometheus",monitor="fav-monitor",name="mynode-node1"}
25
我终于想获得如下输出,请帮忙。
Element
Value
{instance="localhost:8080",job="prometheus",monitor="fav-monitor",name="mynode-node1"}
25
{instance="localhost:8081",job="prometheus",monitor="fav-monitor",name="mynode-node2"}
0
注意:最好能够为 localhost:8081 生成名称,如上面的预期输出所示,但空名称也可以。
我能够通过以下查询获得所需的输出。欢迎改进和建议。
(
up{instance=~"localhost:.+"}
)
+ on(instance) group_left(name)
(
my_node{instance=~"localhost:.+", job="prometheus"}
)
or
(
label_replace(up{instance=~"localhost:.+"}, "name", "mynode-nodex", "", "") == 0
)
+ on (instance) group_left(name)
(
label_replace(up{instance=~"localhost:.+"}, "name", "mynode-nodex", "", "") == 0
)
我正在构建一个 Prometheus 查询 (PromQL) 来获取指标数据以监控我的服务器上的自定义指标。有些服务器有时可能会宕机,我希望始终在我的监控输出中包含此类服务器。
我有 2 个单独的拉取信息查询,如下所示:
查询 1:
up{instance=~"localhost:.+"}
输出 1: 这里的值表示节点是up还是down
Element | Value |
---|---|
up{instance="localhost:8080",job="prometheus",monitor="fav-monitor"} | 1 |
up{instance="localhost:8081",job="prometheus",monitor="fav-monitor"} | 0 |
查询 2:
my_node{instance=~"localhost:.+", job="prometheus"}
输出 2:
Element | Value |
---|---|
my_node{instance="localhost:8080",job="prometheus",monitor="fav-monitor",name="mynode-node1"} | 25 |
我终于想获得如下输出,请帮忙。
Element | Value |
---|---|
{instance="localhost:8080",job="prometheus",monitor="fav-monitor",name="mynode-node1"} | 25 |
{instance="localhost:8081",job="prometheus",monitor="fav-monitor",name="mynode-node2"} | 0 |
注意:最好能够为 localhost:8081 生成名称,如上面的预期输出所示,但空名称也可以。
我能够通过以下查询获得所需的输出。欢迎改进和建议。
(
up{instance=~"localhost:.+"}
)
+ on(instance) group_left(name)
(
my_node{instance=~"localhost:.+", job="prometheus"}
)
or
(
label_replace(up{instance=~"localhost:.+"}, "name", "mynode-nodex", "", "") == 0
)
+ on (instance) group_left(name)
(
label_replace(up{instance=~"localhost:.+"}, "name", "mynode-nodex", "", "") == 0
)