我正在使用 Graphite+Statsd(带有 Python 客户端)从 Web 应用程序收集自定义指标:成功交易的计数器。假设计数器是stats.transactions.count
,还有一个每秒速率指标stats.transactions.rate
.
我也设置过Seyren https://github.com/scobal/seyren作为一个监控+警报系统,并成功从 Graphite 中提取指标。现在如果过去 60 分钟内成功交易的数量低于某个最小值,我想在 Seyren 中设置警报.
我应该使用哪种指标和 Graphite 函数?我尝试过summarize(metric, '1h')
但这会在 Graphite 开始聚合起始小时的指标时每小时向我发出警报。
请注意,Seyren 还允许指定 Graphitefrom
and until
参数,如果有帮助的话。
我贡献了 Seyren 代码来支持from
/until
为了处理这种确切的情况。
如果最后一小时的计数低于 50,以下配置应发出警告;如果低于 25,则应发出错误。
-
Target:总结(nonNegativeDerivative(stats.transactions.count),“1h”,“sum”,true)
-
From: -1h
-
To: [blank]
-
Warn:50(软最小值)
-
Error:25(最低硬性要求)
请注意,这将每分钟运行一次,因此“最后一小时”是一个滑动比例。另请注意,第三个布尔参数true
对于 summarise 函数来说,它告诉它将 1h 存储桶与From
,这意味着您从 1 小时前开始获得完整的 1 小时桶,而不是意外获得半桶。 (较新版本的 Graphite 可能会自动执行此操作。)
你的旅费可能会改变。当服务器重新启动时计数器设置回 0 时,我遇到了这种方法的问题。但就我而言,我使用的是 dropwizard 指标 + 石墨,而不是 statsd + 石墨,所以你可能不会遇到这个问题。
请告诉我这种方法是否适合您!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)