Graph data which is only generated once a day or a week

graphmunin

I'm wondering what would be a smart solution to graph a data which is generated once a day or once a week.

More specifically, I'd like to graph e.g. how long the last Solr optimization has run, how many digest emails I generated from my application, how many invalid database records where purged during the weekly run, etc.. Things which definitely only happen once in a while.

  • Should I pretend that the value (e.g. how long did the Solr update take?) is valid until the next time it is generated? A GAUGE where I read the value from a file which just gets updated once in a time? This graph then will consist of a line which changes when a new value arrives?
  • Should I only record it when it happens and then forget the current value? A COUNTER? This graph then will only have green spikes when a new value has been generated.

Any other ideas? Or right tool, wrong job?

Update

I probably should mention that I've already running munin in large, but every data gathered so far is the usual munin-data-chages-every-five-minutes idiom; that's why I seeking an advice how to could be handled smart with munin.

Update 2

I now solved it with a simple GAUGE which I reset after I handed the value over to munin; graphs look ok to me. There's a ABSOLUTE type too, which reads "… Another usage is for things you count like number of messages since the last update. …". However the graph simply didn't work, it showed no data and always was "NaN". As I had no working example I simply scratched this effort.

Best Answer

RRDtool, which munin uses behind the scenes, can be used perfectly well for this purpose; although it's usually used for frequently updated data, it works just as well if you tell it that it'll only be getting data points once a day or once a week. However, munin isn't flexible enough to take advantage of this feature of RRDtool (as per http://munin.projects.linpro.no/ticket/5), so you're either stuck with doing it by hand (seriously, rrdtool is easy to use) or finding a data collection and graphing that isn't so dodgy.