计算速率函数中的黎曼事件

时间:2017-03-16 06:25:51

标签: clojure riemann

您好我有一个用例,我必须将我的应用程序响应时间聚合为10 (rate 10的时间间隔,然后计算平均值。真正的问题是没有办法计算时间间隔为10的黎曼率函数中的事件数。除了使用(fixed-time-window之外,还有什么方法可以做到这一点。

1 个答案:

答案 0 :(得分:2)

Rate un 可能是您想要的功能。如果我理解你,你希望你的代码:

  1. 收集十分钟内发生的所有事件
  2. 一旦事件全部可用,计算:metric key
  3. 的平均值
  4. 使用服务名称发出一个事件,并将该平均值作为其度量值。
  5. 如果我不理解那么这个答案就不合适了,所以请告诉我。

    速率采用报告间隔和任意数量的流来转发平均速率。评估的第一个参数仅确定报告当前费率的频率,并且对其汇总的时间段没有影响。内置的rate函数只有一个可用的灌溉间隔,它始终以“每秒度量”报告。因此它累积事件一秒钟,并在第二秒内对mertic求平均值,并且它正确地处理边缘情况,例如报告间隔,没有事件作为零度量,合理的次数,但不是永远。您应该使用适合的速率,而不是在需要明确控制聚合期的地方使用它。

    我经常需要每分钟事件,所以我将报告周期设置为60秒,然后将输出乘以60,然后再转发它。这节省了我处理自定义聚合函数中的所有边缘情况。请记住,这在舍入中会失去一些准确性。

          (rate 60
                (adjust [:metric * 60]
                        index datadog))
    

    您可能还想做类似的事情:

    (fixed-time-window 10
       (smap folds/median
           ... your stuff ...