[rrd-users] Problems using a bare timespec with -s and -e

Pedro LaWrench pedrolawrench at yahoo.com
Fri Mar 2 18:15:49 CET 2007


--- Alex van den Bogaerdt <alex at ergens.op.het.net> wrote:

> On Fri, Mar 02, 2007 at 07:12:55AM -0800, Pedro
> LaWrench wrote:
> > 
> > 
> > Alex van den Bogaerdt <alex at ergens.op.het.net>
> wrote:  On Thu, Mar 01, 2007 at 04:02:32PM -0800,
> Pedro LaWrench wrote:
> > 
> > >   rrdtool graph /tmp/kc.png -i -s '01:15' -e
> '09:15' ...
> > >   now returns
> > >   ERROR: start time: the specified time is
> incorrect (out of range?)
> > 
> > > Not sure if this is it, but have you tried
> '01\:15' ?
> > > I cannot comment on the other question you asked
> (intended behaviour or not).
> 
> > I  tried that, and that didn't work either.  I did
> try '01:15 3/2/07'
> >  and this does work.  So it appears that the date
> must be specified
> > as well as the time of day.  Previous versions
> assumed the date  was
> > today if it was omitted.  This means any script
> calling  rrdtool must
> > construct today's date and include it in the 
> arguments.  Not real
> > difficult, but an extra step nonetheless.
> 
> Try "today".
> 
> I don't know about every change.  What I do know is
> that's it's very
> difficult to parse time and date in every possible
> combination.  Order
> is important ("today 12:00" vs. "12:00 today") and
> some numbers could
> be interpreted in more than one way.
> 
> If you can create an algorithm that works in every
> case, let us (the
> list) know and I'm sure somebody will code it.

I agree parsing time and date is difficult, but my point is that what used to
work no longer does.  I have created a table of various formats and the
behavior in two different versions:

Spec         1.2.15                          1.2.19
-----------  ----------------------------    -------------------------------
today        unparsable time: today          unparsable time: today
09:15 today  Works                           the specified time is incorrect
today 09:15  unparsable time: today 09:15    unparsable time: today 09:15
09:15        works                           the specified time is incorrect

The supposed algorithm is already documented in parsetime.c, but the behavior
doesn't seem to match:

 * TIME-SPECIFICATION ::= TIME-REFERENCE [ OFFSET-SPEC ] |
 *                                         OFFSET-SPEC   |
 *                         ( START | END ) OFFSET-SPEC
 *
 * TIME-REFERENCE ::= NOW | TIME-OF-DAY-SPEC [ DAY-SPEC-1 ] |
 *                        [ TIME-OF-DAY-SPEC ] DAY-SPEC-2
 *
 * TIME-OF-DAY-SPEC ::= NUMBER (':') NUMBER [am|pm] | # HH:MM
 *                     'noon' | 'midnight' | 'teatime'
 *
 * DAY-SPEC-1 ::= NUMBER '/' NUMBER '/' NUMBER |  # MM/DD/[YY]YY
 *                NUMBER '.' NUMBER '.' NUMBER |  # DD.MM.[YY]YY
 *                NUMBER                          # Seconds since 1970
 *                NUMBER                          # YYYYMMDD
 *
 * DAY-SPEC-2 ::= MONTH-NAME NUMBER [NUMBER] |    # Month DD [YY]YY
 *                'yesterday' | 'today' | 'tomorrow' |
 *                DAY-OF-WEEK
 *
 *
 * OFFSET-SPEC ::= '+'|'-' NUMBER TIME-UNIT { ['+'|'-'] NUMBER TIME-UNIT }
 *
 * TIME-UNIT ::= SECONDS | MINUTES | HOURS |
 *               DAYS | WEEKS | MONTHS | YEARS
 *
 * NOW ::= 'now' | 'n'
 *
 * START ::= 'start' | 's'
 * END   ::= 'end' | 'e'
 *
 * SECONDS ::= 'seconds' | 'second' | 'sec' | 's'
 * MINUTES ::= 'minutes' | 'minute' | 'min' | 'm'
 * HOURS   ::= 'hours' | 'hour' | 'hr' | 'h'
 * DAYS    ::= 'days' | 'day' | 'd'
 * WEEKS   ::= 'weeks' | 'week' | 'wk' | 'w'
 * MONTHS  ::= 'months' | 'month' | 'mon' | 'm'
 * YEARS   ::= 'years' | 'year' | 'yr' | 'y'
 *
 * MONTH-NAME ::= 'jan' | 'january' | 'feb' | 'february' | 'mar' | 'march' |
 *                'apr' | 'april' | 'may' | 'jun' | 'june' | 'jul' | 'july' |
 *                'aug' | 'august' | 'sep' | 'september' | 'oct' | 'october' |
 *                'nov' | 'november' | 'dec' | 'december'
 *
 * DAY-OF-WEEK ::= 'sunday' | 'sun' | 'monday' | 'mon' | 'tuesday' | 'tue' |
 *                 'wednesday' | 'wed' | 'thursday' | 'thu' | 'friday' | 'fri'
|
 *                 'saturday' | 'sat'


I believe that '09:15' is a valid TIME-OF-DAY-SPEC, and in turn a valid
TIME-REFERENCE, and ultimately a valid TIME-SPECIFICATION.

The release notes show a couple of changes to parsetime.c.  I believe one of
these changes has introduced the problems I am seeing:

2006-10-22 21:20  oetiker

        * src/parsetime.c: make time paring more robust ... it can now deal
          with time date date time time date + xxx date time + xxx

2006-09-27 21:45  oetiker

        * src/parsetime.c: tod can come after the date as well as before the
          date

My apologies for any word wrap that may make this hard to read.

-PL



 
____________________________________________________________________________________
Finding fabulous fares is fun.  
Let Yahoo! FareChase search your favorite travel sites to find flight and hotel bargains.
http://farechase.yahoo.com/promo-generic-14795097



More information about the rrd-users mailing list