Ich habe folgende Aggregationsregel:Carbon-Aggregator Wieder Aggregieren metrisch
abc.prod.ALL.<service>.<metric>.count (60) = sum abc.local.*.<service>.<<metric>>.count
Da Metriken wie:
abc.prod.host1.aservice.ametric.count
abc.prod.host2.aservice.ametric.count
ich sie aggregiert werden erwartet zu
abc.prod.ALL.aservice.ametric.count
Aber diese Metrik wird niemals erstellt. In Aggregator logs, ich sehe
für neue Metrik-Puffer Allokierung abc.prod.ALL.aservice.ametric.count
aber es wird nicht erstellt. Wenn ich eine Schicht auf die erzeugte Metrik wie hinzufügen:
abc.prod.extralayer.ALL.<service>.<metric>.count (60) = sum abc.local.*.<service>.<<metric>>.count
dann scheinen wir wie eine rekursive Explosion erstellt Metriken zu erhalten:
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
Was mich dazu gebracht zu glauben, dass die Metrik erzeugte dann wieder aggregiert ...
ich eine Logging-Linie zu AggregationProcessor.process
hinzugefügt:
else:
log.clients("Found aggregate " + aggregate_metric + " for " + metric)
aggregate_metrics.add(aggregate_metric)
Und dann versuchte mit meiner ursprünglichen, gewünschten Regel .. und ich begann schließlich zu sehen, loglines wie:
Gefunden Aggregat abc.prod.ALL.aservice.ametric.count für abc.prod.ALL. aservice.ametric.count
Es passte sich an, als wäre es eine neue eingehende Metrik ... Warum wird es in den Aggregator zurückgespeist?