【问题标题】:How to alert in Seyren with Graphite if transactions in last 60 minutes are less than x?如果过去 60 分钟的交易少于 x,如何使用 Graphite 在 Seyren 中发出警报?
【发布时间】:2014-11-06 09:05:46
【问题描述】:

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

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

我应该使用哪个指标和 Graphite 函数?我尝试使用 summarize(metric, '1h'),但是当 Graphite 开始聚合起始小时的指标时,它会在每小时提醒我一次。

请注意,如果有帮助,Seyren 还允许指定 Graphite 的 fromuntil 参数。

【问题讨论】:

    标签: monitoring graphite statsd seyren


    【解决方案1】:

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

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

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

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

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

    如果这种方法适合你,请告诉我!

    【讨论】:

    • 谢谢!我一直在使用从 -1h 到 [blank] 的积分(transformNull(stats.transactions.count, 0)) 来获得类似的结果。也许我们可以为 Seyren 文档提供一些示例?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2017-05-06
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    相关资源
    最近更新 更多