有一台机器(不定期地)发送其状态值0、1、2,我们将其存储在Graphite中。现在状态表示:
请求提取的KPI是经典的:一天或一周中处于状态0或1或2的时间是多少?在重新发明轮子之前,我们正在寻找计算这些PKI的最佳方法,如果在Graphite(或其他可能的时间序列解决方案)中,已经有函数可以对数据点值只是条件的时间进行求和。显然,不存储求和的时间间隔,它是数据点与下一个数据点之间经过的时间。
或者应该对数据进行预处理以计算时间间隔,然后存储三个数据集,例如:status.working,status.stopped,status.alarm,并且对于每个商店,特定“事件”何时开始以及持续了多少时间?
[还有其他KPI,例如一天中的警报数量。连续接收到两个都指示状态为“ 2”的状态数据点实际上是单个警报情况,必须计为1。
因此,有没有最好的方法来存储此类数据而无需对其进行预处理?听起来这是一种常见的模式,但是(对我们感到羞耻?)我们没有很好地探讨这个主题。
感谢。