我正在为一个VictoriaMetrics应用程序评估IoT,在这个应用程序中,由于硬件或通信问题,有时会出现一系列的空白。在某些时间序列报告的情况下,对缺失的时间间隔进行插值是很有帮助的。我看到,MetricsQL (扩展了PromQL)有一个keep_last_value()函数,它将保留最后一个观测值,直到新的值出现(这对我们有帮助),但在某些情况下,在间隙前后的值之间进行线性插值是对缺失部分的更真实的估计。在PromQL或MetricsQL中是否有一个函数可以在一个系列中对丢失的数据进行线性插值,或者是否可以构造一个更复杂的查询来实现这一点?
澄清了所需的插值
我想要的是在间隙前后的点之间做一个简单的插值;我相信,这就是TimescaleDB的内插()函数所做的。换句话说,如果我的时间序列是:
(1:00, 2)
(2:00, 4)
(3:00, NaN)
(4:00, 5)
(5:00, 1)我希望插值的3:00值是4.5,在前后点之间的一半。我不希望它是6(这是我从缺失点之前的点推断得到的,忽略后面的点),我也不想得到任何值,如果我对整个系列做线性回归,并在3:00 (大概3点,或接近它的东西)内插。
当然,这是一个简单的例子,它也有可能,差距可以持续一个以上的步骤。但在这种情况下,我仍然希望插值仅仅是基于之前和之后的差距,忽略其余的系列。
https://stackoverflow.com/questions/62565021
复制相似问题