1

我正在发送一个可以随时重置的计数器。我每 5 秒发送一次计数器,但我不会每 5 秒重置一次,只有在应用程序重新启动时才会重置,这是定期的。

我需要能够知道我的服务器上周获得了多少印象,但我不能做 sum() 因为 bosun 只会添加 10、12、15、25、0、1、5、10... . 所以,它确实考虑到了费率计算,但没有考虑到求和或任何其他事情。

如果我每次发送它都重新启动计数器,bosun 会更好地处理它吗?似乎更容易,但是 bosun/opentsdb 上的文档指出这不是必需的,也不应该这样做。

4

1 回答 1

3

当您将计数器用作速率而不是原始仪表时,OpenTSDB 应该自动处理计数器的总和/平均聚合。它需要两个样本点并计算差异,从而为您提供两个样本点之间的总“印象”。请注意,它也可能将值更改为“每秒”,因为这是 OpenTSDB 的标准。

每当第二个值低于第一个值时,OpenTSDB 将忽略该数据点并等待发送下一个数据点,然后再继续进行速率计算。出于这个原因,如果可能,您应该尽量减少计数器重置或溢出(不到一小时的任何事情都可能导致明显的伪影)。

实际上,我们在 tsdbrelay 上使用了一个特殊的/api/count 路由,将来自多个主机的增量计数聚合到一个更“稳定”的计数器中,用于我们 Web 层上的某些指标,因为它经常构建并且计数器重置影响了我们的警报和监控仪表板. 如果您对此感兴趣,请前往Bosun Slack 房间 了解更多详情。

我强烈建议您观看Bosun 基础播放列表,其中更详细地描述了 Gauge vs Counter 的使用。

于 2016-01-28T19:32:02.400 回答