首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件频率峰值的实时检测

事件频率峰值的实时检测
EN

Stack Overflow用户
提问于 2011-08-31 19:26:50
回答 3查看 381关注 0票数 5

在web应用程序中,每次发生事件时,我都会得到一个触发器。我想检测出“暴力”频率峰值,这很可能转化为异常行为。

我想出了两种实现这一目标的天真方法:

  • 固定了门槛--“如果一分钟内发生超过500个事件,那么某事可能是错误的”。这种方法不能处理平滑的门限破坏或流量的稳定增长,除非应用程序能够调整阈值periodically.
  • Window-related启发式-将窗口划分为N相等(?)间隔时间。而N>0则计算发生在now-(N*interval_length) now中的事件的频率。把它保存在一个列表中。减少N,1,重复。检测列表异常值。如果有一个异常值大于现在窗口长度的平均频率,那么现在,某事物可能是错的。“

我想知道是否有一个通用/标准的解决方案来解决这个问题,或者您是否能想到更有效或更优雅的解决方案。

提前谢谢你。

编辑-另一个建议

我的一个朋友建议用霍尔特-温特斯预测来检测异常行为。您可以在下面的链接中找到有关此方法的更多信息:

http://www.hpl.hp.com/news/events/csc/2005/jake_slides.pdf

http://www.usenix.org/events/lisa00/full_papers/brutlag/brutlag_html/

EN

回答 3

Stack Overflow用户

发布于 2011-09-01 20:34:25

我不是专家。我要做的是:

假设您只保留最后一个n结果,而x_n是最后一个示例(与前一个事件的时间差)。

代码语言:javascript
复制
α_n x_n + α_{n-1}/2 x_{n-1} + ... + α_{1} 2^{-n} x_1 = T

如果差异T - T_{previous} (其中T_{previous}T的前一个值)超过了一个限制,那么就做一些事情。

如果您的x_i值是二进制的,您可以很好地使用shiftor操作,如果速度是问题的话。

票数 1
EN

Stack Overflow用户

发布于 2011-09-02 06:05:02

只需在最后X分钟的值上得到一个简单的平均值(保留这些值)。

将每个新传入值与平均值进行比较:

如果

  • 的差值大于Y%,则它是一个异常值,警告。
  • ,如果小于,则将其添加到平均值中,并删除第一个fifo样式。

如果你认为它可以被“稳步增长的流量”所欺骗,那就让X足够大。

票数 0
EN

Stack Overflow用户

发布于 2011-12-11 13:20:24

您可以计算指数加权浮法均值估计,并将其与以前的值进行比较。突然增加可能是您试图检测到的,但是结合了一定的最低阈值(例如0到1并不显着)。

但是假设当前的浮动意味着从100跳到200,这很可能是你想要检测的那种事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7262325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档