PromQL 很难解决您的问题。Prometheus 是一个时间序列数据库,您希望从这些指标中恢复事件。
有一种方法可以恢复指标状态 0/1 发生变化的事件:
您将使用检测范围与指标的轮询间隔匹配的changes()函数来提取更改事件(如果轮询间隔错误,您将看到重复的更改并可能错过某些事件)
changes(metric[30s]) != 0
然后使用实际的度量值来识别上/下开关
(changes(metric[30s]) != 0) * metric
您可以使用子查询可视化输出:((changes(metric[30s]) != 0) * metric)[2d:]
0 @1627421720
1 @1627427120
0 @1627508120
1 @1627513520
该值为您提供新状态,时间戳(在@之后)为您提供事件的纪元时间(大约取决于轮询时间)。
我们离您想要的不远,困难在于如何获取这些指标并将它们转换为合并表。
我在回答这个问题时使用了 Grafana v8.0.4,我看不到将它集成到当前表格可视化中的方法。我最好的建议是使用HTML 面板并运行您自己的 JavaScript 来显示您想要的内容。