您好我有一个用例,我必须将我的应用程序响应时间聚合为10 (rate 10
的时间间隔,然后计算平均值。真正的问题是没有办法计算时间间隔为10的黎曼率函数中的事件数。除了使用(fixed-time-window
之外,还有什么方法可以做到这一点。
答案 0 :(得分:2)
Rate un 可能是您想要的功能。如果我理解你,你希望你的代码:
如果我不理解那么这个答案就不合适了,所以请告诉我。
速率采用报告间隔和任意数量的流来转发平均速率。评估的第一个参数仅确定报告当前费率的频率,并且对其汇总的时间段没有影响。内置的rate
函数只有一个可用的灌溉间隔,它始终以“每秒度量”报告。因此它累积事件一秒钟,并在第二秒内对mertic求平均值,并且它正确地处理边缘情况,例如报告间隔,没有事件作为零度量,合理的次数,但不是永远。您应该使用适合的速率,而不是在需要明确控制聚合期的地方使用它。
我经常需要每分钟事件,所以我将报告周期设置为60秒,然后将输出乘以60,然后再转发它。这节省了我处理自定义聚合函数中的所有边缘情况。请记住,这在舍入中会失去一些准确性。
(rate 60
(adjust [:metric * 60]
index datadog))
您可能还想做类似的事情:
(fixed-time-window 10
(smap folds/median
... your stuff ...