Ini ialah arahan rrdgraph_libdbi yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS
JADUAL:
NAMA
rrdgraph_libdbi - mengambil data untuk membuat grafik dalam graf rrdtool melalui libdbi
SINOPSIS
= sql // pemandu>/ = /...
[/rrdminstepsize= ][/rrdfillmissing= hilang n saat>]//
/ lajur>/ nilai lajur>[/derive]/ klausa 1>/.../ klausa n>
DESCRIPTION
Nama fail pseudo-rrd ini mentakrifkan sumber data sql:
sql //
awalan kuki ajaib untuk sumber data jenis libdbi
<libdbi pemandu>
pemacu libdbi yang hendak digunakan (cth: mysql)
=
mentakrifkan parameter yang diperlukan untuk menyambung ke pangkalan data dengan pemacu libdbi yang diberikan
(Pemandu ini bergantung kepada libdbi - untuk butiran sila lihat dokumentasi pemandu libdbi!)
/rrdminstepsize=<minimum langkah saiz>
mentakrifkan bilangan minimum panjang langkah yang digunakan untuk membuat grafik (lalai: 300 saat)
/rrdfillmissing=<isi hilang saat>
mentakrifkan bilangan saat untuk diisi dengan nilai terakhir untuk mengelakkan kotak NaN disebabkan oleh jitter pemasukan data (lalai: 0 saat)
mentakrifkan jadual untuk mengambil set keputusan.
Jika terdapat keperluan untuk mengambil data daripada beberapa jadual, jadual ini boleh ditakrifkan dengan memisahkan nama jadual dengan "+"
pengekodan jenis hex melalui %xx diterjemahkan kepada nilai sebenar, gunakan %% untuk menggunakan %
<[*]unixtimestamp lajur>
mentakrifkan lajur E jadualE yang mengandungi cap masa unix
- jika ini adalah medan DATETIME dalam pangkalan data, maka awalan dengan '*' terkemuka
pengekodan jenis hex melalui %xx diterjemahkan kepada nilai sebenar, gunakan %% untuk menggunakan %
<data nilai lajur>
mentakrifkan lajur E jadualE yang mengandungi lajur nilai, yang perlu digraf
pengekodan jenis hex melalui %xx diterjemahkan kepada nilai sebenar, gunakan %% untuk menggunakan %
/derive
mentakrifkan bahawa nilai data yang digunakan hendaklah delta daripada 2 nilai berturut-turut (untuk mensimulasikan sumber data jenis COUNTER atau DERIVE)
/ klausa(s)>
mentakrifkan satu (bijih lagi) di mana klausa yang digabungkan dengan DAN untuk menapis entri dalam meja
pengekodan jenis hex melalui %xx diterjemahkan kepada nilai sebenar, gunakan %% untuk menggunakan %
nama lajur nilai yang dikembalikan, yang boleh digunakan sebagai nama-ds, ialah:
minit, avg, maks, mengira and sigma
dikembalikan untuk digunakan sebagai nama-ds dalam definisi DS anda.
Sebab untuk menggunakan ini ialah jika fungsi penyatuan digunakan untuk min/avg dan maks, maka enjin digunakan beberapa kali.
Dan ini menghasilkan Pernyataan SQL yang sama digunakan beberapa kali
CONTOH
Berikut contoh jadual dalam pangkalan data MySQL:
DB menyambung maklumat
dbhost=127.0.0.1
pengguna=rrd
kata laluan=rahsia
dbname=rrd
di sini jadual:
BUAT JADUAL RDValue (
RRDKeyID bigint(20) BUKAN NULL,
UnixTimeStamp int(11) BUKAN NULL,
nilai lalai berganda BUKAN NULL,
KUNCI UTAMA (RRDKeyID, UnixTimeStamp)
);
dan RRDKeyID yang ingin kami graf ialah: 1141942900757789274
Nama fail pseudo rrd untuk mengakses ini ialah:
"sql//mysql/host=127.0.0.1/dbname=rrd/nama pengguna=rrd/kata laluan=rahsia//RRDValue/UnixTimeStamp
/value/RRDKeyID=1141464142203608274"
Untuk menggambarkan ini di sini arahan untuk mencipta graf yang mengandungi nilai sebenar.
DS_BASE="sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=passwd//RRDValue/UnixTimeStamp/value/RRDKeyID=1141942900757789274"
ujian graf rrdtool.png --imgformat=PNG --mula=-1hari --akhir=+3jam --lebar=1000 --tinggi=600
"DEF:min=$DS_BASE:min:AVERAGE"
"LINE1:min#FF0000:value"
"DEF:avg=$DS_BASE:avg:AVERAGE"
"LINE1:purata#00FF00:purata"
"DEF:max=$DS_BASE:max:AVERAGE"
"LINE1:maks#FF0000:maks"
"DEF:sigma=$DS_BASE:sigma:AVERAGE"
"CDEF:upper=avg,4,sigma,*+"
"LINE1:atas#0000FF:+4 sigma"
"CDEF:lower=avg,4,sigma,*,-"
"LINE1:lower#0000FF:-4 sigma"
NOTA
* Sememangnya anda juga boleh menggunakan mana-mana jenis pemacu lain yang disokong oleh libdbi - contohnya postgres,
...
* Daripada cara sumber data dicantumkan, penyambungan juga boleh dilakukan
jadual yang berbeza
(pisahkan jadual dengan "," dalam jadual dan tambah dalam Klausa WHERE jadual yang sama bercantum.
Ini belum diuji!!!)
* Ia juga sepatutnya agak mudah untuk ditambahkan pada pangkalan data menggunakan sumber data yang sama
tali.
Ini belum dilaksanakan...
* Fungsi pengagregatan diabaikan dan beberapa lajur data digunakan sebaliknya
untuk mengelakkan pertanyaan SQL yang sama beberapa kali apabila minimum, purata dan maksimum adalah
diperlukan untuk membuat graf...
* untuk kecekapan DB anda harus memikirkan untuk mempunyai 2 jadual, satu mengandungi nilai bersejarah
dan satu lagi yang mengandungi data terkini.
Jadual kedua ini harus disimpan kecil untuk membolehkan sekurang-kurangnya amaun menyekat SQL
Penyataan.
Dengan mysql anda juga boleh menggunakan jenis jadual myisam untuk yang pertama dan InnoDB untuk yang kedua.
Ini amat menarik kerana jadual dengan baris +100M myisam jauh lebih kecil
kemudian InnoDB.
* Untuk nyahpepijat kenyataan SQL tetapkan pembolehubah persekitaran RRDDEBUGSQL dan SQL sebenar
penyata dan masa dicetak ke stderr.
prestasi isu-isu bersama MySQL backend
LibDBI mempunyai isu prestasi yang besar apabila anda mendapatkan semula data daripada pelayan MySQL. Prestasi
impak secara eksponen berdasarkan bilangan nilai yang anda dapatkan daripada pangkalan data. Untuk
contoh, ia akan mengambil masa lebih daripada 2 saat untuk membuat graf 5DS pada 150 jam data dengan a
ketepatan 5 minit (berbanding 100ms apabila data datang daripada fail RRD). Pepijat ini telah
ditetapkan pada versi terkini LibDBI (belum dikeluarkan lagi). Pada masa itu, anda perlu
susun libdbi dan libdbi-drivers dari repositori CVS untuk membetulkannya. Anda boleh mencari lebih banyak lagi
maklumat mengenai utas senarai mel pengguna libdbi ini :
http://sourceforge.net/mailarchive/message.php?msg_id=30320894
Gunakan rrdgraph_libdbi dalam talian menggunakan perkhidmatan onworks.net