Aggregation rule and non aggregated data rules
Hi,
I'm testing the aggregator and something is unexpected.
Here is my aggregation rule:
<env>.<
Now I've added this line in carbon/
def sendDatapoint(self, metric, datapoint):
for destination in self.router.
-> log.clients(
self.
and carbon/
-> log.aggregator(
I'm sending these 2 every 5 secs (in python):
"test.bash.stats", random.
"TEST.boxA.
And here are the logs when starting my aggregator in DEBUG:
-------
13/04/2016 15:11:36 :: [console] Log opened.
13/04/2016 15:11:36 :: [console] twistd 16.0.0 (/usr/bin/python 2.7.6) starting up.
13/04/2016 15:11:36 :: [console] reactor class: twisted.
13/04/2016 15:11:36 :: [console] CarbonReceiverF
13/04/2016 15:11:36 :: [console] Starting factory <carbon.
13/04/2016 15:11:36 :: [console] CarbonReceiverF
13/04/2016 15:11:36 :: [console] Starting factory <carbon.
13/04/2016 15:11:36 :: [console] Starting factory CarbonClientFac
13/04/2016 15:11:36 :: [clients] CarbonClientFac
13/04/2016 15:11:36 :: [clients] CarbonClientPro
13/04/2016 15:12:23 :: [listener] MetricPickleRec
13/04/2016 15:12:23 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:23 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:23 :: [aggregator] Allocating new metric buffer for LIVE.boxA.
13/04/2016 15:12:23 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:28 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:28 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:28 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:33 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:33 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:33 :: [console] Couldn't match metric LIVE.boxA.
13/04/2016 15:12:33 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:33 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:12:33 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:38 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:38 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:38 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:43 :: [console] Couldn't match metric LIVE.boxA.
13/04/2016 15:12:43 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:43 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:12:43 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:43 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:43 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:48 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:48 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:48 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:53 :: [console] Couldn't match metric LIVE.boxA.
13/04/2016 15:12:53 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:53 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:12:53 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:53 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:53 :: [clients] Sending metric to destination LIVE.boxA.
13/04/2016 15:12:58 :: [console] Couldn't match metric test.bash.stats with any aggregation rule. Passing on un-aggregated.
13/04/2016 15:12:58 :: [clients] Sending metric to destination test.bash.stats
13/04/2016 15:12:58 :: [clients] Sending metric to destination LIVE.boxA.
-------
1. raw data is being passed over. Isn't the aggregator supposed to retain these values and pass them?
2. This line shows that the output of an aggregation is being re-aggregated:
13/04/2016 15:12:53 :: [console] Couldn't match metric LIVE.boxA.
So I want to send the least amount of data possible, so just the aggregated output calculated every X seconds. I've seen the config item: FORWARD_ALL = True
But if I switch it to False, here are the logs:
-------
13/04/2016 15:26:46 :: [console] twistd 16.0.0 (/usr/bin/python 2.7.6) starting up.
13/04/2016 15:26:46 :: [console] reactor class: twisted.
13/04/2016 15:26:46 :: [console] CarbonReceiverF
13/04/2016 15:26:46 :: [console] Starting factory <carbon.
13/04/2016 15:26:46 :: [console] CarbonReceiverF
13/04/2016 15:26:46 :: [console] Starting factory <carbon.
13/04/2016 15:26:46 :: [console] Starting factory CarbonClientFac
13/04/2016 15:26:46 :: [clients] CarbonClientFac
13/04/2016 15:26:46 :: [clients] CarbonClientPro
13/04/2016 15:26:52 :: [listener] MetricPickleRec
13/04/2016 15:26:52 :: [aggregator] Allocating new metric buffer for LIVE.boxA.
13/04/2016 15:27:02 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:27:12 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:27:22 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:27:32 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:27:42 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:27:52 :: [aggregator] Metric generated LIVE.boxA.
13/04/2016 15:28:02 :: [aggregator] Metric generated LIVE.boxA.
-------
As you can see nothing is being sent. Not the test.bash.stats, nor .raw, nor .sum10
Is there something I am doing wrong or I didn't understand the purpose of the aggregator?
Regards
Francois
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Graphite Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Regnoult
- Solved:
- Last query:
- Last reply: