我正在从普罗米修斯收集数据
mysqld_exporter
并希望创建一个Grafana仪表板,我可以在其中以百分比表示服务可用性。
通过使用此查询:
count_over_time(mysql_up{instance="10.0.0.5:9104"}[1m])
的输出
mysql_up
为1或0
我得到所有数据点的总和,其值为
1|0
,在这种情况下,我正在刮每一个
15s
所以我得到了
4
数据点。
例如,如果从4个数据点中,有3个数据点的值为
1
一个值为0,即可用性的75%,我想绘制
75%
使用:
(total_datapoints - datapoints_with_value_0) / total_datapoints * 100
(4-1)/4 * 100
但现在我的问题是,我如何查询Prometheus,只获取值所在的数据点
0
如何按值过滤,然后应用时间范围?
如果我尝试以下内容:
count_over_time(mysql_up{instance="10.0.0.5:9104"} == 0 [1h])
或
count_over_time(mysql_up{instance="10.0.0.5:9104"} == 0)[1h])
我得到错误:
parse error: ranges only allowed for vector selectors
有什么想法吗?