2

I'm setting up a metrics infrastructure and I really like the powerful Graphite api. However, Whisper, the storage backend, does not currently work well for us due to it's disk pre-allocation feature. We run a cloud-based architecture where our apps change host/ip a lot, and since we want the host as part of each metric the Whisper db grows quickly.

How should I setup Graphite/Whisper to handle this situation?

I've also tried to find alternatives to Whisper, but nothing stands out. There are a lot of discussions and half-done solutions for other storage engines, but nothing that seems mature and provides a solid Graphite integration.

Jonas Bergström
  • 741
  • 6
  • 15
  • Axibase Time Series Database can be used as a drop-in replacement for Whisper in the Graphite stack. It should work well for your use case since ATSD can extract tokens from graphite metric names into entity names and series tags: http://axibase.com/products/axibase-time-series-database/writing-data/graphite/ Disclosure: I work for Axibase. – Sergei Rodionov Jan 16 '16 at 12:57
  • InfluxDB can receive data in [Graphite protocol](https://github.com/influxdata/influxdb/blob/master/services/graphite/README.md). InfluxDB does not need to pre-allocate storage space and is built to handle ephemeral series well. – beckettsean Jan 19 '16 at 22:04

1 Answers1

2

Turns it can't be done with Whisper. I ended up using Cyanite as replacement for Carbon/Whisper, while still keeping Graphite (Graphite-API actually..).

Jonas Bergström
  • 741
  • 6
  • 15
  • I also tested KairosDB, which works great and also has great performance/scalability characteristics in the way it uses Cassandra. So if you're ok with moving from Graphite's metric model (with dynamic metric values as part of the metric name) to a model with static metric names and dynamic parts as tags I really recommend KairosDB! – Jonas Bergström Feb 13 '16 at 08:12