这是对一个查询的Prometheus调用,即"up“。
http://localhost:port/api/v1/query?query=up[1m]
现在,如果我想发送多个查询(不仅“向上”,还有其他查询),语法是什么?
发布于 2019-08-26 13:05:48
只要你不太挑剔你想要查询的内容,你就可以绕开它。例如,如果您想查询所有up
时间序列和所有cpu_utilization
时间序列,可以使用以下内容:
{__name__=~"up|cpu_utilization"}
它甚至可以处理范围查询,只要您希望对所有时间序列都使用相同的范围:
{__name__=~"up|cpu_utilization"}[1m]
但如果您想要不同的时间范围或想要添加选择器(例如,up{job="prometheus}
和cpu_utilization{instance="foo:8080"}
没有简单的组合方式),则不是这样。
发布于 2019-08-23 16:25:02
您不能在一个HTTP调用中以query= qry1 qry2..
的形式发送多个查询。如果您仔细查看响应对象:
$ curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z'
{
"status" : "success",
"data" : {
"resultType" : "vector",
"result" : [
{
"metric" : {
"__name__" : "up",
"job" : "prometheus",
"instance" : "localhost:9090"
},
"value": [ 1435781451.781, "1" ]
},
{
"metric" : {
"__name__" : "up",
"job" : "node",
"instance" : "localhost:9100"
},
"value" : [ 1435781451.781, "0" ]
}
]
}
}
您将看到"data"
字段只包含两个键(即"resultType"
和"result"
),而且它本身并不是一个数组。因此,"data"
不可能保存多个查询的结果。
https://stackoverflow.com/questions/57627673
复制相似问题