Monday, December 13, 2004

Pengenalan kepada RRDTool

Pengenalan
RRDTool ialah round robin database tool. Round robin adalah teknik yang menggunakan jumlah data yang tetap dan penunjuk kepada elemen semasa. Maka saiz database tidak akan bertambah dan ianya tidak memerlukan penyelenggaraan. Secara umumnya teknik ini digunakan untuk mengukur nilai pada sesuatu masa tertentu.
RRDTool dibina berdasarkan MRTG (Multi Router Traffic Grapher). MRTG ialah perisian untuk membina graf data connection ke internet. Kemudian ianya berkembang untuk data yang lain seperti suhu, kelajuan, voltan dan lain lain kagi. RRDTool membolehkan pengguna membina pengkalan data, meyimpan dan membina graf untuk dipaparkan melalui we browser.

cara yang terbaik untuk memahami RRDTool ialah dengan melakukan sesi teknikal :).
Membina database
rrdtool create test.rrd             \ nama database

--start 920804400 \ tarikh dibina -Unix timestamp (mula 1 1970 UTC)
DS:speed:COUNTER:600:U:U \ data source bernama speed - data dari counter
RRA:AVERAGE:0.5:1:24 \ database pertama
RRA:AVERAGE:0.5:6:10 \ database kedua
Masukkan data (dua colum masa dan nilai - sebagai contaoh kelajuan kereta pada masa )
rrdtool update test.rrd 920804700:12345 920805000:12357 920805300:12363

rrdtool update test.rrd 920805600:12363 920805900:12363 920806200:12373
rrdtool update test.rrd 920806500:12383 920806800:12393 920807100:12399
rrdtool update test.rrd 920807400:12405 920807700:12411 920808000:12415
rrdtool update test.rrd 920808300:12420 920808600:12422 920808900:12423
Jika mahu baca semula data
rrdtool fetch test.rrd AVERAGE --start 920804400 --end 920809200


Maka keputusannya ialah
speed
920804700: NaN
920805000: 0.04
920805300: 0.02
920805600: 0.00
920805900: 0.00
920806200: 0.03
920806500: 0.03
920806800: 0.03
920807100: 0.02
920807400: 0.02
920807700: 0.02
920808000: 0.01
920808300: 0.02
920808600: 0.01
920808900: 0.00
920809200: NaN
Untuk membuat graf dari pukul 12.00 hingga 13.00 ke fail speed.gif

rrdtool graph speed.gif                          \ nama gif fail

--start 920804400 --end 920808000
DEF:myspeed=test.rrd:speed:AVERAGE \ pembolehubah myspeed mengambil nilai RRA speed
LINE2:myspeed#FF0000 \bina line 2 pixel bewarna merah

Lebih tepat
rrdtool graph speed2.gif                              

--start 920804400 --end 920808000
--vertical-label m/s
DEF:myspeed=test.rrd:speed:AVERAGE
CDEF:realspeed=myspeed,1000,* \ realspeed=myspeed*1000 (reverse polish notation)
LINE2:realspeed#FF0000

Lebih cantik lagi
rrdtool graph speed3.gif  

--start 920804400 --end 920808000
--vertical-label km/h
DEF:myspeed=test.rrd:speed:AVERAGE
"CDEF:kmh=myspeed,3600,*"
CDEF:fast=kmh,100,GT,kmh,0,IF \ if kmh >100 then kmh else 0
CDEF:good=kmh,100,GT,0,kmh,IF \ if kmh > 100 then 0 else kmh
HRULE:100#0000FF:"Maximum allowed"
AREA:good#00FF00:"Good speed"
AREA:fast#FF0000:"Too fast"

Graf akan lebih menarik jika
rrdtool graph speed4.gif                               

--start 920804400 --end 920808000
--vertical-label km/h
DEF:myspeed=test.rrd:speed:AVERAGE
"CDEF:kmh=myspeed,3600,*"
CDEF:fast=kmh,100,GT,100,0,IF
CDEF:over=kmh,100,GT,kmh,100,-,0,IF
CDEF:good=kmh,100,GT,0,kmh,IF
HRULE:100#0000FF:"Maximum allowed"
AREA:good#00FF00:"Good speed"
AREA:fast#550000:"Too fast"

Kemudian graf tersebut boleh dipaparkan dalam fail HTML

Secara umumnya RRDTool boleh mengrafkan apa sahaja data yang berkaitan dengan masa.

~fakirpena.blogspot.com


0 Comments:

Post a Comment

<< Home