我有一个关于OpenTSDB下采样的2部分问题。
第一个是我想知道是否有人知道OpenTSDB在计算下采样时是采用包含还是排他的最后一个终点,还是计算两次结束数据点?
例如,如果我的时间间隔是下午12:30至晚上1:30,并且我从下午12:29:44开始每隔5分钟获得一次DP,并且我的下采样间隔是每10分钟一次的总和,系统是否从中获取DP 12:30-12:39并将它们相加,12:40-12:49并将它们相加,或者从12:30-12:40然后从12:40-12:50等取出DP。是的,我知道我的数据已关闭15秒,但我无法控制。
我试图手动计算,但我的数据并没有帮助我。我正在计算的数字并没有加起来,也没有与图表显示的数字相匹配。我无法访问将数字推入OpenTSDB的系统,因此我无法设置虚拟数据进行检查。
第二个问题是下采样如何根据我的时间范围和下采样间隔在图表上绘制其点?我将下采样设置为总共10分钟的块。我将我的范围设定为下午12:30至下午1:30。该图显示了下采样图的第一个点,从下午12:35开始。这符合逻辑。
我将范围更改为下午12:24至下午1:29,预计第一点将于12:30开始,但显示的第一点是下午12:25。
希望有人能为我回答这些问题。与此同时,我将继续尝试在我的系统中查找一些数据,以帮助显示/证明下采样应该如何工作。
提前感谢您的帮助。
答案 0 :(得分:10)
下采样目前的工作方式并不像您期望的那样,虽然这是一个合理且常见的预期,但我们正在考虑在稍后的OpenTSDB版本中对其进行更改。
您假设如果您要求“10分钟总和”,数据点将在每个“圆”(或“对齐”)10分钟块内汇总(例如12:30-12:39然后12:40-12:49在你的例子中),但事实并非如此。会发生什么是代码将从它找到的第一个数据点开始一个10分钟的块。因此,如果第一个是在时间12:29:44,那么代码将汇总所有后续数据点,直到600秒后,意味着直到12:39:44。
在每600秒块内,可能存在不同数量的数据点。某些块可能比其他块具有更多数据点。一些块可能具有不均匀间隔的数据点,例如,也许所有数据点在600s块开始时都在一秒之内。因此,为了确定下采样操作将产生什么时间戳,代码使用块的所有数据点的平均时间戳。
因此,如果所有数据点在整个600s块中均匀分布,则平均时间戳将落在块中间的某个位置。但是,如果您在600s块开始时所有数据点都在一秒之内,则返回的时间戳将通过平均值反映出来。需要明确的是,无论您选择什么样的下采样功能(总和,最小值,最大值,平均值等),代码都会获取时间戳的平均值。
如果您想在不写入生产系统的情况下快速尝试OpenTSDB,请考虑设置单节点OpenTSDB实例。这很容易做到,如getting started guide所示。