8

我正在使用 Graphite+Statsd(带有 Python 客户端)从 webapp 收集自定义指标:成功交易的计数器。假设计数器是stats.transactions.count,它也有一个可用的速率/每秒指标stats.transactions.rate

我还将Seyren设置为监控+警报系统,并成功从 Graphite 中提取指标。现在我想在过去 60 分钟内成功交易的数量小于某个最小值时在 Seyren 中设置警报

我应该使用哪个指标和 Graphite 函数?我尝试过,summarize(metric, '1h')但是当 Graphite 开始聚合起始小时的指标时,这会给我一个警报。

请注意,如果这有帮助,Seyren 还允许指定 Graphitefromuntil参数。

4

1 回答 1

15

我贡献了 Seyren 代码来支持from/until以处理这种确切的情况。

如果最后一小时的计数低于 50,则以下配置应引发警告,如果低于 25,则应引发错误。

  • 目标: summary(nonNegativeDerivative(stats.transactions.count),"1h","sum",true)
  • 从: -1h
  • 收件人: [空白]
  • 警告: 50(最低软)
  • 错误: 25(硬最小值)

请注意,这将每分钟运行一次,因此“最后一小时”是一个滑动比例。另请注意,summarytrue函数的第三个布尔参数告诉它将其 1h 存储桶与 对齐From,这意味着您从 1 小时前开始获得一个完整的 1 小时存储桶,而不是意外获得半个存储桶。(较新版本的 Graphite 可能会自动执行此操作。)

你的旅费可能会改变。当计数器在服务器重新启动时设置回 0 时,我遇到了这种方法的问题。但就我而言,我使用的是 dropwizard 指标 + 石墨,而不是 statsd + 石墨,所以你可能没有这个问题。

请让我知道这种方法是否适合您!

于 2014-11-14T02:22:10.857 回答