[rrd-users] Newcomer's RRD design dillemmas

Travis Griggs travisgriggs at gmail.com
Mon Oct 15 23:16:35 CEST 2012


A friend suggested I take a look at RRDTools for a problem I'm dealing with. We're monitoring a number of custom devices in the agricultural world. We did a naive "just store the telemetry in a database" thing originally. It was a quick prototype that was contracted out. We quickly ran out of room. Even telemetry at a trickle adds up fast. Since it was a Smalltalk database, I built a custom edge triggered data collector that radically reduced the data, since we mostly care about changes and when the occur. But that's not a long term solution for us. So I'm looking at RRD. After a couple hours reading/growsing/playing, I'm left with the following questions:

1) Each device we keep track of telemetry for, has a couple of different measures. I've concluded that we shouldn't try to store dissimilar data types in the same rrd file, even with separate RRAs. For example, we keep track of battery voltage, and an hour's average is plenty high enough resolution for us, but we also keep track of hydraulic pressures, and we'd really like to have these at a minute resolution. It seems I'd be best served by having different rrd's for these, one with a battery voltage DS, and the other with pressure DS's.

2) While some of our data is scalar data (pressure, voltage, signal strength), others is just binary status. Is it on or off? I'm not convinced that binary status is easy to do with RRD, without playing some pretending games. For most of the binary values, we tend to want to record any change in them at a minutes resolution (that's how often the telemetry can come in). But we don't ever want to "average them away" or anything. Changes are usually infrequent (at most once per every couple of hours), but we want to know exactly when they happened and not "lose" any of them, at least for a given backwards time interval, such as a growing season (e.g. ~5 months). Should I be looking at doing an alternative storage scheme for these, rrd's for the scalar info, and something different for the edge triggered binaries?

Thanks for any help/direction/feedback/tips.

--
Travis Griggs
"A vital ingredient of success is not knowing that what you're attempting can't be done." -Terry Pratchett



More information about the rrd-users mailing list