CatatanLepas , oleh, wirawanBrotoyuwono, september, 2006

"Sugih tanpa bandha, nglurug tanpa bala, menang tanpa ngasorake."
Mungkin ini lebih terasa nyaman untuk didengar.
> Prakata
> ListCatatan :
>> Gatal ya Digaruk Saja
>> Dreaming Properties
>> Sisa 4. Tak Lebih.
>> Tim yang Solid
>> Pengemis-pun Kasihan
>> Gundul.Harus itu.
>> Ganti, ya jangan..
>> Serba Bodoh
> TumorOtakSaya :
>> Gejala.Awam ?!
>> Diagnosa
>> MedicalTreatment(1)
>> MedicalTreatment(2)
>> HomeCare
>> Hari ini
> BayanganLiar :
>> SteveJobs
>> Kambing Hitam
>> Copy'n'Paste
>> BIOS
>> SampahOrganik
>> Korespondensi
>> Kucing
>> MSCA
>> Lupa
>> CCTV
>> T.I.K
>> RadenGatotkaca
>> Telat Terus
>> TempatSampah
>> Proyek
>> Putar Kepala
>> AlurStudi
>> VoIP
>> Hosting
>> TelMon
>> eMail
>> ReviSet
>> PresPLO
>> Grafik(2)
>> Tidur(3)
>> Kuda
>> Lepas Tongkat
>> ssh
>> Tidur(2)
>> Nginternet
>> Bau Sate
>> MbahDukun
>> Kress Kress
>> Perangko
>> Password
>> Pakai 3
>> Robot
>> GrafikAneh
>> PendekarCapKakiTiga
>> Panjang Sebelah ?!
>> JamPulang
>> PHP ber-awk
>> Tidur
>> arsip(Lama) :
> Cerpen :
>> cerpen -- Sosok dan Mouse
>> cerpen -- Grep Rasa Durian
>> cerpen -- Lurah DHCP
>> cerpen -- Komidi 'RRD'
>> cerpen -- Desain Grafis cap ___________ Kue Lapis
> Artikel :
>> artikel -- Terbilang Perl-way
>> artikel -- BillingSystem
>> artikel -- TelkomMonitor
>> artikel -- upTimeMonitor

> Galeri :
>> MDF_(dok/WB)
>> Terbilang -- v.PHP
>> GoogleMON
.. CatatanLepas

Komidi ‘RRD’
oleh : wirawanBrotoyuwono

RRD. Round Robin Database. dalam pikiran saya, ini adalah satu bentuk basis data yang sudah dipatok jumlah record datanya. Tentunya patokan ini bergantung kebutuhan. Kata ‘round’ membuat saya terbayang pada perputaran waktu yang pasti bergerak maju, Melingkar menurut path yang terbentuk dari gerak jarum detik sebuah jam.

Dan dalam pikiran saya pula, ini sangat berguna bila saya memerlukan sebuah kumpulan data yang akan digunakan selama kurun waktu tertentu menurut jumlah baris tiap recordnya.

Dan dalam pikiran saya pula, meski merupakan ‘kembangan sayap’ dari saudara tua-nya, MRTG, (- yang sangat erat bergandengan dengan SNMP -), RRD lebih gampang ‘digandeng’ siapa saja, tentunya bila unsur ‘kondisi pada waktu tertentu’ tersedia, Kondisi itu bisa berupa nilai bitwise, 0 dan1, atau juga bisa berupa nilai angka integer.

Dan dalam pikiran saya pula, ini menjadi pilihan tepat bila saya terkondisikan untuk bekerja dalam sistem yang sangat ‘peka’ soal ‘free disk space’-nya. Ya karena RRD telah ditentukan perkiraan jumlah data maksimal yang sangat berkait dengan ukuran file-nya, maka RRD tidak akan mekar melewati batas itu, dengan cara menghapus baris data paling awal yang terlama, lalu menambahkan baris data terakhir yang terbaru. Terus berputar seperti itu.

Dan akhirnya saya memilih menggunakan RRD dalam aplikasi tentang monitor kinerja koneksi kantor ke ISP yang akan saya susun.

***

Rencana aliran aplikasi sudah terpampang lebar dalam benak. Idenya adalah melakukan download suatu halaman index ke alamat site tertentu untuk mengukur kecepatan transfer data dalam suatu kurun waktu.

Saya delegasikan tugas masing-masing menurut fungsinya,
‘RRD...’ , database dan penyaji grafik laporan. RRD menempati porsi utama dalam penugasan ini.
‘wget’ , tool untuk data kolektor,
‘perl’ , sebagai interpreter dari skrip yang akan menghubungkan output wget ke database rrd untuk melakukan update data.
‘cron’ , melakukan penjadwalan untuk meng-eksekusi-kan skrip secara teratur.

Dalam rencana ini, pasukan RRD menguasai ‘lini utama’ aliran aplikasi. Meski begitu, saya menggunakan hanya sebagian dari seluruh isi paket program RRD, ya terus terang karena saya masih bingung meng-explore seluruh isi paket. Sebagian itu adalah ‘rrdcreate’, ‘rrdupdate’ dan ‘rrdgraph’.

Babak persiapan.
Membangun database, saya minta RRDcreate melakukannya.

shell >> rrdtool create koneksi.rrd 
	DS:hasil_wget:GAUGE:600:U:U 
	RRA:LAST:0.5:1:3749760 

Babak update data.
Saya menggunakan skrip perl untuk melakukan download dengan wget dan mengarahkan hasilnya ke RRDupdate.

Kira-kira begini,

...
system("wget -Y off -o hasil_wget alamat_site");
$size="nan";
open(WG,"hasil_wget");
while(){
	if (grep(/ saved /,$_)){
	print "$_";
	s/.*\(//;s/\).*//;
	@sz=split(/ /,$_);
	$size=$sz[0];
	if (grep(/K/,$sz[1])) {
		$size=$sz[0] * 1000;
			}
	if (grep(/M/,$sz[1])) {
		$size=$sz[0] * 1000000;
			}
		}
	}
system("rrdtool update koneksi.rrd N:$size");
...
Babak peng-grafis-an hasil.
Ini menjadi bagian yang selalu saya nantikan. Seni lukis gaya RRD.
Kira-kira begini,
...
system("rrdtool graph koneksi.png -v \"B/detik\"  
	DEF:hasil=koneksi.rrd:hasil_wget:LAST 
	AREA:hasil#33ccff:\"\" 
	COMMENT:\"Koneksi\" ");
...
Babak penyelesaian.
Saya lakukan setting pada crontab, agar cron mengeksekusikan skrip update data dan skrip grafis setiap kurun waktu tertentu.

Ya ini menjadi karya kolaboratif RRD dan saya. Ya seadanya.

***

Ada pasar malam ‘dadakan’ di lapangan tak jauh dari perumahan saya. Sang Putri mulai merajuk,
"“ Ke sana yuk. Temen-temenku sudah pada ke sana. Aku cuma di-cerita-ni terus. Aku janji ndak akan minta dibeliin macam-macam, ya paling cuma minta martabak ndak pake telor sama kue terang bulan ndak pake kacang ... o ya donat-nya jangan lupa ....”".
Lha !!. Cleguk.
Tak tega, saya dan istri mengantarnya ke sana.

Sampai di sana.
Keramaian. Banyak pasangan ‘momong’ anaknya. Berbagai stand permainan khas pasar malam. Ada sesuatu yang dicari-cari sang putri. Ketemu. Komidi putar dengan kuda-kuda-annya, ujarnya,
"“Yah, itu komidi putar, aku ingin naik itu. Kudanya baik, tidak nakal kok. Larinya ya cuma mutar-mutar di situ terus.”".

Istri membelikan tiket untuknya. Sang putri memilih kuda yang disukainya. Naik. Menunggu sebentar, alunan lagu anak-anak. Lalu kuda mulai bergerak naik-turun mengikuti suatu ‘heartbeat’ tertentu, maju berputar menurut ‘work path’ -nya. Tak akan melebihi batas putaran yang ditentukan. Sesekali membalas lambaian tangan sang putri dan senyum-ceria-nya ketika melintas di hadapan saya.

Setelah belasan menit berputar komidi putar berhenti. Penumpang turun , berganti dengan penumpang yang baru, seperti kegiatan ‘update data’ saja.

Tersentak. Di mana sang putri ?, Saya,
"“Di mana anak kita ?”"
"“Naik komidi putar itu lagi. Sudah berkali-kali aku harus membelikan tiket untuknya. Dia hanya berganti kuda tunggangannya dalam komidi putar yang sama. Dia sangat menikmatinya.”"

Teringat tentang sesuatu, tidak tahu karena apa, tapi boleh jadi karena ‘sebutan’-nya saja. ya, komidi putar .... orang juga meyebutnya ‘Merry Go Round’. Lantas saya menghubungkannya dengan plesetan ‘Merry Go Round Robin Database’. Komidi RRD.

Saya, bergumam lirih, "“Tidak cuma anak kecil itu, saya se-tua ini-pun bahkan masih juga sangat menikmatinya.”"
Ya. Komidi ‘RRD’.

minomartani, pebruari. 2007

DaftarReferensi
man pages : wget , rrdcreate , rrdupdate . rrdgraph
PostingTerbaru :
>> SteveJobs , 11/10/11
>> KambingHitam , 11/08/11
>> Copy'n'Paste , 18/04/11
>> BIOS , 11/04/11
>> SampahOrganik , 29/03/11
>> Korespondensi , 28/03/11
>> Kucing , 23/03/11
>> MSCA , 21/03/11
>> Lupa ,14/03/11
>> CCTV ,10/03/11
>> T.I.K ,7/03/11
>> Gatotkaca ,7/03/11
>> Telat Terus ,28/02/11
>> TempatSampah ,24/02/11
>> Proyek ,21/02/11