index a2cb903e96a5a6f90a31fbbeb2abadf306d0d4da..a63c74ab38a9e47e0cf19eccc64686624ee8342c 100644 (file)
and process data collected via SNMP. The data will most likely be bytes
(or bits) transfered from and to a network or a computer.
RRDtool lets you create a database, store data in it, retrieve that data
and process data collected via SNMP. The data will most likely be bytes
(or bits) transfered from and to a network or a computer.
RRDtool lets you create a database, store data in it, retrieve that data
-and create graphs in GIF format for display on a web browser. Those GIF
+and create graphs in PNG format for display on a web browser. Those PNG
images are dependent on the data you collected and could be, for instance,
an overview of the average network usage, or the peaks that occurred.
It can also be used to display tidal waves, solar radiation, power
images are dependent on the data you collected and could be, for instance,
an overview of the average network usage, or the peaks that occurred.
It can also be used to display tidal waves, solar radiation, power
Try the following command:
Try the following command:
- rrdtool graph speed.gif \
+ rrdtool graph speed.png \
--start 920804400 --end 920808000 \
DEF:myspeed=test.rrd:speed:AVERAGE \
LINE2:myspeed#FF0000
--start 920804400 --end 920808000 \
DEF:myspeed=test.rrd:speed:AVERAGE \
LINE2:myspeed#FF0000
-This will create speed.gif which starts at 12:00 and ends at 13:00.
+This will create speed.png which starts at 12:00 and ends at 13:00.
There is a definition of variable myspeed, it is the data from RRA
"speed" out of database "test.rrd". The line drawn is 2 pixels high,
and comes from variable myspeed. The color is red.
There is a definition of variable myspeed, it is the data from RRA
"speed" out of database "test.rrd". The line drawn is 2 pixels high,
and comes from variable myspeed. The color is red.
magenta #FF00FF (mixed red with blue)
gray #555555 (one third of all components)
magenta #FF00FF (mixed red with blue)
gray #555555 (one third of all components)
-The GIF you just created can be displayed using your favorite image
-viewer. Web browsers will display the GIF via the URL
-"file://the/path/to/speed.gif"
+The PNG you just created can be displayed using your favorite image
+viewer. Web browsers will display the PNG via the URL
+"file://the/path/to/speed.png"
=head2 Graphics with some math
=head2 Graphics with some math
Let's correct that. We could recreate our database and store the correct
data but there is a better way: do some calculations while creating the
Let's correct that. We could recreate our database and store the correct
data but there is a better way: do some calculations while creating the
-gif file !
+png file !
- rrdtool graph speed2.gif \
+ rrdtool graph speed2.png \
--start 920804400 --end 920808000 \
--vertical-label m/s \
DEF:myspeed=test.rrd:speed:AVERAGE \
--start 920804400 --end 920808000 \
--vertical-label m/s \
DEF:myspeed=test.rrd:speed:AVERAGE \
- CDEF:realspeed=myspeed,1000,* \
+ CDEF:realspeed=myspeed,1000,\* \
LINE2:realspeed#FF0000
LINE2:realspeed#FF0000
-After viewing this GIF, you notice the "m" has disappeared. This it what
+After viewing this PNG, you notice the "m" has disappeared. This it what
the correct result would be. Also, a label has been added to the image.
the correct result would be. Also, a label has been added to the image.
-Apart from the things mentioned above, the GIF should be the same.
+Apart from the things mentioned above, the PNG should be the same.
The calculations are in the CDEF part and are in Reverse Polish Notation
("RPN"). What it says is: "take the data source myspeed and the number
The calculations are in the CDEF part and are in Reverse Polish Notation
("RPN"). What it says is: "take the data source myspeed and the number
this by multiplying with 1000. Applying that correction:
-*- value * 3.6 *1000 == value * 3600
this by multiplying with 1000. Applying that correction:
-*- value * 3.6 *1000 == value * 3600
-Now let's create this GIF, and add some more magic ...
+Now let's create this PNG, and add some more magic ...
- rrdtool graph speed3.gif \
+ rrdtool graph speed3.png \
--start 920804400 --end 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
--start 920804400 --end 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
I like to believe there are virtually no limits to how RRDtool graph
can manipulate data. I will not explain how it works, but look at the
I like to believe there are virtually no limits to how RRDtool graph
can manipulate data. I will not explain how it works, but look at the
-following GIF:
+following PNG:
- rrdtool graph speed4.gif \
+ rrdtool graph speed4.png \
--start 920804400 --end 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
--start 920804400 --end 920808000 \
--vertical-label km/h \
DEF:myspeed=test.rrd:speed:AVERAGE \
AREA:fast#550000:"Too fast" \
STACK:over#FF0000:"Over speed"
AREA:fast#550000:"Too fast" \
STACK:over#FF0000:"Over speed"
-Let's create a quick and dirty HTML page to view three GIFs:
+Let's create a quick and dirty HTML page to view three PNGs:
<HTML><HEAD><TITLE>Speed</TITLE></HEAD><BODY>
<HTML><HEAD><TITLE>Speed</TITLE></HEAD><BODY>
- <IMG src="speed2.gif" alt="Speed in meters per second">
+ <IMG src="speed2.png" alt="Speed in meters per second">
<BR>
<BR>
- <IMG src="speed3.gif" alt="Speed in kilometers per hour">
+ <IMG src="speed3.png" alt="Speed in kilometers per hour">
<BR>
<BR>
- <IMG src="speed4.gif" alt="Traveled too fast?">
+ <IMG src="speed4.png" alt="Traveled too fast?">
</BODY></HTML>
Name the file "speed.html" or similar, and view it.
Now, all you have to do is measure the values regularly and update the
</BODY></HTML>
Name the file "speed.html" or similar, and view it.
Now, all you have to do is measure the values regularly and update the
-database. When you want to view the data, recreate the GIFs and make
+database. When you want to view the data, recreate the PNGs and make
sure to refresh them in your browser. (Note: just clicking reload may
not be enough; Netscape in particular has a problem doing so and you'll
need to click reload while pressing the shift key).
sure to refresh them in your browser. (Note: just clicking reload may
not be enough; Netscape in particular has a problem doing so and you'll
need to click reload while pressing the shift key).
Then, after collecting data for a day, try to create an image using:
Then, after collecting data for a day, try to create an image using:
- rrdtool graph myrouter-day.gif --start -86400 \
+ rrdtool graph myrouter-day.png --start -86400 \
DEF:inoctets=myrouter.rrd:input:AVERAGE \
DEF:outoctets=myrouter.rrd:output:AVERAGE \
AREA:inoctets#00FF00:"In traffic" \
DEF:inoctets=myrouter.rrd:input:AVERAGE \
DEF:outoctets=myrouter.rrd:output:AVERAGE \
AREA:inoctets#00FF00:"In traffic" \
978303300:2400:6:600:2400 \
978303600:2700:4:600:2700 \
978303900:3000:2:1200:3000
978303300:2400:6:600:2400 \
978303600:2700:4:600:2700 \
978303900:3000:2:1200:3000
- rrdtool graph all1.gif -s 978300600 -e 978304200 -h 400 \
+ rrdtool graph all1.png -s 978300600 -e 978304200 -h 400 \
DEF:linea=all.rrd:a:AVERAGE LINE3:linea#FF0000:"Line A" \
DEF:lineb=all.rrd:b:AVERAGE LINE3:lineb#00FF00:"Line B" \
DEF:linec=all.rrd:c:AVERAGE LINE3:linec#0000FF:"Line C" \
DEF:linea=all.rrd:a:AVERAGE LINE3:linea#FF0000:"Line A" \
DEF:lineb=all.rrd:b:AVERAGE LINE3:lineb#00FF00:"Line B" \
DEF:linec=all.rrd:c:AVERAGE LINE3:linec#0000FF:"Line C" \
- Line C: u u 2 2 2 0 -2 -6 2 0 2 u
- Line D: u 1 2 3 4 5 6 7 8 9 10 u
- Line C: u u 2 2 2 0 -2 -6 2 0 2 u
- Line D: u 1 2 3 4 5 6 7 8 9 10 u
-If your GIF shows all this, you know you have typed the data correct,
+If your PNG shows all this, you know you have typed the data correct,
the RRDtool executable is working properly, your viewer doesn't fool you
and you successfully entered the year 2000 :)
You could try the same example four times, each time with only one of
the RRDtool executable is working properly, your viewer doesn't fool you
and you successfully entered the year 2000 :)
You could try the same example four times, each time with only one of
rrdtool update seconds2.rrd \
920805000:000 920805300:300 920805603:603 920805900:900
rrdtool update seconds2.rrd \
920805000:000 920805300:300 920805603:603 920805900:900
- rrdtool graph seconds1.gif \
+ rrdtool graph seconds1.png \
--start 920804700 --end 920806200 \
--height 200 \
--upper-limit 1.05 --lower-limit 0.95 --rigid \
--start 920804700 --end 920806200 \
--height 200 \
--upper-limit 1.05 --lower-limit 0.95 --rigid \
CDEF:unknown=seconds,UN \
LINE2:seconds#0000FF \
AREA:unknown#FF0000
CDEF:unknown=seconds,UN \
LINE2:seconds#0000FF \
AREA:unknown#FF0000
- rrdtool graph seconds2.gif \
+ rrdtool graph seconds2.png \
--start 920804700 --end 920806200 \
--height 200 \
--upper-limit 1.05 --lower-limit 0.95 --rigid \
--start 920804700 --end 920806200 \
--height 200 \
--upper-limit 1.05 --lower-limit 0.95 --rigid \