go-graphite / go-carbon

Golang implementation of Graphite/Carbon server with classic architecture: Agent -> Cache -> Persister
MIT License
803 stars 123 forks source link

Support aggregation-rules.conf #42

Closed hnakamur closed 7 years ago

hnakamur commented 8 years ago

First of all, thanks for sharing a nice software!

I would like to sum up multiple metrics (the same metric from multiple servers) and save to another metric. I would like to keep the original metrics from multiple servers and the sum alongside them. I read the document of the original carbon and found it is supported in aggregation-rules.conf.

So I wish a support of aggregation-rules.conf in go-carbon too! If you are busy, I will try to write a pull request for that.

lomik commented 8 years ago

Hi,

Try one of the external aggregator: https://github.com/grobian/carbon-c-relay https://github.com/github/brubeck https://github.com/etsy/statsd https://github.com/bitly/statsdaemon

I do not have plan to realize aggregation inside carbon.

hnakamur commented 8 years ago

@lomik Thanks for your suggestion. I will look into those aggregators.

lomik commented 8 years ago

I forgot about https://github.com/armon/statsite

lomik commented 7 years ago

Not planned. Use external aggregator

superopsdev commented 5 years ago

how to solve this problem,at last

Civil commented 5 years ago

@superman1qaz Use carbon-c-relay, carbon-relay-ng or statsd (or anything else that can have graphtie line protocol as input and graphite line protocol as output)

As an alternative you can do aggregation on a render side. You send all data as-is to the go-carbon and apply aggregation functions when querying them on graphite-web/graphite-api/carbonapi side.