我使用Graphite + Statsd(使用Python客户端)从webapp收集自定义指标:成功交易的计数器。我们假设计数器为stats.transactions.count
,它还具有stats.transactions.rate
可用的费率/每秒/秒指标。
我还将Seyren设置为监控+警报系统,并成功从Graphite中提取指标。现在如果过去60分钟内成功交易的数量少于某个最低值,我想在Seyren设置提醒。
我应该使用哪种指标和Graphite功能?我尝试使用summarize(metric, '1h')
,但是当Graphite开始汇总开始时间的指标时,这会给我一个提醒。
请注意,Seyren还允许指定Graphite的from
和until
参数,如果这有帮助的话。
答案 0 :(得分:15)
我提供了Seyren代码来支持from
/ until
,以便处理这种情况。
如果最后一小时的计数低于50,则以下配置应发出警告,如果低于25则出现错误。
请注意,这将每分钟运行一次,所以"最后一小时"是一个滑动比例。另请注意,汇总函数的第三个布尔参数true
告诉它将其1h桶与From
对齐,这意味着从1小时前开始获得一个完整的1小时桶,而不是意外获取半桶。 (较新版本的Graphite可能会自动执行此操作。)
您的里程可能会有所不同。当计数器在服务器重启时设置回0时,我遇到了这种方法的问题。但在我的情况下,我使用了dropwizard指标+石墨,而不是statsd + graphite,所以你可能没有那个问题。
如果这种方法适合你,请告诉我!