【发布时间】:2021-04-15 12:31:24
【问题描述】:
我正在从 mysqld_exporter 将数据收集到 Prometheus 中,并希望创建一个 Grafana 仪表板,我可以在其中以百分比表示服务可用性。
通过使用这个查询:
count_over_time(mysql_up{instance="10.0.0.5:9104"}[1m])
mysql_up的输出是 1 或 0
我得到所有数据点的总和,其值为1|0,在这种情况下,我正在抓取每个15s,所以我得到4 数据点。
现在例如,如果从 4 个数据点中,三个的值为 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
有什么想法吗?
【问题讨论】:
标签: prometheus grafana promql