GithubHelp home page GithubHelp logo

oetiker / rrdtool-1.x Goto Github PK

View Code? Open in Web Editor NEW
988.0 66.0 258.0 14.62 MB

RRDtool 1.x - Round Robin Database

Home Page: http://www.rrdtool.org

License: GNU General Public License v2.0

C# 2.08% C 83.59% Lua 0.40% Perl 1.29% XS 0.98% Python 0.21% Ruby 0.13% Shell 6.14% Awk 0.08% Makefile 0.93% M4 3.91% Batchfile 0.20% Tcl 0.07%
rrdtool round-robin-database time-series tsdb

rrdtool-1.x's Introduction

RRDtool - Round Robin Database Tool

Join the chat at https://gitter.im/oetiker/rrdtool-1.x

RRDtool 1.x master build status: Linux Build test coverage codecov

RRDtool is a little program for easily maintaining a database of time-series data. It comes with a charting program for drawing pretty graphs based on the data stored.

It is pretty easy to gather status information from all sorts of things, ranging from the temperature in your office to the number of octets which have passed through the FDDI interface of your router. But it is not so trivial to store this data in a efficient and systematic manner. This is where RRDtool kicks in. It lets you log and analyze the data you gather from all kinds of data-sources (DS). The data analysis part of RRDtool is based on the ability to quickly generate graphical representations of the data values collected over a definable time period.

To compile:

check out the instructions in doc/rrdbuild.pod

Getting Started:

Either after compiling or after installing you can try the example RRDtool applications in the examples directory.

To learn:

Read the documentation in the doc directory.

If you are looking for a more slow paced introduction, make sure to read Alex van den Bogaerdt's rrdtutorial which is also available from the doc directory. Also read his cdeftutorial and Steve Rader's rpntutorial.

If you want to know about the format of the log files check src/rrd_format.h there are a lot of comments in there ...

How to make Tobi happy:

If you want to show your appreciation for RRDtool you could make me happy by going to https://tobi.oetiker.ch/wish and ordering a CD from my CD wish list ...

How to keep in touch:

There are 3 Mailing lists for RRDtool:

rrd-announce LOW volume RRDtool Announcements List (Only Stable Releases) rrd-users For discussion amongst people who use RRDtool in their applications rrd-developers For people who actually HACK RRDtool code

To subscribe to send a message with the subject 'subscribe' to [email protected]

Note, that postings to rrd-announce will always be cross-posted to rrd-users and rrd-developers as well.

To Contribute:

Contributed feature and bug patches are most welcome. Since rrdtool lives on github, it is now very easy to create pull requests. Work from the master branch unless you are creating bugfixes. No new features should go into the 1.2, 1.3 and 1.4 branches.

If you contribute new features, make sure to also update the documentation pod files.

The latest released Version:

Is always available from https://oss.oetiker.ch/rrdtool/

Tobias Oetiker [email protected]

rrdtool-1.x's People

Contributors

ab-it avatar bangert avatar c72578 avatar diederikdehaas avatar frazew avatar hramrach avatar ksjoberg avatar laiwei avatar matwey avatar maxnet avatar mkhon avatar msperl avatar netniv avatar nirgal avatar oetiker avatar pabigot avatar phpmoli avatar pmorch avatar sobomax avatar songdongsheng avatar sourcejedi avatar stamfest avatar stevenh avatar svenpanne avatar thomas-gelf avatar tokkee avatar upasana-me avatar yarda avatar youpong avatar zsub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rrdtool-1.x's Issues

HWPREDICT misbehaves on Linux

RRDtool on Linux/x86 gives unexpected Holt-Winters results. Tested on 1.2.11 and 1.2.12.

Example:

rrdtool create x.rrd -s 86400 -b 962496000 DS:ds0:GAUGE:86400:U:U RRA:AVERAGE:.5:1:10 RRA:HWPREDICT:10:.5:.1:2

rrdtool updatev x.rrd 962582400:1 962668800:2 962755200:3 962841600:4 962928000:5 963014400:6 963100800:7 963187200:8 963273600:9

Solaris/x86 (various gcc releases, incl. 2.95.3, 3.[34].x):

{{{
[962582400]RRA[HWPREDICT][1]DS[ds0] = NaN
[962668800]RRA[HWPREDICT][1]DS[ds0] = NaN
[962755200]RRA[HWPREDICT][1]DS[ds0] = 1.0000000000e+00
[962841600]RRA[HWPREDICT][1]DS[ds0] = 3.1000000000e+00
[962928000]RRA[HWPREDICT][1]DS[ds0] = 3.1950000000e+00
[963014400]RRA[HWPREDICT][1]DS[ds0] = 5.0577500000e+00
[963100800]RRA[HWPREDICT][1]DS[ds0] = 5.5374875000e+00
[963187200]RRA[HWPREDICT][1]DS[ds0] = 7.1335443750e+00
[963273600]RRA[HWPREDICT][1]DS[ds0] = 7.8218987187e+00

[962582400]RRA[SEASONAL][1]DS[ds0] = 0.0000000000e+00
[962668800]RRA[SEASONAL][1]DS[ds0] = 1.0000000000e+00
[962755200]RRA[SEASONAL][1]DS[ds0] = 5.0000000000e-01
[962841600]RRA[SEASONAL][1]DS[ds0] = 1.2250000000e+00
[962928000]RRA[SEASONAL][1]DS[ds0] = 9.5125000000e-01
[963014400]RRA[SEASONAL][1]DS[ds0] = 1.4605625000e+00
[963100800]RRA[SEASONAL][1]DS[ds0] = 1.3168781250e+00
[963187200]RRA[SEASONAL][1]DS[ds0] = 1.6771764063e+00
[963273600]RRA[SEASONAL][1]DS[ds0] = 1.6114034453e+00

[962582400]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[962668800]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[962755200]RRA[DEVSEASONAL][1]DS[ds0] = 2.0000000000e+00
[962841600]RRA[DEVSEASONAL][1]DS[ds0] = 9.0000000000e-01
[962928000]RRA[DEVSEASONAL][1]DS[ds0] = 1.9025000000e+00
[963014400]RRA[DEVSEASONAL][1]DS[ds0] = 9.2112500000e-01
[963100800]RRA[DEVSEASONAL][1]DS[ds0] = 1.6825062500e+00
[963187200]RRA[DEVSEASONAL][1]DS[ds0] = 8.9379031250e-01
[963273600]RRA[DEVSEASONAL][1]DS[ds0] = 1.4303037656e+00

[962582400]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962668800]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962755200]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962841600]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962928000]RRA[DEVPREDICT][1]DS[ds0] = 2.0000000000e+00
[963014400]RRA[DEVPREDICT][1]DS[ds0] = 9.0000000000e-01
[963100800]RRA[DEVPREDICT][1]DS[ds0] = 1.9025000000e+00
[963187200]RRA[DEVPREDICT][1]DS[ds0] = 9.2112500000e-01
[963273600]RRA[DEVPREDICT][1]DS[ds0] = 1.6825062500e+00
}}}

Linux/x86 (ditto):

{{{
[962582400]RRA[HWPREDICT][1]DS[ds0] = NaN
[962668800]RRA[HWPREDICT][1]DS[ds0] = NaN
[962755200]RRA[HWPREDICT][1]DS[ds0] = NaN
[962841600]RRA[HWPREDICT][1]DS[ds0] = NaN
[962928000]RRA[HWPREDICT][1]DS[ds0] = NaN
[963014400]RRA[HWPREDICT][1]DS[ds0] = NaN
[963100800]RRA[HWPREDICT][1]DS[ds0] = NaN
[963187200]RRA[HWPREDICT][1]DS[ds0] = NaN
[963273600]RRA[HWPREDICT][1]DS[ds0] = NaN

[962582400]RRA[SEASONAL][1]DS[ds0] = 0.0000000000e+00
[962668800]RRA[SEASONAL][1]DS[ds0] = 1.0000000000e+00
[962755200]RRA[SEASONAL][1]DS[ds0] = 2.0000000000e+00
[962841600]RRA[SEASONAL][1]DS[ds0] = 3.0000000000e+00
[962928000]RRA[SEASONAL][1]DS[ds0] = 4.0000000000e+00
[963014400]RRA[SEASONAL][1]DS[ds0] = 5.0000000000e+00
[963100800]RRA[SEASONAL][1]DS[ds0] = 6.0000000000e+00
[963187200]RRA[SEASONAL][1]DS[ds0] = 7.0000000000e+00
[963273600]RRA[SEASONAL][1]DS[ds0] = 8.0000000000e+00

[962582400]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[962668800]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[962755200]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[962841600]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[962928000]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[963014400]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[963100800]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[963187200]RRA[DEVSEASONAL][1]DS[ds0] = NaN
[963273600]RRA[DEVSEASONAL][1]DS[ds0] = NaN

[962582400]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962668800]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962755200]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962841600]RRA[DEVPREDICT][1]DS[ds0] = NaN
[962928000]RRA[DEVPREDICT][1]DS[ds0] = NaN
[963014400]RRA[DEVPREDICT][1]DS[ds0] = NaN
[963100800]RRA[DEVPREDICT][1]DS[ds0] = NaN
[963187200]RRA[DEVPREDICT][1]DS[ds0] = NaN
[963273600]RRA[DEVPREDICT][1]DS[ds0] = NaN
}}}

Creating tickets broken?

I know, it's pretty funny opening a ticket complaining that opening a ticket is not possible :)
But then again, I'm committing this ticket by a local copy of the webpage, where I manually changed the "action"-directive of the form, to a fully qualified URL {{{ http://people.ee.ethz.ch/~oetiker/webtools/rrdtool-trac/newticket#preview }}} With the original setting of {{{ /~oetiker/webtools/rrdtool-trac/newticket#preview }}} all I got when clicking on "Submit" or "Preview" was a message from my Browser, complaining it couldn't reach "10.10.3.3#preview".
I don't know whether this is really a bug in the Trac-System, the entered URL (shouldn't the leading '/' be ommitted when using relative URLs? Dunno really...), or my Browser (Firefox 1.5.0.3, running on Ubuntu Dapper Beta 2).

If I'm the only one with this problem, just close this ticket. But if not, try editing the "action" field in the HTML-code, at least it worked that worked for me :)

Best Regards,

  • Jan

powerpc-apple-darwin8-gcc-4.0.0: unrecognized option '-shared'

I try to comple rrdtool-1.2.12 on Mac OS X 10.4.3 with Xcode 2.2.

{{{
% env CPPFLAGS="-I/usr/local/include/libart-2.0 -I/usr/local/include/freetype2" "LDFLAGS=-L/usr/local/lib" ./configure && make
(snip)
gcc -g -O2 -fno-common -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -o .libs/rrdtoolmodule.so -shared rrdtoolmodule.o -L/usr/local/lib ../../src/.libs/librrd.dylib /usr/local/lib/libfreetype.dylib /usr/local/lib/libpng.dylib -lz /usr/local/lib/libart_lgpl_2.dylib -lm
powerpc-apple-darwin8-gcc-4.0.0: unrecognized option '-shared'
/usr/bin/ld: Undefined symbols:
_PyArg_ParseTuple
_PyDict_New
_PyDict_SetItemString
_PyErr_Format
_PyErr_NewException
_PyErr_Occurred
_PyErr_SetString
_PyExc_TypeError
_PyFloat_FromDouble
_PyInt_FromLong
_PyList_Append
_PyList_New
_PyMem_Malloc
_PyModule_GetDict
_PyObject_Free
_PyString_FromString
_PyString_Type
_PyTuple_New
_PyTuple_Size
_PyType_IsSubtype
_Py_FatalError
_Py_InitModule4
__Py_NoneStruct
collect2: ld returned 1 exit status
make[3]: *** [rrdtoolmodule.so] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
}}}

aix : unparsable time: [error] RRDs AIX-5.2

This is a formal request that a patch be included in the mainstream rrd source to resolve what seems to be a collision issue on AIX 5.2. Please refer to the attached thread and patch for 1.0.49 by Adrian Terranova. I have also tested this patch on version 1.2.8 with great success. It seems to involve a collision with any occurrence of the following variable names: '''optarg''', '''optind''', '''opterr'''

Please note, I have not been able to successfully compile RRDs on AIX5.2 without this patch.

The thread:
http://groups.google.com/group/mailing.unix.rrd-users/browse_thread/thread/a9bf0752942b1a1c/eda2b57571fe0906?lnk=st&q=%2Brrdtool+%2Baix+%2BRRDs&rnum=1&hl=en#eda2b57571fe0906

Thanks,
Ezra Forbus

rrdtool make test error ( ld:accessx(): No such file or directory )

System AIX 5.3.0
perl 5.8.7
rrdtool-1.0.47

Compile perl and rrdtool ok
but after the test
cd rrdtool-1.0.47/perl-shared
perl Makefile.PL LINKTYPE=static
Writing Makefile for RRDs
make install
make test

Writing "Makefile.aperl" for this perl
Writing Makefile.aperl for RRDs
make -f Makefile.aperl perl
make[1]: Entering directory /usr/local/src/misc/rrdtool-1.0.47/perl-shared' Writing perlmain.c cd . && cc -c "-I/fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE" \ -DHAVE_CONFIG_H -O \ -DVERSION=\"1.000471\" \ -DXS_VERSION=\"1.000471\" "-I/fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE" perlmain.c cc -c -I.. -I../src -I../gd1.3 -DHAVE_CONFIG_H -O -DVERSION=\"1.000471\" -DXS_VERSION=\"1.000471\" "-I/fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE" -DPERLPATCHLEVEL=8 RRDs.c "../config.h", line 191.9: 1506-236 (W) Macro name VERSION has been redefined. rm -rf blib/arch/auto/RRDs/RRDs.a /usr/bin/ar cr blib/arch/auto/RRDs/RRDs.a RRDs.o && : blib/arch/auto/RRDs/RRDs.a chmod 755 blib/arch/auto/RRDs/RRDs.a cat /fdj/opt/perl-5.8.7/lib/5.8.7/aix/auto/DynaLoader/extralibs.ld >> blib/arch/auto/RRDs/extralibs.all cat blib/arch/auto/RRDs/extralibs.ld >> blib/arch/auto/RRDs/extralibs.all cc -brtl -bdynamic -bmaxdata:0x80000000 -L/usr/local/lib -b32 -bE:/fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE//fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE/perl.exp -o perl -O ./perlmain.o RRDs.o blib/arch/auto/RRDs/RRDs.a /fdj/opt/perl-5.8.7/lib/5.8.7/aix/auto/DynaLoader/DynaLoader.a /fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE/libperl.acat blib/arch/auto/RRDs/extralibs.all-lbind -lnsl -ldl -lld -lm -lcrypt -lc -lbsd ld: 0706-004 Cannot find or read export file: /fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE//fdj/opt/perl-5.8.7/lib/5.8.7/aix/CORE/perl.exp ld:accessx(): No such file or directory make[1]: *** [perl] Error 255 make[1]: Leaving directory/usr/local/src/misc/rrdtool-1.0.47/perl-shared'
make: *** [perl] Error 2

thank's your help

1.2.12 compile fails on RedHat 9

I've previously compiled rrdtool 1.2.11 successfully on several RedHat 9 boxes, but have not been able to compile 1.2.12.

"make" fails with the following errors:

{{{
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DRRD_DEFAULT_FONT="/usr/local/rrdtool-1.2.12/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf" -DNUMVERS=1.2012 -I/usr/include/libart-2.0 -I/usr/include/freetype2 -g -O2 -fPIC -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -MT rrd_cgi.o -MD -MP -MF ".deps/rrd_cgi.Tpo" -c -o rrd_cgi.o rrd_cgi.c;
then mv -f ".deps/rrd_cgi.Tpo" ".deps/rrd_cgi.Po"; else rm -f ".deps/rrd_cgi.Tpo"; exit 1; fi
rrd_cgi.c: In function rrdcgiReadVariables': rrd_cgi.c:1279: warning: comparison between signed and unsigned /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -fPIC -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -o rrdcgi rrd_cgi.o librrd.la -lfreetype -lpng -lz -lart_lgpl_2 -lm gcc -g -O2 -fPIC -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -o .libs/rrdcgi rrd_cgi.o ./.libs/librrd.so /usr/lib/libfreetype.so -lpng -lz -lart_lgpl_2 -lm -Wl,--rpath -Wl,/usr/local/rrdtool-1.2.12/lib creating rrdcgi make[2]: Leaving directory/usr/src/rrdtool-1.2.12/src'
Making all in bindings
make[2]: Entering directory /usr/src/rrdtool-1.2.12/bindings' Making all in tcl make[3]: Entering directory/usr/src/rrdtool-1.2.12/bindings/tcl'
echo "package ifneeded Rrd 1.2.12 "load /usr/local/rrdtool-1.2.12/lib/tclrrd1.2.12[info sharedlibextension]"" > pkgIndex.tcl
gcc -g -O2 -fPIC -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -g -O2 -fPIC -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -fPIC -I/usr/include -I../../src -DUSE_TCL_STUBS -c tclrrd.c -DVERSION="1.2.12"
tclrrd.c:34: parse error before "CONST84"
tclrrd.c: In function getopt_init': tclrrd.c:39:argc' undeclared (first use in this function)
tclrrd.c:39: (Each undeclared identifier is reported only once
tclrrd.c:39: for each function it appears in.)
tclrrd.c:41: argv' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:87: parse error before "CONST84" tclrrd.c: In functionRrd_Create':
tclrrd.c:97: argc' undeclared (first use in this function) tclrrd.c:97:argv' undeclared (first use in this function)
tclrrd.c:102: interp' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:184: parse error before "CONST84" tclrrd.c: In functionRrd_Dump':
tclrrd.c:186: argc' undeclared (first use in this function) tclrrd.c:187:interp' undeclared (first use in this function)
tclrrd.c:192: argv' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:210: parse error before "CONST84" tclrrd.c: In functionRrd_Last':
tclrrd.c:214: argc' undeclared (first use in this function) tclrrd.c:215:interp' undeclared (first use in this function)
tclrrd.c:220: argv' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:238: parse error before "CONST84" tclrrd.c: In functionRrd_Update':
tclrrd.c:243: argc' undeclared (first use in this function) tclrrd.c:243:argv' undeclared (first use in this function)
tclrrd.c:248: interp' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:308: parse error before "CONST84" tclrrd.c: In functionRrd_Fetch':
tclrrd.c:318: argc' undeclared (first use in this function) tclrrd.c:318:argv' undeclared (first use in this function)
tclrrd.c:322: interp' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:349: parse error before "CONST84" tclrrd.c: In functionRrd_Graph':
tclrrd.c:360: CONST84' undeclared (first use in this function) tclrrd.c:360: parse error before "char" tclrrd.c:366:interp' undeclared (first use in this function)
tclrrd.c:366: argv' undeclared (first use in this function) tclrrd.c:408:save' undeclared (first use in this function)
tclrrd.c:410: argc' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:452: parse error before "CONST84" tclrrd.c: In functionRrd_Tune':
tclrrd.c:456: argc' undeclared (first use in this function) tclrrd.c:456:argv' undeclared (first use in this function)
tclrrd.c:461: interp' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:473: parse error before "CONST84" tclrrd.c: In functionRrd_Resize':
tclrrd.c:477: argc' undeclared (first use in this function) tclrrd.c:477:argv' undeclared (first use in this function)
tclrrd.c:482: interp' undeclared (first use in this function) tclrrd.c: At top level: tclrrd.c:494: parse error before "CONST84" tclrrd.c: In functionRrd_Restore':
tclrrd.c:498: argc' undeclared (first use in this function) tclrrd.c:498:argv' undeclared (first use in this function)
tclrrd.c:503: interp' undeclared (first use in this function) make[3]: *** [tclrrd.o] Error 1 make[3]: Leaving directory/usr/src/rrdtool-1.2.12/bindings/tcl'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory /usr/src/rrdtool-1.2.12/bindings' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/usr/src/rrdtool-1.2.12'
make: *** [all] Error 2
}}}

As I don't need the TCL bindings, I re-configured:
{{{
./configure --disable-tcl
}}}
and could then successfully compile rrdtool 1.2.12.

I have the tcl-8.3.5-88 RPM installed.

Any idea why rrdtool 1.2.12 is failing to compile the tcl bindings, while 1.2.11 successfully compiles on the same system?

adding and removing RRAs from RRD

I'd like the base rrdlib/rrdtool to be able to natively (without xml ex/import) add or remove RRAs from an RRD, transactionally safe (means that if there happens an update during the RRD transformation, the update would not be lost).

In the case of an RRA add, if would be great if as many as possible values could be calculated from the "adjacent" RRAs, either by downsampling or upsampling (in that precedence order).

Make fails on Solaris 10 - wants to use cc (ucbcc) while making perlpshared. Will not set up for gcc instead of cc/ucbcc

When attempting to build on Solaris 10 with gcc the makes work fine until the perl-shared make (output from Makefile.PL). At that point it forces the use of cc (CC=gcc has been set), which softlinks to ucbcc. I do not have ucbcc, and setting CC=gcc just causes a failure with "gcc - no input files" or "/usr/ucb/cc language optional software package not installed". Sorry, I am not much of a unix programmer, and I have hacked at it for a while trying to get it to work. Is there a switch I can use during configure to force the perl makes to setup for, and use, gcc?

Crashes with rrdrestore

I encountered a SIGSEGV while trying to use "rrdtool restore --range-check foo.xml foo.rrd":

  • It incorrectly expected an argument to --range-check and --force-overwrite.
  • It checked for the required number of arguments ''before'' counting optional arguments.

as well as double frees in error cases. (Fedora Core 4's free() abort()s in this case.)

errors should go to stderr

It seems that some error messages are printed to standard out (especially in rrd_tool.c). So you are not able to clearly split wanted data from error messages. Also using the error pipe would be more conform (I think :) ).

Alos I think that the "*** attempt to put segment in horiz list twice" problem ( http://lists.ee.ethz.ch/rrd-developers/msg01561.html ) is a result of this behavior.

greez
Daniel

symbol lookup error

Hi, I have a problem with RRDtool and perl. The error massage say's:

/opt/lampp/bin/perl: symbol lookup error: /opt/local/rrdtool-1.2.11/lib/perl/5.8.7/i486-linux-gnu-thread-multi/auto/RRDs/RRDs.so: undefined symbol: Perl_Gthr_key_ptr

I don't know what that means. Can you help?

Sierra

Line stack

Stacking more than 2 line values produces bad graphs and hangs rrdtool. Stacking areas works fine.

rrdtool 1.2.11 (debian unstable)

AREA is not drawn to the end of graph, last column of dots is missing.

When you make simple graph as created by script below, AREA part is not drawn to the end of graph, last column of dots is missing.

It's not about consolidation because LINE is drawn properly as you can see on test image created by script.

Hrvoje

Here is the script: (tested on 1.2.15)
{{{

!/bin/bash

create db

rm -f test.rrd 2> /dev/null
rrdtool create test.rrd -s 60 DS:in:GAUGE:120:U:125000000 DS:out:GAUGE:120:U:125000000 RRA:AVERAGE:0.5:1:129600 RRA:AVERAGE:0.5:12:105120

add some sample values

stamp=$(date +%s)
minute_stamp=$(echo "$stamp - $(echo $stamp % 60 |bc)"|bc)

for i in $(seq 0 100)
do
temp_stamp=$(echo "$minute_stamp + $i*60"|bc)
echo $temp_stamp
rrdtool update test.rrd $temp_stamp:100:100
done

and final demonstration

rrdtool graph test.png -w 100 --zoom 5
-s $minute_stamp -e $(echo "$minute_stamp + 100*60"|bc)
DEF:in=test.rrd:in:AVERAGE
AREA:in#ff0000
LINE1:in#000000

}}}

Graphical indication of overflow

When --rigid is used, peaks that go "off the chart" are truncated with
a line straight across the top of the graph. They are
indistinguishable from peaks that just happen to go right to the top
of the graph.

I'd like to see some visual indicator of truncation. The usual
convention is a jagged line, something like this:

{{{
|----~~~~~~----------
| | |
| | | ____
| | | | |

|| || |__

                                                                                                 }}}

That would make it much easier to see at a glance what was going on.

Cannot make RRDTOOL-1.2.12 on AIX

'''Hello''' I have followed the build instructions offered with this site and cannot get rrdtool1-12.12 installed ! I have downloaded the library files for zlib-1.2.2, libpnt-1.2.8, freetype-2.1.9 libart -2.3.17 from this site and set the environement settings as described.
Configure finishes nicely:-
''Config is DONE!

      With MMAP IO: no
      Perl Modules: perl_piped
       Perl Binary: /usr/bin/perl
      Perl Version: 5.8.2
      Perl Options: PREFIX=/usr/local/rrdbuild LIB=/usr/local/rrdbuild/lib/perl/5.8.2
Build Tcl Bindings: no

Build Python Bindings: no
Build rrdcgi: yes
Build librrd MT: yes

Type 'make' to compile the software and use 'make install' to
install everything to: /usr/local/rrdbuild.''

Make "crashes" out with :-

''if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..  -DRRD_DEFAULT_FONT=\"/usr/local/rrdbuild/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf\" -DNUMVERS=1.2012 -I/opt/tmp/rrdbuild/lb/ibclude -I/opt/tmp/rrdbuild/lb/ibclude/libart-2.0 -I/opt/tmp/rrdbuild/lb/ibclude/freetype2 -I/opt/tmp/rrdbuild/lb/ibclude/libpng  -I/usr/include/libart-2.0 -I/usr/include/freetype2  -O3  -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -MT librrd_th_la-rrd_thread_safe.lo -MD -MP -MF ".deps/librrd_th_la-rrd_thread_safe.Tpo" -c -o librrd_th_la-rrd_thread_safe.lo `test -f 'rrd_thread_safe.c' || echo './'`rrd_thread_safe.c;  then mv -f ".deps/librrd_th_la-rrd_thread_safe.Tpo" ".deps/librrd_th_la-rrd_thread_safe.Plo"; else rm -f ".deps/librrd_th_la-rrd_thread_safe.Tpo"; exit 1; fi

gcc -DHAVE_CONFIG_H -I. -I. -I.. -DRRD_DEFAULT_FONT="/usr/local/rrdbuild/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf" -DNUMVERS=1.2012 -I/opt/tmp/rrdbuild/lb/ibclude -I/opt/tmp/rrdbuild/lb/ibclude/libart-2.0 -I/opt/tmp/rrdbuild/lb/ibclude/freetype2 -I/opt/tmp/rrdbuild/lb/ibclude/libpng -I/usr/include/libart-2.0 -I/usr/include/freetype2 -O3 -DPIC -fno-strict-aliasing -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W -MT librrd_th_la-rrd_thread_safe.lo -MD -MP -MF .deps/librrd_th_la-rrd_thread_safe.Tpo -c rrd_thread_safe.c -DPIC -o .libs/librrd_th_la-rrd_thread_safe.o
In file included from rrd_thread_safe.c:12:
/usr/include/pthread.h:583: error: parse error before '' token
/usr/include/pthread.h:586: error: parse error before '
' token
/usr/include/pthread.h:590: error: parse error before '' token
/usr/include/pthread.h:593: error: parse error before '
' token
/usr/include/pthread.h:596: error: parse error before '' token
/usr/include/pthread.h:599: error: parse error before '
' token
/usr/include/pthread.h:602: error: parse error before '' token
/usr/include/pthread.h:605: error: parse error before '
' token
/usr/include/pthread.h:608: error: parse error before '' token
/usr/include/pthread.h:612: error: parse error before '
' token
/usr/include/pthread.h:615: error: parse error before '' token
/usr/include/pthread.h:626: error: parse error before '
' token
/usr/include/pthread.h:630: error: parse error before '' token
/usr/include/pthread.h:653: error: parse error before '
' token
/usr/include/pthread.h:656: error: parse error before '' token
/usr/include/pthread.h:659: error: parse error before '
' token
/usr/include/pthread.h:662: error: parse error before '' token
/usr/include/pthread.h:665: error: parse error before '
' token
/usr/include/pthread.h:673: error: parse error before '' token
/usr/include/pthread.h:676: error: parse error before '
' token
/usr/include/pthread.h:679: error: parse error before '' token
/usr/include/pthread.h:682: error: parse error before '
' token
/usr/include/pthread.h:690: error: parse error before '' token
/usr/include/pthread.h:694: error: parse error before '
' token
/usr/include/pthread.h:697: error: parse error before '}' token
/usr/include/pthread.h:698: error: parse error before '*' token
/usr/include/pthread.h:698: error: ISO C forbids data definition with no type or storage class
rrd_thread_safe.c:22: warning: missing braces around initializer
rrd_thread_safe.c:22: warning: (near initialization for context_key_once.__on_word') rrd_thread_safe.c: In functionrrd_strerror':
rrd_thread_safe.c:54: warning: return makes pointer from integer without a cast
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 2.

Stop.''

Any help appreciate - I am sure this is one of the most used phrases used on the internet but I AM new to rrdtool and AIX !

Please help.

Jack

Can not get a working RRDs (from rrdtool-1.2.12) with AIX 5.3

I can build rrdtool-1.2.12 on AIX 5.3, however I can not get a working RRDs out of it.

I get the following from "make test" in bindings/perl-shared:


PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t

t/base....t/base.t: unable to create `demo1.rrd': can't parse argument '-b'

t/base....dubious

Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 2-7
Failed 6/7 tests, 14.29% okay
Failed Test Stat Wstat Total Fail Failed List of Failed

t/base.t 255 65280 7 11 157.14% 2-7
Failed 1/1 test scripts, 0.00% okay. 6/7 subtests failed, 14.29% okay.

gmake: *** [test_dynamic] Error 2

The "can't parse argument" is the error I receive when trying to run the examples in share/examples/rrdtool.

Any argument passed to a RRDs function will generate the error.

I have tried to build rrdtool with the following configure options and while rrdtool will build, the RRDs still generates the parse error.

./configure --prefix=$INSTALL_DIR --enable-pthread --disable-python --disable-tcl

./configure --prefix=$INSTALL_DIR --disable-pthread --disable-python --disable-tcl

./configure --prefix=$INSTALL_DIR --enable-static --disable-share --disable-python --disable-tcl

I'm using the following:
AIX 5.3 ML3
gcc-4.1.0
gnu Make 3.80
Perl 5.8.2 multi-thread (default installed with AIX 5.3)

No compile errors are showing up when RRDs is being built.
Any ideas?

Problems with RRDp.pm

Hi Tobi,

I've got trouble with RRDp.pm.
I use a script like:

RRDp::start
while(1) {
...
run_rrd($command);
...
}
RRDp::end

sub run_rrd {
RRDp::cmd @_;
$answer = RRDp::read;
print $answer;
}

If there is an error like ERROR: illegal attempt to update using time ..., RRD terminates my program with this message. Why? I'd like to received this message (that's important for me) but my program must go on.

If my sub look's like

sub rrd_run {
RRDp::start ;
RRDp::cmd @_;
RRDp::end;
}

then I've no problems and no error message too. But with every $command I must run RRDp::start and RRDp::end and so my performance falls.

Thanks Sierra

PS: Excuse me, but your display has got problems with ::, or hasn't it?

Making a graph on windows results in Application error.

'''Making a graph on windows results in this Application Error: The instuction at 0x0046ba03 referenced memory at 0x00370000. The memory could not be written.'''

version: '''1.2.10'''

graph call:

{{{
rrdtool.exe graph cerebellum_ftp_files_w.png -s-1w -e -60 DEF:cdimage=cerebellum.rrd:ftp_cdimage_files:AVERAGE AREA:cdimage#b3ff84:Archives -v "files" -l0 -h150 -w720 -aPNG
}}}

create db call: (a little bit huge DB (4.4MB) :)

{{{
rrdtool.exe create cerebellum.rrd --step 3600
DS:ftp_bytes:GAUGE:21600:0:U
DS:smb_bytes:GAUGE:21600:0:U
DS:ftp_active_servers:GAUGE:21600:0:U
DS:smb_active_servers:GAUGE:21600:0:U
DS:ftp_total_servers:GAUGE:21600:0:U
DS:smb_total_servers:GAUGE:21600:0:U
DS:ftp_files:GAUGE:21600:0:U
DS:smb_files:GAUGE:21600:0:U
DS:ftp_video_files:GAUGE:21600:0:U
DS:ftp_audio_files:GAUGE:21600:0:U
DS:ftp_picture_files:GAUGE:21600:0:U
DS:ftp_document_files:GAUGE:21600:0:U
DS:ftp_archive_files:GAUGE:21600:0:U
DS:ftp_cdimage_files:GAUGE:21600:0:U
DS:ftp_video_bytes:GAUGE:21600:0:U
DS:ftp_audio_bytes:GAUGE:21600:0:U
DS:ftp_picture_bytes:GAUGE:21600:0:U
DS:ftp_document_bytes:GAUGE:21600:0:U
DS:ftp_archive_bytes:GAUGE:21600:0:U
DS:ftp_cdimage_bytes:GAUGE:21600:0:U
DS:smb_video_files:GAUGE:21600:0:U
DS:smb_audio_files:GAUGE:21600:0:U
DS:smb_picture_files:GAUGE:21600:0:U
DS:smb_document_files:GAUGE:21600:0:U
DS:smb_archive_files:GAUGE:21600:0:U
DS:smb_cdimage_files:GAUGE:21600:0:U
DS:smb_video_bytes:GAUGE:21600:0:U
DS:smb_audio_bytes:GAUGE:21600:0:U
DS:smb_picture_bytes:GAUGE:21600:0:U
DS:smb_document_bytes:GAUGE:21600:0:U
DS:smb_archive_bytes:GAUGE:21600:0:U
DS:smb_cdimage_bytes:GAUGE:21600:0:U
RRA:AVERAGE:0.5:3600:2000
RRA:AVERAGE:0.5:43200:2000
RRA:AVERAGE:0.5:172800:2000
RRA:MIN:0.5:3600:2000
RRA:MIN:0.5:43200:2000
RRA:MIN:0.5:172800:2000
RRA:MAX:0.5:3600:2000
RRA:MAX:0.5:43200:2000
RRA:MAX:0.5:172800:2000
}}}

Make VRULE at-time aware

Hello!

It would be very nice if the VRULE statement of the "rrd graph" function would be aware of the so called "at-time" way of entering times, like it is the case with the time statements in "rrd fetch". I don't know how complex this task would be, given that I know close to nothing about the internal workings of rrdtool, but it would make using the VRULE for markings in graphs so much more useful.
For example: I'd like to have a vertical line in the dayly-graph, marking the beginning of the new day (0 o'clock, or 12pm). As far as I know, the only way to do this is to calculating it, using the current system time, clear the seconds, minute and hour part of it and create a new timestamp with the result. Using at-time-style statements, this could be broken down to:
{{{
VRULE:midnight#abcdef
}}}

Maybe the "midnight" has to be escaped, to avoid mixing it up with a ?DEF'ed variable, but as far as I can guess, that should be doable.

Regards,
-Jan

Unable to run examples on HP-UX 11.23

I have successfully compiled and installed the rrdtool (Version 1.2.11)
on a HP-UX 11.23 IA64 machine (rx4640). When i try to run the examples
i got the follwing error:

root@zehu02:/opt/rrdtool/share/rrdtool/examples >./stripes.pl
./stripes.pl: unable to create `random.rrd': start time: unparsable time:
root@zehu02:/opt/rrdtool/share/rrdtool/examples >

Is there a workaround for this problem?

Yours sincerely Boris

Make the python bindings object-oriented

When will there be an object oriented py-rrdtool?

It's terrebly hard to code with the way the python bindings are built.

Sure, for a custom script it's more than enough, but if you're trying to build a dynamic python app that uses rrdtool, hell it's extremely hard!

As an example take a look at [http://projects.adytum.us/tracs/PyRRD PyRRD], a wrapper
on top of rrdtool, that is suposed to some day support the python bindings. Right now it passes everything to '''subprocess.Popen''' and does not escape '(' and ')' for
example, nor does it support '''"a title with spaces"''', another example. It's extremely imature, but it's the way this bindings should go I think.

Thanks for the job done so far...

alter rrd database

hi,

i'm going to alter my rrd file. if i run rrdtool resize ... , i can grow or shrink the numbers RRA rows.
is there any alternative to resize the number of data sources? if it is necessary, i like to add a new data source or to cancel an old data source? and last but not least, is it possible to change the order/sequence of existent data sources.

thanks, sierra.

silence default output when using --imginfo

I am using RRDTool from within a PHP-script to have it generate the graph on demand. Most of the examples I have found use a '-' as a filename. While this works however it totally nullifies the '--lazy' option which is there for a reason :). So I have decided to have RRDTool create an image and use the '--imginfo' for file output. The PHP code would look like:

fpassthru(popen($rrdtool . $command, "r"));

This prints the output of rrdtool to stdout. While this works, the problem is that RRDTool also prints the image size on stdout, which is imho totally unecessary with the flag, rendering it pretty unusable. I had to get past it by filtering the image size:

{{{
$pp = popen($rrdtool . $command, "r");
while (!feof($pp)) {$line = stream_get_line($pp, 4096);}
pclose($pp);
return preg_replace("/\d{1,4}x\d{1,4}/", "", $line);
}}}

I think the following should happen:

{{{
filename= - : print raw image to stdout as it is now
filename= something: print image size to stdout as it is now
filename= something --imginfo bla: print 'bla' to stdout
}}}

logaritmic graph of zero values

Hi,

I have a byte counter, which sometimes does not increase, so the differential value is sometimes zero. But for the non-zero values I'd like to have a logarithmic graph. But when using option --logarithmic, the graph is just empty, containing no values at all. I guess that this occurs because logarithm for zero is not defined, the graph seams to become completely invalid. I'd propose to treat logarithm of zero just as a single NaN value.

regards
Hadmut

Spikes with GAUGE type DS after undefined values.

The value of an GAUGE type DS often shows spikes after a period with undefined values. The error is sometimes quite significant and messes autoscaling of graphs.

I tried reproducing this with a small sample script where data was entered in the RRD with fixed times (instead of 'N') but the problem did not occur. However entering the same data with 'N' as time (and sleeps between the updates) shows the problem. Some debugging showed that the problem seems to be some miscalculation when times with subsecond resolution are used. This happens only with 'N' as a fixed time always sets the usec part of the used time to 0.

1.2.12 and current SVN show identical behavior.

If it matters (Compiler as shipped with SuSE 10.0):

{{{

gcc -v

Using built-in specs.
Target: x86_64-suse-linux
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,f95,java,ada --disable-checking --with-gxx-include-dir=/usr/include/c++/4.0.2 --enable-java-awt=gtk --disable-libjava-multilib --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit --without-system-libunwind --host=x86_64-suse-linux
Thread model: posix
gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)
}}}

Sample script and output showing the problem:

{{{

!/bin/sh

rm test.rrd
RRDBIN=./program/src/rrdtool
$RRDBIN create test.rrd --step 60 DS:t:GAUGE:120:U:U RRA:AVERAGE:0.5:1:60 RRA:AVERAGE:0.5:15:60
$RRDBIN update test.rrd N:10
sleep 60
$RRDBIN update test.rrd N:10
sleep 60
$RRDBIN update test.rrd N:10
sleep 130
$RRDBIN update test.rrd N:10
sleep 60
$RRDBIN update test.rrd N:10
$RRDBIN fetch test.rrd AVERAGE -r1 -s -15min

1146634320: nan
1146634380: nan
1146634440: nan
1146634500: nan
1146634560: nan
1146634620: nan
1146634680: nan
1146634740: nan
1146634800: nan
1146634860: nan
1146634920: 1.0000000000e+01
1146634980: 1.0000000000e+01
1146635040: nan
1146635100: nan
1146635160: 1.0145542812e+01 <=========== Here is the wrong value.
1146635220: nan

}}}

The actual result is highly timing dependent (multiple runs will show different
values).

Andreas

Smokeping problem

Hi
I m basicaly trying to run smokeping on Linux using rrdtool-1.0.49.My each and every configuration according to my level best is rite including smokeping.cgi, smokeping.conf and all the lib paths defined are correct.But smokeping.cgi is not creating html page for smokeping graph.Whenever i compile smokeping.conf file, it gives me error,
/usr/local/bin/perl: error while loading shared libraries: /usr/local/rrdtool-1.0.49/lib/perl/auto/RRDs/RRDs.so: undefined symbol: Perl_Gthr_key_ptr

I have searched a lot about it on net but nothing work out.Kindly help me in this regard.

Labels with SI units for logarithmic graphs

For logarithmic graphs, it would be nice to have Y-axis labels with proper SI units instead of floating point numbers. The patch included below does this (patch for src/rrd_graph.c against release 1.2.12).

{{{
diff -aur 1.2.12/rrd_graph.c 1.2.12-new/rrd_graph.c
--- 1.2.12/rrd_graph.c 2005-12-18 21:30:45.000000000 +0100
+++ 1.2.12-new/rrd_graph.c 2006-04-20 15:19:56.000000000 +0200
@@ -312,14 +312,8 @@
}

-/* find SI magnitude symbol for the numbers on the y-axis*/
-void
-si_unit(

  • image_desc_t im / image description */
    -)
    -{
  • char symbol[] = {'a', /* 10e-18 Atto */
    +static char si_symbol[] = {
  •                'a', /\* 10e-18 Atto _/
                 'f', /_ 10e-15 Femto _/
                 'p', /_ 10e-12 Pico _/
                 'n', /_ 10e-9  Nano _/
    
    @@ -331,9 +325,17 @@
    'G', /_ 10e9 Giga /
    'T', /
    10e12 Tera /
    'P', /
    10e15 Peta */
  •                'E'};/\* 10e18  Exa */
    
  •                'E', /\* 10e18  Exa _/
    
    +};
    +const static int si_symbcenter = 6;
    +
    +/_ find SI magnitude symbol for the numbers on the y-axis*/
    +void
    +si_unit(
  • image_desc_t im / image description */
    +)
    +{
  • int symbcenter = 6;
    double digits,viewdigits=0;

digits = floor( log( max( fabs(im->minval),fabs(im->maxval)))/log((double)im->base));
@@ -353,9 +355,9 @@

im->viewfactor = im->magfact / pow((double)im->base , viewdigits);

  • if ( ((viewdigits+symbcenter) < sizeof(symbol)) &&
  •               ((viewdigits+symbcenter) >= 0) )
    
  •    im->symbol = symbol[(int)viewdigits+symbcenter];
    
  • if ( ((viewdigits+si_symbcenter) < sizeof(si_symbol)) &&
  •               ((viewdigits+si_symbcenter) >= 0) )
    
  •    im->symbol = si_symbol[(int)viewdigits+si_symbcenter];
    

    else
    im->symbol = '?';
    }
    @@ -1737,8 +1739,19 @@
    X1+2,Y0,
    MGRIDWIDTH, im->graph_col[GRC_MGRID],
    im->grid_dash_on, im->grid_dash_off);

  •      sprintf(graph_label,"%3.0e",value \* yloglab[majoridx][i]);
    
  •      double pvalue = value \* yloglab[majoridx][i];
    
  •      double scale = floor( log10( fabs(pvalue)) / 3);
    
  •      pvalue /= pow(10, 3*scale);
    
  •      char symbol;
    
  •      if ( ((scale+si_symbcenter) < sizeof(si_symbol)) &&
    
  •           ((scale+si_symbcenter) >= 0) )
    
  •         symbol = si_symbol[(int)scale+si_symbcenter];
    
  •      else
    
  •         symbol = '?';
    
  •      sprintf(graph_label,"%3.0f %c", pvalue, symbol);
       gfx_new_text ( im->canvas,
                      X0-im->text_prop[TEXT_PROP_AXIS].size, Y0,
                      im->graph_col[GRC_FONT],
    
    }}}

Smoke ping problem using rrd tool

Hi I m basicaly trying to run smokeping on Linux using rrdtool-1.0.49.My each and every configuration according to my level best is rite including smokeping.cgi, smokeping.conf and all the lib paths defined are correct.But smokeping.cgi is not creating html page for smokeping graph.Whenever i compile smokeping.conf file, it gives me error, /usr/local/bin/perl: error while loading shared libraries: /usr/local/rrdtool-1.0.49/lib/perl/auto/RRDs/RRDs.so: undefined symbol: Perl_Gthr_key_ptr

I have searched a lot about it on net but nothing work out.Kindly help me in this regard.

Unresolved name in examples

I just downloaded and built release 1.2.12 of RRDTool for a Red Hat Enterprise Linux 3 on a pentium platform and the build seemed to go well. But when I try to run the examples I get a message as follows:

/mu/apps/perl/5.8.4/bin/perl: relocation error: /tools/local/stow/stow/rrdtool-1.2/lib/perl/5.8.4/i686-linux-thread-multi/auto/RRDs/RRDs.so: undefined symbol: rrd_clear_error

But I find it defined in librrd.so and in librrd_th.so and these are located in the LD_LIBRARY_PATH that everything else seems to use just fine. So I am confused. Is this a bug, or is this my error? Any advice?

Output from an nm run follows:

nm -C librrd.so | grep -i rrd_clear_error
00020d40 T rrd_clear_error

nm -C librrd_th.so | grep -i rrd_clear_error
00020ea0 T rrd_clear_error

Problem fetching

Hi,

here's my problem:

I have this file

ls -l
total 70568
-rw-r--r-- 1 torrus torrus 2322472 Apr 25 08:10 10.254.123.3_eth0.31_FW1-if-mib.rrd

the RRD info :

[torrus@milan cfdpe]$ /usr/local/rrdtool-1.2.11/bin/rrdtool info 10.254.123.3_eth2.136_FW1-if-mib.rrd
filename = "10.254.123.3_eth2.136_FW1-if-mib.rrd"
rrd_version = "0003"
'''step = 300
last_update = 1145968511'''
ds[fwAcceptBytesIn].type = "COUNTER"
ds[fwAcceptBytesIn].minimal_heartbeat = 500
ds[fwAcceptBytesIn].min = 0.0000000000e+00
ds[fwAcceptBytesIn].max = NaN
ds[fwAcceptBytesIn].last_ds = "0"
ds[fwAcceptBytesIn].value = 0.0000000000e+00
ds[fwAcceptBytesIn].unknown_sec = 0
ds[fwAcceptBytesOut].type = "COUNTER"
ds[fwAcceptBytesOut].minimal_heartbeat = 500
ds[fwAcceptBytesOut].min = 0.0000000000e+00
ds[fwAcceptBytesOut].max = NaN
ds[fwAcceptBytesOut].last_ds = "0"
ds[fwAcceptBytesOut].value = 0.0000000000e+00
ds[fwAcceptBytesOut].unknown_sec = 0
ds[fwAcceptPcktsIn].type = "COUNTER"
ds[fwAcceptPcktsIn].minimal_heartbeat = 500
ds[fwAcceptPcktsIn].min = 0.0000000000e+00
ds[fwAcceptPcktsIn].max = NaN
ds[fwAcceptPcktsIn].last_ds = "0"
ds[fwAcceptPcktsIn].value = 0.0000000000e+00
ds[fwAcceptPcktsIn].unknown_sec = 0
ds[fwAcceptPcktsOut].type = "COUNTER"
ds[fwAcceptPcktsOut].minimal_heartbeat = 500
ds[fwAcceptPcktsOut].min = 0.0000000000e+00
ds[fwAcceptPcktsOut].max = NaN
ds[fwAcceptPcktsOut].last_ds = "4"
ds[fwAcceptPcktsOut].value = 0.0000000000e+00
ds[fwAcceptPcktsOut].unknown_sec = 0
ds[fwDropPcktsIn].type = "COUNTER"
ds[fwDropPcktsIn].minimal_heartbeat = 500
ds[fwDropPcktsIn].min = 0.0000000000e+00
ds[fwDropPcktsIn].max = NaN
ds[fwDropPcktsIn].last_ds = "0"
ds[fwDropPcktsIn].value = 0.0000000000e+00
ds[fwDropPcktsIn].unknown_sec = 0
ds[fwDropPcktsOut].type = "COUNTER"
ds[fwDropPcktsOut].minimal_heartbeat = 500
ds[fwDropPcktsOut].min = 0.0000000000e+00
ds[fwDropPcktsOut].max = NaN
ds[fwDropPcktsOut].last_ds = "0"
ds[fwDropPcktsOut].value = 0.0000000000e+00
ds[fwDropPcktsOut].unknown_sec = 0
ds[fwLogIn].type = "COUNTER"
ds[fwLogIn].minimal_heartbeat = 500
ds[fwLogIn].min = 0.0000000000e+00
ds[fwLogIn].max = NaN
ds[fwLogIn].last_ds = "0"
ds[fwLogIn].value = 0.0000000000e+00
ds[fwLogIn].unknown_sec = 0
ds[fwLogOut].type = "COUNTER"
ds[fwLogOut].minimal_heartbeat = 500
ds[fwLogOut].min = 0.0000000000e+00
ds[fwLogOut].max = NaN
ds[fwLogOut].last_ds = "2"
ds[fwLogOut].value = 0.0000000000e+00
ds[fwLogOut].unknown_sec = 0
ds[fwRejectPcktsIn].type = "COUNTER"
ds[fwRejectPcktsIn].minimal_heartbeat = 500
ds[fwRejectPcktsIn].min = 0.0000000000e+00
ds[fwRejectPcktsIn].max = NaN
ds[fwRejectPcktsIn].last_ds = "0"
ds[fwRejectPcktsIn].value = 0.0000000000e+00
ds[fwRejectPcktsIn].unknown_sec = 0
ds[fwRejectPcktsOut].type = "COUNTER"
ds[fwRejectPcktsOut].minimal_heartbeat = 500
ds[fwRejectPcktsOut].min = 0.0000000000e+00
ds[fwRejectPcktsOut].max = NaN
ds[fwRejectPcktsOut].last_ds = "0"
ds[fwRejectPcktsOut].value = 0.0000000000e+00
ds[fwRejectPcktsOut].unknown_sec = 0
rra[0].cf = "AVERAGE"
'''rra[0].rows = 25932
rra[0].pdp_per_row = 1'''
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[0].cdp_prep[1].value = NaN
rra[0].cdp_prep[1].unknown_datapoints = 0
rra[0].cdp_prep[2].value = NaN
rra[0].cdp_prep[2].unknown_datapoints = 0
rra[0].cdp_prep[3].value = NaN
rra[0].cdp_prep[3].unknown_datapoints = 0
rra[0].cdp_prep[4].value = NaN
rra[0].cdp_prep[4].unknown_datapoints = 0
rra[0].cdp_prep[5].value = NaN
rra[0].cdp_prep[5].unknown_datapoints = 0
rra[0].cdp_prep[6].value = NaN
rra[0].cdp_prep[6].unknown_datapoints = 0
rra[0].cdp_prep[7].value = NaN
rra[0].cdp_prep[7].unknown_datapoints = 0
rra[0].cdp_prep[8].value = NaN
rra[0].cdp_prep[8].unknown_datapoints = 0
rra[0].cdp_prep[9].value = NaN
rra[0].cdp_prep[9].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 600
rra[1].pdp_per_row = 24
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = 0.0000000000e+00
rra[1].cdp_prep[0].unknown_datapoints = 0
rra[1].cdp_prep[1].value = 0.0000000000e+00
rra[1].cdp_prep[1].unknown_datapoints = 0
rra[1].cdp_prep[2].value = 0.0000000000e+00
rra[1].cdp_prep[2].unknown_datapoints = 0
rra[1].cdp_prep[3].value = 0.0000000000e+00
rra[1].cdp_prep[3].unknown_datapoints = 0
rra[1].cdp_prep[4].value = 0.0000000000e+00
rra[1].cdp_prep[4].unknown_datapoints = 0
rra[1].cdp_prep[5].value = 0.0000000000e+00
rra[1].cdp_prep[5].unknown_datapoints = 0
rra[1].cdp_prep[6].value = 0.0000000000e+00
rra[1].cdp_prep[6].unknown_datapoints = 0
rra[1].cdp_prep[7].value = 0.0000000000e+00
rra[1].cdp_prep[7].unknown_datapoints = 0
rra[1].cdp_prep[8].value = 0.0000000000e+00
rra[1].cdp_prep[8].unknown_datapoints = 0
rra[1].cdp_prep[9].value = 0.0000000000e+00
rra[1].cdp_prep[9].unknown_datapoints = 0
rra[2].cf = "AVERAGE"
rra[2].rows = 600
rra[2].pdp_per_row = 288
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = 0.0000000000e+00
rra[2].cdp_prep[0].unknown_datapoints = 0
rra[2].cdp_prep[1].value = 0.0000000000e+00
rra[2].cdp_prep[1].unknown_datapoints = 0
rra[2].cdp_prep[2].value = 0.0000000000e+00
rra[2].cdp_prep[2].unknown_datapoints = 0
rra[2].cdp_prep[3].value = 0.0000000000e+00
rra[2].cdp_prep[3].unknown_datapoints = 0
rra[2].cdp_prep[4].value = 0.0000000000e+00
rra[2].cdp_prep[4].unknown_datapoints = 0
rra[2].cdp_prep[5].value = 0.0000000000e+00
rra[2].cdp_prep[5].unknown_datapoints = 0
rra[2].cdp_prep[6].value = 0.0000000000e+00
rra[2].cdp_prep[6].unknown_datapoints = 0
rra[2].cdp_prep[7].value = 0.0000000000e+00
rra[2].cdp_prep[7].unknown_datapoints = 0
rra[2].cdp_prep[8].value = 0.0000000000e+00
rra[2].cdp_prep[8].unknown_datapoints = 0
rra[2].cdp_prep[9].value = 0.0000000000e+00
rra[2].cdp_prep[9].unknown_datapoints = 0
rra[3].cf = "AVERAGE"
rra[3].rows = 600
rra[3].pdp_per_row = 6
rra[3].xff = 5.0000000000e-01
rra[3].cdp_prep[0].value = 0.0000000000e+00
rra[3].cdp_prep[0].unknown_datapoints = 0
rra[3].cdp_prep[1].value = 0.0000000000e+00
rra[3].cdp_prep[1].unknown_datapoints = 0
rra[3].cdp_prep[2].value = 0.0000000000e+00
rra[3].cdp_prep[2].unknown_datapoints = 0
rra[3].cdp_prep[3].value = 0.0000000000e+00
rra[3].cdp_prep[3].unknown_datapoints = 0
rra[3].cdp_prep[4].value = 0.0000000000e+00
rra[3].cdp_prep[4].unknown_datapoints = 0
rra[3].cdp_prep[5].value = 0.0000000000e+00
rra[3].cdp_prep[5].unknown_datapoints = 0
rra[3].cdp_prep[6].value = 0.0000000000e+00
rra[3].cdp_prep[6].unknown_datapoints = 0
rra[3].cdp_prep[7].value = 0.0000000000e+00
rra[3].cdp_prep[7].unknown_datapoints = 0
rra[3].cdp_prep[8].value = 0.0000000000e+00
rra[3].cdp_prep[8].unknown_datapoints = 0
rra[3].cdp_prep[9].value = 0.0000000000e+00
rra[3].cdp_prep[9].unknown_datapoints = 0
rra[4].cf = "MAX"
rra[4].rows = 600
rra[4].pdp_per_row = 24
rra[4].xff = 5.0000000000e-01
rra[4].cdp_prep[0].value = 0.0000000000e+00
rra[4].cdp_prep[0].unknown_datapoints = 0
rra[4].cdp_prep[1].value = 0.0000000000e+00
rra[4].cdp_prep[1].unknown_datapoints = 0
rra[4].cdp_prep[2].value = 0.0000000000e+00
rra[4].cdp_prep[2].unknown_datapoints = 0
rra[4].cdp_prep[3].value = 0.0000000000e+00
rra[4].cdp_prep[3].unknown_datapoints = 0
rra[4].cdp_prep[4].value = 0.0000000000e+00
rra[4].cdp_prep[4].unknown_datapoints = 0
rra[4].cdp_prep[5].value = 0.0000000000e+00
rra[4].cdp_prep[5].unknown_datapoints = 0
rra[4].cdp_prep[6].value = 0.0000000000e+00
rra[4].cdp_prep[6].unknown_datapoints = 0
rra[4].cdp_prep[7].value = 0.0000000000e+00
rra[4].cdp_prep[7].unknown_datapoints = 0
rra[4].cdp_prep[8].value = 0.0000000000e+00
rra[4].cdp_prep[8].unknown_datapoints = 0
rra[4].cdp_prep[9].value = 0.0000000000e+00
rra[4].cdp_prep[9].unknown_datapoints = 0
rra[5].cf = "MAX"
rra[5].rows = 600
rra[5].pdp_per_row = 288
rra[5].xff = 5.0000000000e-01
rra[5].cdp_prep[0].value = 0.0000000000e+00
rra[5].cdp_prep[0].unknown_datapoints = 0
rra[5].cdp_prep[1].value = 0.0000000000e+00
rra[5].cdp_prep[1].unknown_datapoints = 0
rra[5].cdp_prep[2].value = 0.0000000000e+00
rra[5].cdp_prep[2].unknown_datapoints = 0
rra[5].cdp_prep[3].value = 0.0000000000e+00
rra[5].cdp_prep[3].unknown_datapoints = 0
rra[5].cdp_prep[4].value = 0.0000000000e+00
rra[5].cdp_prep[4].unknown_datapoints = 0
rra[5].cdp_prep[5].value = 0.0000000000e+00
rra[5].cdp_prep[5].unknown_datapoints = 0
rra[5].cdp_prep[6].value = 0.0000000000e+00
rra[5].cdp_prep[6].unknown_datapoints = 0
rra[5].cdp_prep[7].value = 0.0000000000e+00
rra[5].cdp_prep[7].unknown_datapoints = 0
rra[5].cdp_prep[8].value = 0.0000000000e+00
rra[5].cdp_prep[8].unknown_datapoints = 0
rra[5].cdp_prep[9].value = 0.0000000000e+00
rra[5].cdp_prep[9].unknown_datapoints = 0

when I fetch with this :

/usr/local/rrdtool-1.2.11/bin/rrdtool fetch 10.254.123.3_eth2.136_FW1-if-mib.rrd AVERAGE -s 1145851200 -e 1145937300
fwAcceptBytesIn fwAcceptBytesOut fwAcceptPcktsIn fwAcceptPcktsOut fwDropPcktsIn fwDropPcktsOut fwLogIn fwLogOut fwRejectPcktsIn fwRejectPcktsOut

1145853000: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145854800: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145856600: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145858400: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145860200: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00

I get step of 1800 seconds but when I dump the file I see all datapoint in incrments of 300 seconds but when I pass this :

[torrus@milan cfdpe]$ /usr/local/rrdtool-1.2.11/bin/rrdtool fetch 10.254.123.3_eth2.136_FW1-if-mib.rrd AVERAGE -s 1145851200 -e 1145937300-4h
fwAcceptBytesIn fwAcceptBytesOut fwAcceptPcktsIn fwAcceptPcktsOut fwDropPcktsIn fwDropPcktsOut fwLogIn fwLogOut fwRejectPcktsIn fwRejectPcktsOut

1145851500: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145851800: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145852100: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145852400: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
1145852700: 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.000000000

I get the result in increments of 300 seconds???
If I ask for less equal 20h it works fine but when I ask for 24h it doesn't work! Strangely, I'm in GMT-5, and since we are in advanced time it is GMT-4 I don't know if it is related but...

Thanks for taking care,

Eric
[email protected]

Creating graphs wider than 20000

Hi there

I am trying to create some very wide graphs, ie greater than 20000 pixels, but when I try this I get the following error

ERROR: failed to load c:\WINDOWS\fonts\cour.ttf

I am using RRDTool rrdtool-1.2.10 on Windows XP. My command line script is

rrdtool graph wibble.png --start -604800 --end -1 --width 20000 --height 200 DEF:inOct=iconPIX.rrd:inOcts:LAST DEF:outOct=iconPIX.rrd:outOcts:LAST CDEF:inoctetsc=inOct,10,/,8,,1000,/ CDEF:outoctetsc=outOct,10,/,8,,1000,/ AREA:inoctetsc#FF0000:InOctets LINE1:outoctetsc#00FF00:OutOctets

Do you have any ideas what this might be, the graph does get created but only contains the first 4 labels on the y-axis.

Thanks for your time

Richard Burton

Python Bindings and Newlines not working?

I've seem to have found a problem when using the python bindings. Somewhere on the docs I saw that we could add '''\n''' to break the legend lines. Here's my graph code.
{{{

!python

print "Creating Graphs..."
n = 0
tspan, tname = ('-1h', '-1d', '-1w', '-1y'),
('hour', 'day', 'week', 'year')
while n < 4:
rrdtool.graph(PNG_PATH + PNG_NAME + "-" + tname[n] + PNG_EXT,
'--imgformat', 'PNG',
'--width', '600',
'--height', '200',
'--start', tspan[n],
'--vertical-label', str('Temperature (' + chr(176) + 'C)'),
'--title', 'Various System Temperatures',
'--lower-limit', '0',
'DEF:HDAtemp=temperatures.rrd:HDAtemp:AVERAGE',
'DEF:HDCtemp=temperatures.rrd:HDCtemp:AVERAGE',
'DEF:SYStemp=temperatures.rrd:SYStemp:AVERAGE',
'DEF:CPUtemp=temperatures.rrd:CPUtemp:AVERAGE',
'DEF:MBtemp=temperatures.rrd:MBtemp:AVERAGE',
'LINE1:SYStemp#ff46c9:System(Inside Case)\n',
'LINE1:MBtemp#88aa33:Mother Board\n',
'LINE1:CPUtemp#3578bd:CPU\n',
'LINE1:HDAtemp#ff6236:HDA\n',
'LINE1:HDCtemp#ffd801:HDC',
)
n += 1
}}}

RPM build errors (file not found) & patch

{{{

wget http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.2.13.tar.gz

rpmbuild -tb rrdtool-1.2.13.tgz

[..snip..]
RPM build errors:
File not found: /var/tmp/rrdtool-1.2.13-1.test-root/usr/examples

Solved by removing line 146, which says:
%exclude %{_prefix}/examples/

Patch:

diff -u rrdtool-1.2.13/rrdtool.spec rrdtool-1.2.13_cox/rrdtool.spec

--- rrdtool-1.2.13/rrdtool.spec 2006-05-04 15:26:29.000000000 +0200
+++ rrdtool-1.2.13_cox/rrdtool.spec 2006-06-14 15:36:45.000000000 +0200
@@ -143,7 +143,6 @@
%{perl_vendorlib}/RRDp.pm
%{perl_vendorarch}/RRDs.pm
%{perl_vendorarch}/auto/RRDs/
-%exclude %{_prefix}/examples/

%if %{!?_without_python:1}0
%files -n python-rrdtool
}}}

rrdtool 1.2.12 does not properly compile with Cygwin

I tried to compile the rrdtool 1.2.12 source code on XP with the latest Cygwin and it failed. First I updated my local SVN copy and got "Updated to revision 732." Then I ran the 'makemakefile' which had a bunch of errors/warnings:

{{{
$ makemakefile
libtool --version = 1.5.20 (expected 1.5.14)
automake --version = 1.9.6 (expected 1.9.5)
autoconf --version = 2.59 (expected 2.59)

  • find . -name Makefile
  • xargs rm -f UNKNONW
  • find . -name '*.la'
  • xargs rm -f
  • find . -name Makefile.in
  • xargs rm -f UNKNONW
  • find . -name .libs
  • xargs rm -r
    rm: missing operand
    Try `rm --help' for more information.
  • find . -name .debs
  • xargs rm -r
    rm: missing operand
    Try `rm --help' for more information.
  • aclocal
    /usr/share/aclocal/libsmi.m4:8: warning: underquoted definition of AM_PATH_LIBSMI
    run info '(automake)Extending aclocal'
    or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
    /usr/share/aclocal/cppunit.m4:4: warning: underquoted definition of AM_PATH_CPPUNIT
    configure.ac:573: error: `examples/shared-demo.pl' is already registered with AC_CONFIG_FI
    LES.
    autoconf/status.m4:848: AC_CONFIG_FILES is expanded from...
    configure.ac:573: the top level
    autom4te-2.5x: /usr/bin/m4 failed with exit status: 1
    aclocal: autom4te failed with exit status: 1
  • libtoolize --copy --force
  • autoheader --warnings=all --force
    configure.ac:573: error: `examples/shared-demo.pl' is already registered with AC_CONFIG_FI
    LES.
    autoconf/status.m4:848: AC_CONFIG_FILES is expanded from...
    configure.ac:573: the top level
    autom4te-2.5x: /usr/bin/m4 failed with exit status: 1
    autoheader-2.5x: /usr/bin/autom4te-2.5x failed with exit status: 1
  • aclocal
    /usr/share/aclocal/libsmi.m4:8: warning: underquoted definition of AM_PATH_LIBSMI
    run info '(automake)Extending aclocal'
    or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
    /usr/share/aclocal/cppunit.m4:4: warning: underquoted definition of AM_PATH_CPPUNIT
    configure.ac:573: error: `examples/shared-demo.pl' is already registered with AC_CONFIG_FI
    LES.
    autoconf/status.m4:848: AC_CONFIG_FILES is expanded from...
    configure.ac:573: the top level
    autom4te-2.5x: /usr/bin/m4 failed with exit status: 1
    aclocal: autom4te failed with exit status: 1
  • automake --foreign --add-missing --force-missing --copy --warnings=all
    configure.ac:573: error: `examples/shared-demo.pl' is already registered with AC_CONFIG_FI
    LES.
    autoconf/status.m4:848: AC_CONFIG_FILES is expanded from...
    configure.ac:573: the top level
    autom4te-2.5x: /usr/bin/m4 failed with exit status: 1
    automake: autoconf failed with exit status: 1
  • autoconf --warnings=all --force
    configure.ac:573: error: `examples/shared-demo.pl' is already registered with AC_CONFIG_FI
    LES.
    autoconf/status.m4:848: AC_CONFIG_FILES is expanded from...
    configure.ac:573: the top level
    autom4te-2.5x: /usr/bin/m4 failed with exit status: 1
  • autoreconf
    /usr/share/aclocal/libsmi.m4:8: warning: underquoted definition of AM_PATH_LIBSMI
    run info '(automake)Extending aclocal'
    or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
    /usr/share/aclocal/cppunit.m4:4: warning: underquoted definition of AM_PATH_CPPUNIT
    configure.ac:573: error: `examples/shared-demo.pl' is already registered with AC_CONFIG_FI
    LES.
    autoconf/status.m4:848: AC_CONFIG_FILES is expanded from...
    configure.ac:573: the top level
    autom4te-2.5x: /usr/bin/m4 failed with exit status: 1
    aclocal: autom4te failed with exit status: 1
    autoreconf-2.5x: aclocal failed with exit status: 1
    }}}

Then when I tried to make rrdtool with the option "./configure --disable-tcl --disable-perl --disable-python --enable-mmap", it eventually died with:
{{{
checking if we can use GCC-specific compiler options... yes
checking if realloc can deal with NULL... yes
configure: creating ./config.status
config.status: creating examples/shared-demo.pl
config.status: creating examples/piped-demo.pl
config.status: creating examples/stripes.pl
config.status: creating examples/bigtops.pl
config.status: creating examples/minmax.pl
config.status: creating examples/cgi-demo.cgi
config.status: creating examples/4charts.pl
config.status: creating examples/Makefile
config.status: error: cannot find input file: examples/Makefile.in
}}}

rrdtool dump and restore not compatible

Hello
I am trying to move rrd files from one machine to another. Unfortunaletly the Old machine has version 1.0.40 of rrdtool whereas the new machine has 1.2.12. Plus the old machine is running linux and the new machine is AIX !

My first problem related to the different platforms so a straight copy was out of the question. Then I "found" dump and restore. Now I am receiving the error messages :-
'''ERROR: Can only restore version >= 2 (Not 0001). Dump your old rrd using a current rrdtool dump.'''

I have now got a third machine [linux] with rrdtool version 1.0.40 and 1.2.12 I was hoping a combination of one version of dump and a different version of restore would help - not as yet. Does anyone know the correct version I will need to convert the "old" files into "new" ones ?

Thanks for any help meanwhile I'll keep downloading different versions.

Gradients Support

How about naturaly supporting gradients, so we could build graphs with grading colours, like the one seen [http://www.krogloth.de/rrd/howtos/grading/ here].

A sintax more or less like '''GradingArea:Value:StartColour:EndColour:PercentWhereToBeginGrading:[Legend]....'''

Is it possible to correct data in rra files afterwards ?

Hello,

I need to correct some values in some rras. I have some values already entered in my rra which I need to correct using a script;
When I issue the rrdtool update statement I get illegal attempt to update using time 1138269000 when last update time is 1138269002 (minimum one second step).

But I need to correct the value for timestamp 1138269000 or 1138269002 which is false. How can I force rrdtool to accept this update and replace the existing value ?
Thanks.
Stephane

rrdtool fetch and graph bug

If I want to retrieve one value from rrd using fetch command I must speficy same start and end point.

Version is 1.2.11:

That works always except on full minute:

Example from bash prompt:

{{{

date;rrdtool fetch Akira.rrd AVERAGE -s now-3min -e now-3min

Sat Apr 1 17:03:57 CEST 2006
in out

1143903660: 1.1392930017e+06 1.2831499093e+05

date;rrdtool fetch Akira.rrd AVERAGE -s now-3min -e now-3min

Sat Apr 1 17:04:00 CEST 2006
in out

date;rrdtool fetch Akira.rrd AVERAGE -s now-3min -e now-3min

Sat Apr 1 17:04:01 CEST 2006
in out

1143903720: 1.2016885683e+06 1.3250587167e+05

date;rrdtool fetch Akira.rrd AVERAGE -s now-3min -e now-3min

Sat Apr 1 17:04:02 CEST 2006
in out

1143903720: 1.2016885683e+06 1.3250587167e+05

}}}

Notice how second attempt, which is executed on full minute, means 00 seconds, doesn't give any output. For all others, it works fine.

Hrvoje

rrd graph draws incorrect multi-byte letters

I tryed to draw a graph with Japanese letters on FreeBSD ports,
but rrd graph drawed incorrect letters,
because mbstowcs requires correct locale on LC_CTYPE.
So, following patch make rrd graph draw correct letters.

{{{
*** src/rrd_graph.c.orig Mon Dec 19 05:30:45 2005
--- src/rrd_graph.c Mon Mar 6 02:41:46 2006


*** 2872,2877 ****
--- 2872,2880 ----
#endif
#ifdef HAVE_SETLOCALE
setlocale(LC_TIME,"");

  • #ifdef HAVE_MBSTOWCS
  • setlocale(LC_CTYPE,"");
  • #endif
    #endif
    im->yorigin=0;
    im->xorigin=0;
    }}}

Port RRDtool from libart to Cairo

It seems that everybody is loosing interest in libart. So we should look at this too. I guess Cairo is going to be king of the hill for some time, so for 1.3 I am looking at switching toolkit again.

rrd_update &#34;illegal attempt to update using time...&#34; error

rrdtool 1.2.13, calling rrd_update_r from my monitoring tool, here src:
{{{

!c

res=rrd_update_r(fn,NULL,1,args);
printf("RRD update done, res=%d\n",res);
if(rrd_test_error()) {
  printf("RRD err=%s\n",rrd_get_error());
  slog(LOG_ERR,"RRD IFACE i_%d_%d err=%s",S->hid,S->id,rrd_get_error());
  slog(LOG_ERR,"RRD last %lu BUF %s",rrd_last_r(fn),buf); // get last update
}

}}}
after some time it does not like to update any rrd's. In log I get such errors:
{{{
Jun 1 21:12:11 alpha np[20679]: RRD IFACE i_8_40 err=illegal attempt to update using time 1149181599 when last update time is 1149181599 (minimum one second step)
Jun 1 21:12:11 alpha np[20679]: RRD last 1149181515 BUF N:1949149680:35283880:1918763:12603:0:0:0:0
Jun 1 21:12:11 alpha np[20675]: RRD IFACE i_9_53 err=illegal attempt to update using time 1149181635 when last update time is 1149181635 (minimum one second step)
Jun 1 21:12:11 alpha np[20675]: RRD last 1149181617 BUF N:1122480568:3759986784:15605841:11200157:0:0:0:0
}}}
and so on.

But why it does not like to update an rrd ? When I call rrd_last_r it returns right value of the last update (1149181515 for first update in the log), but rrd_update thinks that the last update is N(current time 1149181599).

rpmbuild fails

I am trying to create a rrdtool rpm on a CentOS 4.2 system, I am using
this rpmbuild command:

rpmbuild -ba --define "_smp_mflags -j 1" rrdtool.spec

The rpmbuild fails with this error message:

Checking for unpackaged file(s): /usr/lib/rpm/check-files
/var/tmp/rrdtool-1.2.12-1.test-root
error: Installed (but unpackaged) file(s) found:
/usr/lib
/usr/share/tclrrd1.2.12/ifOctets.tcl
/usr/lib
/usr/share/tclrrd1.2.12/pkgIndex.tcl
/usr/lib/tclrrd1.2.12.so

RPM build errors:
Installed (but unpackaged) file(s) found:
/usr/lib
/usr/share/tclrrd1.2.12/ifOctets.tcl
/usr/lib
/usr/share/tclrrd1.2.12/pkgIndex.tcl
/usr/lib/tclrrd1.2.12.so

After quite some time I have identified the problem:

[root@db01 usr]# pwd
/var/tmp/rrdtool-1.2.12-1.test-root/usr
[root@db01 usr]# ls -la
total 28
drwxr-xr-x 7 root root 4096 Feb 9 03:36 .
drwxr-xr-x 3 root root 4096 Feb 9 03:36 ..
drwxr-xr-x 2 root root 4096 Feb 9 03:36 bin
drwxr-xr-x 2 root root 4096 Feb 9 03:36 include
drwxr-xr-x 4 root root 4096 Feb 9 03:36 lib
drwxr-xr-x 3 root root 4096 Feb 9 03:36 lib
drwxr-xr-x 5 root root 4096 Feb 9 03:36 share

If you look closely there are two "lib" directories, and one of them
has a space in the directory name "lib ".

make may fail if not serialized because of missing dependency on librrd.la

Makfile.am has an explicit rrdtool_DEPENDENCIES definition which omits "librrd.la". Apparently, automake will not override this explicit definition to add the dependency, though it correctly generates the dependencies for the other build targets. If automake configures multiple jobs to run simultaneously, this causes a build failure because the rrdtool build completes before the build of librrd.la does.

Change of rrd fetch behavoir between 1.0.44 - 1.2.11/12

Dear RRD-Heros,

maybe I've missed it in the documentation, but there seems to be a change of rrd fetch function (using http://www.uucp.de/2.rrd as rrd-file):

With 1.0.44:

{{{
rrdtool fetch 2.rrd AVERAGE -s 1138740000 -e 1138740300
IN OUT

1138740000: 5.8121824032e+06 4.8000034057e+07
1138740300: 5.7629471976e+06 4.8127661224e+07
}}}

With 1.2.11/12 (missing first entry):

{{{
rrdtool fetch 2.rrd AVERAGE -s 1138740000 -e 1138740300
IN OUT

1138740300: 5.7551971247e+06 4.7486178939e+07
}}}

But as said, maybe I've just missed a change note. If so, mea culpa.
Cheers, Markus

PS (side note): I've also noticed some changes, when using rrdfetch from PHP (now I get an empty last result), but as this is with php5 instead of php4, rrd-1.2.12 instead of rrd-1.0.44 and another php-rrdtool version, I haven't nailed it down to one of the software components ...

php4 bits in contrib fail to compile w/rrdtool 1.2.13

Trying to add a php-rrdtool sub-package back to the rrdtool packages in the Fedora development tree. The php4 bits build w/1.0.50, but not w/1.2.13:

{{{
[...]
make[1]: Entering directory /data/build/BUILD/rrdtool-1.2.13/php4-svn839' /bin/sh /build/BUILD/rrdtool-1.2.13/php4-svn839/libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I/build/BUILD/rrdtool-1.2.13/php4-svn839/ -I/build/BUILD/rrdtool-1.2.13/php4-svn839 -I/build/BUILD/rrdtool-1.2.13/php4-svn839/main -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/build/tmp/rrdtool-1.2.13-tmpinstall/usr/include -g -O2 -c rrdtool.c && touch rrdtool.slo gcc -DHAVE_CONFIG_H -I. -I/build/BUILD/rrdtool-1.2.13/php4-svn839/ -I/build/BUILD/rrdtool-1.2.13/php4-svn839 -I/build/BUILD/rrdtool-1.2.13/php4-svn839/main -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/build/tmp/rrdtool-1.2.13-tmpinstall/usr/include -g -O2 -c -fPIC -DPIC rrdtool.c -o rrdtool.lo rrdtool.c:43: warning: assignment makes integer from pointer without a cast rrdtool.c:43: error: initializer element is not constant rrdtool.c:43: error: (near initialization for 'rrdtool_module_entry.zend_debug') rrdtool.c:44: warning: assignment makes integer from pointer without a cast rrdtool.c:44: error: initializer element is not constant rrdtool.c:44: error: (near initialization for 'rrdtool_module_entry.zts') rrdtool.c:47: warning: initialization from incompatible pointer type rrdtool.c: In function 'zif_rrd_graph': rrdtool.c:323: error: too few arguments to function 'rrd_graph' make[1]: *** [rrdtool.slo] Error 1 make[1]: Leaving directory/data/build/BUILD/rrdtool-1.2.13/php4-svn839'
make: *** [all-recursive] Error 1
}}}

Less rigid '--rigid' option

I'd like to see an option that would allow autoscaling when the
displayed values were all below upper-limit (or above lower-limit),
but would function like rigid when the limit was reached. For
example, suppose that upper-limit was 100, and we had three datapoints
at 5, 9, 12. The Y axis would go from 0 to 15. If we added three more
points at 20, 27, 35, the Y axis would go to 40. Add three more
points at 50, 90, 120, and the Y axis would go up to 100, and the
final datapoint would be "off the chart".

I'd like this feature because I have several data feeds that have
occasional large spikes. If I don't put in a --rigid limit, a single
datapoint that's 10x the rest of the data will get me a graph with a
bumpy line across the bottom and one big spike. If I put in a --rigid
limit, I can get a decent compromise for the whole dataset, but then
if I look at a period that has no spike, the Y axis goes to a value
that's far too high for the displayed data.

showing %H:%M in a two day presentation was very nice.

This change:

2005-08-30 05:52 oetiker

* src/rrd_graph.c, src/rrd_graph.h: When selecting the x-axis label
  take the length of the time shown in the graph into consideration
  just showing %H:%M in a two day presentation is a problem ... --
  LAUKENS Niels <Niels.LAUKENS .. VRT.BE>

Causes problems on graphs with specific widths dependant on not showing the day.

What is happening now is the 'Day' is shown and now overlapping with all the hh:mm
and it's a garbled unreadable mess.

The new feature above should be an option, not default. As most people reading
graphs can easily understand that the two '12:00' on a graph is today's
and yesterdays ... or what have you. Day is superflous.

Bug in rrd graph function

Hi RRD-Heros,

while graphing http://www.uucp.de/GrApTEMP-11854-p9aGbL.rrd-dump.gz I ran into some minor/major issues:

Graphing it with "-s 1138609200" (or more in the past) shows ugly peaks, while doing it with "-s 1138609500" (5 minutes later) looks ok (both with "-e 1138744800").

Tested with rrdtool 1.0.44 (on Solaris 8, gcc-2.95.2) and rrdtool 1.2.12 (on Solaris 10, gcc-3.4.2), no difference.

If you need more details/information - just let me know.

Hope this is new and easy to fix. Kind regards from Germany, Markus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.