[rrd-developers] rrdtool: update fails on negative timestamp

Tobias Oetiker tobi at oetiker.ch
Fri Apr 10 21:57:30 CEST 2009


Hi Sebastian,

Today Sebastian Harl wrote:

> Hi again,
>
> On Tue, Apr 07, 2009 at 10:11:57PM +0200, Sebastian Harl wrote:
> > On Tue, Apr 07, 2009 at 07:35:30PM +0200, Tobias Oetiker wrote:
> > > Today Sebastian Harl wrote:
> > > > On Sat, Oct 08, 2005 at 03:14:15PM +0200, Frank Zacharias wrote:
> > > > > rrdupdate(1) states: "Negative time values are subtracted from the current time." But if i try:
> > > > >
> > > > > $> rrdtool update filename.rrd -t dsname -timstamp:U
> > > > >
> > > > > it fails with: "ERROR: unknown option 'filename.rrd'". The timestamp is
> > > > > in `date +%s'-format.
> > > >
> > > > Well, since '-' marks the beginning of an option, you'd need to separate
> > > > options and timestamp/value-list tuples using '--' in this case. However, as
> > > > of version 1.3.5, this does not work either:
> > > >
> > > >   $ rrdtool update file.rrd -t ds -- -5:42 && date
> > > >   ERROR: file.rrd: illegal attempt to update using time -5 when last update
> > > >   time is 1239115940 (minimum one second step)
> > > >   1239116951
> > > >
> > > > Apparently, this feature got lost somewhere on the way.
> >
> > > hmmm I didn't know of this 'feature' what time would '-5:42' be ?
> >
> > Uhm ... '-5:42' is the timestamp and the value to be submitted to the
> > RRD file, i.e. the usual data passed to rrdupdate(1). As mentioned in
> > the original bug report (see above), the rrdupdate(1) manpage states
> > that "negative time value are substracted from the current time", so I'd
> > expect this example to insert the value 42 at time 'now' minus 5.
>
> Let me rephrase that to, hopefully, make it clear:
>
> The rrdupdate(1) manpage states the following:
>
>   N|timestamp:value[:value...]
>
>   The data used for updating the RRD was acquired at a certain time.
>   This time can either be defined in seconds since 1970-01-01 or by
>   using the letter ?N?, in which case the update time is set to be the
>   current time. Negative time values are subtracted from the current
>   time. [...]
>
> So, I'd expect the following to happen:
>
> When using N:<values>, RRDtool calls time() to get the current time (in
> seconds since the epoch) and uses that as timestamp when storing the
> values. That works fine.
>
> When using 1234567890:<values>, RRDtool uses the given timestamp (in
> seconds since the epoch). That works fine as well.
>
> When using -5:<values>, RRDtool calls time() to get the current time (in
> seconds since the epoch) and subtracts 5 (in this case) from it. The
> result will be used as timestamp when storing the values. That does not
> currently work, but, instead, fails with the error mentioned in the
> example above.
>
> So, now, the question is: Did I misunderstand the manpage? I'm not sure
> how to interpret the last sentence (from the quote above) then and I'd
> appreciate an explanation. Else, did that feature ever exist? If not,
> why is it documented in the manpage? How should it behave in the future?
> I.e., either the manpage or rrdupdate(1) should be fixed ...

ah ... now I get it ... the -5 should work ... will check ... I
thought that there was some thing about a -5:45  (-h:mm) syntax which I
just could not place :-)

sorry


-- 
Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch tobi at oetiker.ch ++41 62 775 9902 / sb: -9900



More information about the rrd-developers mailing list