2/11 I want an rrdtool-like program that can store/retrieve/graph
arbitrary data, but I don't want it to drop/smooth out data over
time like rrdtool does. The amount of data is relatively small
and I want exact data points stored forever. Is there something
like that out there? I've tried google and freshmeat but I'm not
finding anything like that. Thanks.
\_ Why not use gnuplot to plot and roll your own script to store
and retrieve data?
\_ Roll my own would be reading/writing to mysql. I can do that
but I was hoping there was an rrdtool-like program out there
that doesn't smooth out data over time. If I didn't have the
data retention requirement I'd use rrdtool+friends.
\_ have you considered looking into the code for rrdtool and
hacking in/out the featuers you want? it is basically just
wrappers to gnuplot and such.
\_ I thought about it. The problem is how RRDs work. I don't
want my data to ever get dropped or blended into other
data. I think it would be easier to just use mysql than
rewrite rrdtool to do something it was designed *not* to
do. If no one knows of anything, that's cool. Thanks.
\_ Can't you just tell rrdtool to never compress your data?
\_ I don't think so. RRD = round robin database. Upon creation it
creates a file large enough to store X amount of data where X is
defined at *creation*. I suppose I could keep tweaking/growing
the .rrd files as they near full but that's really kludgey. If
there is some way to get rrdtool to do what I want without hacks
I don't see it documented.
\_ Why not create them the proper size to begin with?
\_ 1) disk space, 2) if I'm going to throw that much disk at
my stats, I might as well put them in mysql where I can
more easily access them than "rddtool fetch".
\_ Sort of my point. You can't get around the disk
space problem if you want to store your data,
however you access it. It sounds like your solution
is exactly what you wanted. What else did you want?!
\_ I didn't want to have to double store the data in
mysql *and* rrd to do graphing and other analysis.
Now I have to keep two data stores in sync and
eventually the rrd is going to fill and drop data
unless I grow it. I really wanted the rrd graphs
talking directly to mysql. If I had more time I
would've rewritten the graphing code to talk to
mysql instead of rrd. That's what I *really* wanted.
But this is ok. Just sharing my solution for those
who might care.
\_ I'm not with you here. If you use rrd then
what do you need mysql for and vice-versa?
You only need one backend to go with your
graphing frontend. If you are worried about
smoothing use mysql and forget about rrd.
Disk space is a red herring, because you face
that either way.
Just use rrd and size your data store
appropriately. You will face that problem no
matter how you store it, so what does mysql
buy you at that point? You don't need both.
You just need a backend and a graphing frontend.
\_ I have a few reqs: complete project asap, not
smooth data, graph data. Not smooth data
reqs that I use mysql. Graphing data is
easiest with various rrdtools I already have
in place. Time limitation reqs that I do
the easiest/fastest thing. Disk space and
maintenance are issues but secondary. I have
more disk space on the mysql server than I do
on the graphing server, for example. I also
don't want to grow rrd files later when the
current ones run out of space. I also want to
have data in an easily accessed format like
mysql that others can deal with without needing
a shell on the rrdtool server. My solution was
to limit data to one year for graphs, store in
mysql for the long term, use rrdtool graphing
programs. If you have a better solution I'm
all ears.
What I ended up doing is both. I store data in mysql from
various sources. Then I fork a copy of the data to
rrdtool for graphing purposes where it's ok if I lose some
long term data integrity. The rrdtool files are
relatively small since I created files good enough for a
few weeks without data smush.
I get my graphs, I get long term mysql store/retrieve with
no data smoothing. It isn't the ideal I was looking for
but it'll do the job.
\_ Excellent work. Who are you? I probably need the same
thing and might ask for some pointers. -ausman
\_ I'll mail you. I wrote a trivial script to make
and update the rrds. I have some perl that calls
the update script and does some alerting. Nothing
rocket-sciencey but you can't complain about the
price. :-) |