Graphite - 与DivideSeries一起使用多个系列

时间:2012-05-14 16:58:50

标签: python graphite click-through

我正在尝试使用Graphite为我的所有资源计算点击率,因此我尝试录制我的数据:

  • ctr.resource_id.clicks
  • ctr.resource_id.reach

首先,我提出了我的问题:

&target= averageSeries(divideSeries(ctr.176983011340976128.clicks,ctr.176983011340976128.reach),divideSeries(ctr.190348137012011008.clicks,ctr.190348137012011008.reach))

我的问题是我不想将所有资源ID发送到石墨,所以我尝试了:

&target= averageSeries(divideSeries(ctr.*.clicks,ctr.*.reach))

但是,因为documentation说“ ValueError:divideSeries第二个参数必须正好引用1个系列”。

我尝试了另一种架构:

  • ctr.clicks.resource_id
  • ctr.reach.resource_id

但同样的问题......

我是Graphite的新手,所以如果有人有解决方案,那就太棒了!

编辑:

刚看到函数groupByNode,尝试使用它......

1 个答案:

答案 0 :(得分:1)

听起来您需要事先将数据汇总到一个系列中,以便将其传递给divideSeries。

配置Carbon文档中的Aggregator-rules.conf参考:http://graphite.readthedocs.org/en/latest/config-carbon.html

所以你需要2个这样的规则来总结每分钟的点击数据: ctr.resource_all.clicks(60)= sum ctr。*。点击 ctr.resource_all.reach(60)= sum ctr。*。reach

您还必须运行carbon-aggregator.py守护程序 /opt/graphite/bin/carbon-aggregator.py start

聚合器守护程序的默认端口是2023,因此您应该发送流量而不是您使用的2003端口。