YawnDb: Time Series Database Written in Erlang
kukuruku.co
kukuruku.co
Also, you mention difficulties with changing RRD settings, like time intervals. How does this handle similar config migration?
I've recently been involved in RRD replacement as well for the same reasons you cite in the article. Our technology choice was OpenTSDB. How does YAWNDB stack up? (Granted, OpenTSDB is in another category of deployment complexity.)
It's also worth noting that there were no OpenTSDB or InfluxDB on the horizon when YAWNDB was hacked together. They are way more powerful and flexible than YAWNDB, but also more complex.
How are you writing the data to disk? I don't see exactly what you're doing in the article. Are you just writing the data to files directly or is there some sort of DB in there? From what I've seen, the storage is the most difficult part.
(And thanks to lambdadmitry for the additional insight.)
But like all the other possible contenders I've found, so far. I am unable to compile this project out of the box. Hopefully the maintainers of this one will be commenting on my github issues.
At this point it I'm getting the feeling I will have to my own half-baked tsdb to answer only my immediate problem, instead of finding the magic do-it-all well written, documented and extensible tsdb in Erlang. (I'm 2 weeks into Erlang, so it will probably be very terrible).
I've tried (and opened various issues on): pulsedb: https://github.com/pulsedb/pulsedb litetsdb: https://github.com/dreyk/litetsdb etsdb: https://github.com/philipcristiano/etsdb
This is my main issue https://github.com/band115/ecirca/issues/38
I can't find much docs on how to use rebar's {pre_hooks, [{compile, ...
$ERL_CFLAGS is set to (note the extra quotes).
-I"/usr/local/Cellar/erlang/17.3.4/lib/erlang/lib/erl_interface-3.7.19/include" -I"/usr/local/Cellar/erlang/17.3.4/lib/erlang/erts-6.2.1/include"
I don't know if this issue befalls on the erlang distribution (homebrew) on my system, rebar or ecirca ..
I like the architecture diagram and explanation how everything is put together at a higher level.
2. No canonical way of running the thing as a daemon. How am I supposed to make a package out of it?
3. No "reload config" command, at least I don't see it. Erlang supports such thing with application's environment.