首页 > 解决方案 > 使用 PromQL 计算事件发生或指标报告的次数

问题描述

我使用 Victoria Metrics 来跟踪 IOT 设备。每当设备连接/断开连接时,我都会在 Victoria Metrics 中插入一个指标。我的指标名称是 devcon_s。我可以使用这个查询数据 - devcon_s{device_id="something"}

但我想知道一天中设备断开连接的频率。我尝试这样的查询 - sum_over_time(count_values without(kd_id) ("value", devcon_s{kd_id="something"} == 0)[1d:])

count_over_time((devcon_s{kd_id="something"} == 0)[1d:])

步长等于 1d 或 1h。但它并没有给我报告事件的实际计数,而是其他对我没有意义的东西。难道我做错了什么 ?还是无法计算 promQL 中的实际值数

标签: prometheuspromqlvictoriametricsmetricsql

解决方案


MetricsQL提供函数,该函数返回每个时间序列匹配的时间范围内count_le_over_time(m[d], le)值小于或等于le时间范围的原始数据点的数量。[d]m

以下查询应返回最后一天 value<=0 的原始数据点的数量:

count_le_over_time(devcon_s{k_id="something"}[1d])

推荐阅读