Changeset 2503

Show
Ignore:
Timestamp:
05/01/04 21:18:53 (9 years ago)
Author:
khali
Message:

New --rrd-no-average parameter.

Syncronize time slots with rrd.

Location:
lm-sensors/trunk/prog/sensord
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/prog/sensord/args.c

    r1474 r2503  
    4040int logTime = 30 * 60; 
    4141int rrdTime = 5 * 60; 
     42int rrdNoAverage = 0; 
    4243int syslogFacility = LOG_LOCAL4; 
    4344int doScan = 0; 
     
    99100  "  -l, --log-interval <time> -- interval between logging sensors (default 30m)\n" 
    100101  "  -t, --rrd-interval <time> -- interval between updating RRD file (default 5m)\n" 
     102  "  -T, --rrd-no-average      -- switch RRD in non-average mode\n" 
    101103  "  -r, --rrd-file <file>     -- RRD file (default <none>)\n" 
    102104  "  -c, --config-file <file>  -- configuration file (default sensors.conf)\n" 
     
    136138  "If no chips are specified, all chip info will be printed.\n"; 
    137139 
    138 static const char *daemonShortOptions = "i:l:t:f:r:c:p:advhg:"; 
     140static const char *daemonShortOptions = "i:l:t:Tf:r:c:p:advhg:"; 
    139141 
    140142static const struct option daemonLongOptions[] = { 
     
    142144  { "log-interval", required_argument, NULL, 'l' }, 
    143145  { "rrd-interval", required_argument, NULL, 't' }, 
     146  { "rrd-no-average", no_argument, NULL, 'T' }, 
    144147  { "syslog-facility", required_argument, NULL, 'f' }, 
    145148  { "rrd-file", required_argument, NULL, 'r' }, 
     
    191194        if ((rrdTime = parseTime (optarg)) < 0) 
    192195          return -1; 
     196        break; 
     197      case 'T': 
     198        rrdNoAverage = 1; 
    193199        break; 
    194200      case 'f': 
  • lm-sensors/trunk/prog/sensord/rrd.c

    r2346 r2503  
    257257      } else { 
    258258        sprintf (stepBuff, "%d", rrdTime); 
    259         sprintf (rraBuff, "RRA:AVERAGE:%f:%d:%d", 0.5 /* fraction of non-unknown samples needed per entry */, 1 /* samples per entry */, 7 * 24 * 60 * 60 / rrdTime /* 1 week */); 
     259        sprintf (rraBuff, "RRA:%s:%f:%d:%d", rrdNoAverage?"LAST":"AVERAGE", 0.5 /* fraction of non-unknown samples needed per entry */, 1 /* samples per entry */, 7 * 24 * 60 * 60 / rrdTime /* 1 week */); 
    260260        argc += num; 
    261261        argv[argc ++] = rraBuff; 
  • lm-sensors/trunk/prog/sensord/sensord.8

    r2355 r2503  
    7171 
    7272The time is specified as before; e.g., `5m'. 
     73.IP "-T, --rrd-no-average" 
     74Specify that the round-robin database should not be averaged. 
     75 
    7376.IP "-r, --rrd-file file" 
    7477Specify a round-robin database into which to log all sensor readings; 
  • lm-sensors/trunk/prog/sensord/sensord.c

    r1389 r2503  
    2929#include <syslog.h> 
    3030#include <unistd.h> 
     31#include <time.h> 
    3132#include <sys/types.h> 
    3233#include <sys/stat.h> 
     
    7677(void) { 
    7778  int ret = 0; 
    78   int scanValue = 0, logValue = 0, rrdValue = 0; 
     79  int scanValue = 0, logValue = 0; 
     80  /* 
     81   * First RRD update at next RRD timeslot to prevent failures due 
     82   * one timeslot updated twice on restart for example. 
     83   */ 
     84  int rrdValue = rrdTime - time(NULL) % rrdTime; 
    7985 
    8086  sensorLog (LOG_INFO, "sensord started"); 
     
    94100    if ((ret == 0) && rrdTime && rrdFile && (rrdValue <= 0)) { 
    95101      ret = rrdUpdate (); 
    96       rrdValue += rrdTime; 
     102      /* 
     103       * The amount of time to wait is computed using the same method as 
     104       * in RRD instead of simply adding the interval. 
     105       */ 
     106      rrdValue = rrdTime - time(NULL) % rrdTime; 
    97107    } 
    98108    if (!done && (ret == 0)) { 
  • lm-sensors/trunk/prog/sensord/sensord.h

    r1566 r2503  
    3737extern int logTime; 
    3838extern int rrdTime; 
     39extern int rrdNoAverage; 
    3940extern int syslogFacility; 
    4041extern int doScan;