嗨,我有一个用例,我必须以 10 的时间间隔聚合我的应用程序响应时间(rate 10
,然后计算平均值。真正的问题是没有办法计算黎曼率函数中事件的数量,时间间隔为 10。除了使用(fixed-time-window
.
问问题
138 次
1 回答
2
速率不太可能是您想要的功能。如果我理解它,您希望您的代码:
- 收集十分钟内发生的所有事件
- 一旦事件全部可用,计算 :metric 键的平均值
- 使用服务名称发出一个事件,并将平均值作为它的度量值。
如果我不理解,那么这个答案将不适合,所以请告诉我。
速率采用报告间隔和任意数量的流来转发平均速率。rate 的第一个参数仅确定它报告当前汇率的频率,并且对汇总的时间段没有影响。内置rate
函数只有一个可用的聚合间隔,它总是以“每秒公制”报告。因此它会累积一秒钟的事件,并在那一秒内平均 mertic,并且它可以正确处理边缘情况,例如将没有事件的报告间隔作为零度量合理次数,尽管不是永远。您应该在适合的地方使用 rate,而不是在需要明确控制聚合期间的地方使用它。
我经常想要每分钟的事件,所以我将报告周期设置为 60 秒,然后在转发之前将输出乘以 60。这让我无需处理自定义聚合函数中的所有边缘情况。请记住,这会降低舍入的一些准确性。
(rate 60
(adjust [:metric * 60]
index datadog))
您可能还想执行以下操作:
(fixed-time-window 10
(smap folds/median
... your stuff ...
于 2017-03-16T23:17:59.047 回答