2011-08-17 100 views
14

每次用户连接到我的网站时,我都会发送一条消息。Graphite中积累的价值

使用此格式:

"user_login 1 13xxxxxxx" (key value timestamp) 

我的问题是石墨给我一个图表,只与值“1”,每分钟的线。 我每分钟发送一个随机数字的消息(在6到60之间),但我认为Graphite限制为第一个(或最后一个?)消息,以显示一个值。

怎么做才能让每个消息的总和,每分钟?

回答

3

使用sumSeries 目标= sumSeries(graphite.counterName)或者,如果你想求和超过一分钟总结功能

7

您可能会感兴趣的石墨服务器上运行statsd或statsite。该软件将按照可配置的时间段汇总所有统计数据,并将结果写入石墨。

看看github.com/etsy/statsd(在node.js中)和github.com/kiip/statsite(蟒蛇克隆)。 Etsy的statsd包含一些关于如何使用它的代码示例。

+0

这是我落得这样做。有一种恼人的服务正在运行,但这是一项小服务。 –

+1

我实际上使用了statsite的C(更新版本):https://github.com/armon/statsite。唯一令人讨厌的是我必须改变默认的“sink”文件来删除“statsite.counts”。在默认情况下发送它之前,statsite预先设置的前缀。 –

1

使用cumulative function你的系列。

默认情况下,当一个图形被绘制,并且该图的中 像素宽度小于要被绘制的数据点的数量, 石墨平均在每个象素的值。累积()函数 将合并函数更改为平均值。

3

杰瑞是正确的,碳 - 聚合器为这个专门编写。

确保在聚集rules.conf使用和功能,比如这个:

bpu.<cluster>.<account>.<metric>_sum (1) = sum bpu.<cluster>.<account>.<metric>_sum 
1

默认情况下,石墨仅存储最后值在最小保留粒度(平均值)为任何传入度量发送。如果你想要聚合,常用的解决方案是使用statsd。但是,您也可以使用Carbon-aggregator。

user_login (10) = sum user_login$ 

注:这是假定您的最低保留期限仍为10秒(默认值)只是确保你发送你的指标到聚合线端口,然后用这样的规则更新聚集rules.conf可以确认,通过在存储schemas.conf

寻找更详细的解释,请参见:Why use statsd when graphite's Carbon aggregator can do the same job?