【发布时间】:2021-12-11 05:01:53
【问题描述】:
我正在尝试获取基于阈值的百分比。我的数据如下所示:
{
"request": {
"url": "api/datasources/proxy/1/api/v1/query_range?query=health&start=1635183780&end=1635184080&step=15",
"method": "GET",
"hideFromInspector": false
},
"response": {
"status": "success",
"data": {
"resultType": "matrix",
"result": [
{
"metric": {
"__name__": "health",
"application": "myapp"
},
"values": [
[
1635183780,
"3"
],
[
1635183795,
"3"
],
[
1635183810,
"3"
],
[
1635183825,
"3"
],
[
1635183840,
"3"
],
[
1635183855,
"3"
],
[
1635183870,
"3"
],
[
1635183885,
"3"
],
[
1635183900,
"3"
],
[
1635183915,
"3"
],
[
1635183930,
"3"
],
[
1635183945,
"3"
],
[
1635183960,
"3"
],
[
1635183975,
"3"
],
[
1635183990,
"3"
],
[
1635184005,
"3"
],
[
1635184020,
"3"
],
[
1635184035,
"3"
],
[
1635184050,
"3"
],
[
1635184065,
"3"
],
[
1635184080,
"3"
]
]
}
]
}
}
}
我想得到值是 3 时的百分比。所以就像在这种情况下它是 100%,但如果它低于 3,那将降低百分比。
我在 grafana 中使用 promql。我曾尝试做类似count 或count_over_time 的操作,但由于结果显示它是即时向量而不是范围,因此出现错误。我的理解非常有限,所以我不确定如何获得此处表示的值的总数。甚至做类似count(health == 3) / count(health)
【问题讨论】:
-
我无法重现您的问题。我能够毫无问题地使用 count(metric==3)/count(metric) 。你能澄清一下到底是什么错误吗?
-
@MarceloÁviladeOliveira 随着时间的推移使用时出现错误,但使用计数时,我只得到 1。我想得到结果的数量,在这种情况下为 21。
-
count(health==3) 将返回 21,但在您的问题中,您曾说过“我想获取值为 3 时的百分比”,并且您在尝试时遇到了错误。
-
是的,我在使用 count_over_time 时出现错误。计数有效,但我没有得到 21,我只得到 1。我确实想要一个百分比,但我包括了,以防有另一种方法可以获得相同的结果(promql 内置的东西)
标签: prometheus grafana promql