3 ms·
Do you think it's good enough to replace Graphite's Carbon at this point? Not as a drop in to graphite, but as a backend to a custom metrics system? I know you
by tinco 12y ago
Do you think it's good enough to replace Graphite's Carbon at this point? Not as a drop in to graphite, but as a backend to a custom metrics system?
I know your project is young and probably has not seen much battle testing, but your blog post indicates to me that you've put a lot of thought into it being robust.
We are using Carbon for our metrics solution at the moment, and I've read its source and it's not something I'd give a big 'ready for production' stamp even though I know many shops are using it in production.
Perhaps, if you feel like it and will entertain my cheap grab for information, could you give super small explanation of the performance differences between your partition style format and for example Whisper (like RRD, it's what Carbon uses) and InfluxDB? As far as I understand Whisper is simply a cyclic buffer of fixed time distance points in a file per series. And InfluxDB is simply a key value store I think.
Your solution lies somewhere in between those right?
- misframer 12y agoInfluxDB uses Bolt in the latest version. Yes, it's a key-value store. See my other comment below about why I'm not using Bolt. I'm not too familiar with Whisper, but it since it uses fixed size storage, it's not for my use case. I have large amounts of time series metrics (>10,000), and many of them end up being sparse with only a few irregular points. Partitioning by time instead of by metric means I don't have to deal with thousands of files, especially those that have some large, fixed size. I'm very focused on making this "production ready." It's currently used for another project of mine[0], so I haven't been looking at integrating it into other systems. [0] http://preetamjinka.github.io/cistern/ http://preetamjinka.github.io/cistern/
- SEJeff 12y agoCarbon uses a custom format called whisper, which was written by Chris Davis because you can't backfill past data into rrd. FYI graphite supports pluggable storage backends such as influxdb. Personally, I'm pretty invested in Cyanite which is a small shim ontop of Cassandra which speaks the carbon line protocol. Once this is semi prod worthy, I'd be happy to see if we can't write one of the pluggable backends to grapbite for it, which also works with graphite-api if you want a slightly easier to setup flask based version. Disclaimer: I'm a graphite maintainer
- vidarh 12y agoCarbon/Whisper is awful. The amount of small writes it does is murder regardless of your disk subsystem (even with SSD's - your best case is you waste lots of time on context switches instead of waiting on disks, but you're still wasting lots of resources).