我有以下聚合规则:
abc.prod.ALL.<service>.<metric>.count (60) = sum abc.local.*.<service>.<<metric>>.count
给出以下指标:
abc.prod.host1.aservice.ametric.count
abc.prod.host2.aservice.ametric.count
我希望将它们汇总到
abc.prod.ALL.aservice.ametric.count
但该指标从未创建过。在聚合器日志中,我看到
为abc.prod.ALL.aservice.ametric.count分配新的指标缓冲区
但它没有创建。如果我在生成的指标中添加一个图层,如:
abc.prod.extralayer.ALL.<service>.<metric>.count (60) = sum abc.local.*.<service>.<<metric>>.count
然后我们似乎得到了创建的指标的递归爆炸,如:
abc.prod.extralayer.ALL.aservice.ametric.count
abc.prod.extralayer.ALL.ALL.aservice.ametric.count
abc.prod.extralayer.ALL.ALL.ALL.aservice.ametric.count
abc.prod.extralayer.ALL.ALL.ALL.ALL.aservice.ametric.count
这使我相信生成的指标会再次汇总...
我在AggregationProcessor.process
添加了一条记录行:
else:
log.clients("Found aggregate " + aggregate_metric + " for " + metric)
aggregate_metrics.add(aggregate_metric)
然后尝试了我原来想要的规则..我最终开始看到,记录如下:
找到abc.prod.ALL.aservice.ametric.count的聚合abc.prod.ALL.aservice.ametric.count
它自己就好像是一个新的传入指标...为什么它被反馈到聚合器?
答案 0 :(得分:0)
这似乎是一个错误。它不是旧版本,而是在我的问题时掌握。
如果您看到此行为,请按照GitHub上的问题进行操作: https://github.com/graphite-project/carbon/issues/560 https://github.com/graphite-project/carbon/issues/455
继续提出这个问题没有意义。
注意:我使用的是旧版本,0.9.15但没有看到问题 - 所以我建议这样做,直到确认无法在master中解决。