在Graphite中存储不断增加的价值

时间:2013-08-05 19:16:04

标签: graphite statsd

我正在监视一个队列,以便在Graphite中跟踪错误消息的数量。错误消息处于“错误”的结束状态状态,因此将计数简单发送到计量器或计数器不会按预期工作。

举例说明:

minute    path                result
---       ----                ------
1         queue.errors 3000   3000 errors (the baseline)
2         queue.errors 3002   2 errors 
3         queue.errors 3005   3 errors
4         queue.errors 3010   5 errors

有没有办法通过statsd或graphite来处理这种指标?错误的队列计数将永远增加,但有意义的值实际上只是自上一个值以来的更改。

我读过关于statsd的Gauge Delta,它看起来与我需要的相反:

statsd.gauge('foo', 70)  # Set the 'foo' gauge to 70.
statsd.gauge('foo', 1, delta=True)  # Set 'foo' to 71.

但是,我真正需要的是:

statsd.gauge('foo', 70)  # Set the 'foo' gauge to 70.
statsd.gauge('foo', 71, ?????=True)  # Set 'foo' to 1.

2 个答案:

答案 0 :(得分:2)

有趣的是,你应该问,有一个关于能够跟踪statsd中的绝对值并得到衍生物的能力。见https://github.com/etsy/statsd/issues/324

它的要点是statsd不支持定义为不断增加的自然整数的计数器。较老的工具,如rrdtool,但它们提供的灵活性几乎与statsd不同。

答案 1 :(得分:2)

如果您想从计价器或计数器值中获取更改率,请将其包含在derivative()nonNegativeDerivate()函数中。