ນີ້ແມ່ນຄໍາສັ່ງ rrdgraph_libdbi ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
rrdgraph_libdbi - ການດຶງຂໍ້ມູນສໍາລັບກາຟໃນ rrdtool graph ຜ່ານ libdbi
ສະຫຼຸບສັງລວມ
= sql// ຄົນຂັບລົດ>/ = /...
[/rrdminstepsize= ][/rrdfilmissing= ຫາຍ n ວິນາທີ>]//
/ ຖັນ>/ ມູນຄ່າ ຖັນ>[/derive]/ clause 1>/.../ clause n>
ລາຍລະອຽດ
pseudo-rrd-filename ນີ້ກໍານົດແຫຼ່ງຂໍ້ມູນ sql:
sql//
magic cookie-prefix ສໍາລັບແຫຼ່ງຂໍ້ມູນປະເພດ libdbi
<libdbi ຄົນຂັບ >
ໄດເວີ libdbi ໃດທີ່ຈະໃຊ້ (ເຊັ່ນ: mysql)
=
ກໍານົດພາລາມິເຕີທີ່ຕ້ອງການເພື່ອເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນກັບໄດເວີ libdbi ທີ່ໃຫ້
(ໄດເວີເຫຼົ່ານີ້ແມ່ນຂຶ້ນກັບ libdbi - ສໍາລັບລາຍລະອຽດກະລຸນາເບິ່ງເອກະສານຄົນຂັບຂອງ libdbi!)
/rrdminstepsize=<ຕໍ່າສຸດ ຂັ້ນຕອນ ຂະໜາດ >
ກໍານົດຈໍານວນຕໍາ່ສຸດທີ່ຂອງໄລຍະຂັ້ນຕອນທີ່ໃຊ້ສໍາລັບການແຕ້ມຮູບ (ຄ່າເລີ່ມຕົ້ນ: 300 ວິນາທີ)
/rrdfilmmising=<ຕື່ມ ຫາຍ ວິນາທີ >
ກໍານົດຈໍານວນວິນາທີທີ່ຈະຕື່ມຂໍ້ມູນໃສ່ກັບຄ່າສຸດທ້າຍເພື່ອຫຼີກເວັ້ນການກ່ອງ NaN ເນື່ອງຈາກການ jitter ການແຊກຂໍ້ມູນ (ຄ່າເລີ່ມຕົ້ນ: 0 ວິນາທີ)
ກໍານົດຕາຕະລາງທີ່ຈະດຶງຜົນໄດ້ຮັບ.
ຖ້າມີຄວາມຕ້ອງການທີ່ຈະດຶງຂໍ້ມູນຈາກຫຼາຍຕາຕະລາງ, ຕາຕະລາງເຫຼົ່ານີ້ສາມາດຖືກກໍານົດໂດຍການແຍກຊື່ຕາຕະລາງດ້ວຍ "+"
hex-type-encoding ຜ່ານ %xx ຖືກແປເປັນຄ່າຕົວຈິງ, ໃຊ້ %% ເພື່ອໃຊ້ %
<[*]unixtimestamp ຖັນ >
ກໍານົດຖັນຂອງ E ຕາຕະລາງE ເຊິ່ງປະກອບດ້ວຍ unix-timestamp
- ຖ້ານີ້ແມ່ນຊ່ອງຂໍ້ມູນ DATETIME ໃນຖານຂໍ້ມູນ, ຈາກນັ້ນນຳໜ້າດ້ວຍ '*' ນຳໜ້າ.
hex-type-encoding ຜ່ານ %xx ຖືກແປເປັນຄ່າຕົວຈິງ, ໃຊ້ %% ເພື່ອໃຊ້ %
<ຂໍ້ມູນ ມູນຄ່າ ຖັນ >
ກໍານົດຖັນຂອງ E ຕາຕະລາງE ເຊິ່ງປະກອບດ້ວຍຖັນມູນຄ່າ, ເຊິ່ງຄວນຈະເປັນກາຟ
hex-type-encoding ຜ່ານ %xx ຖືກແປເປັນຄ່າຕົວຈິງ, ໃຊ້ %% ເພື່ອໃຊ້ %
/ ມາຈາກ
ກຳນົດວ່າຄ່າຂໍ້ມູນທີ່ໃຊ້ຄວນເປັນ delta ຂອງ 2 ຄ່າຕິດຕໍ່ກັນ (ເພື່ອຈຳລອງແຫຼ່ງຂໍ້ມູນປະເພດ COUNTER ຫຼື DERIVE)
/ ຂໍ້(s)>
ກໍານົດຫນຶ່ງ (ແຮ່ເພີ່ມເຕີມ) ບ່ອນທີ່ຂໍ້ທີ່ເຂົ້າຮ່ວມກັບ AND ເພື່ອກັ່ນຕອງການເຂົ້າໃນ ໂຕະ
hex-type-encoding ຜ່ານ %xx ຖືກແປເປັນຄ່າຕົວຈິງ, ໃຊ້ %% ເພື່ອໃຊ້ %
ຄ່າທີ່ສົ່ງກັບຄ່າຖັນ-ຊື່, ເຊິ່ງສາມາດໃຊ້ເປັນ ds-names, ແມ່ນ:
ນາທີ, ສະເລ່ຍ, ສູງສຸດທີ່ເຄຍ, ນັບ ແລະ sigma
ຖືກສົ່ງຄືນເພື່ອໃຊ້ເປັນ ds-names ໃນຄໍານິຍາມ DS ຂອງທ່ານ.
ເຫດຜົນສໍາລັບການນໍາໃຊ້ນີ້ແມ່ນວ່າຖ້າຟັງຊັນລວມຖືກນໍາໃຊ້ສໍາລັບ min / avg ແລະ max, ຫຼັງຈາກນັ້ນເຄື່ອງຈັກຖືກນໍາໃຊ້ຫຼາຍຄັ້ງ.
ແລະນີ້ຜົນໄດ້ຮັບໃນຄໍາຖະແຫຼງທີ່ SQL ດຽວກັນໃຊ້ຫຼາຍຄັ້ງ
ຕົວຢ່າງ
ນີ້ແມ່ນຕົວຢ່າງຂອງຕາຕະລາງໃນຖານຂໍ້ມູນ MySQL:
DB ເຊື່ອມຕໍ່ຂໍ້ມູນ
dbhost=127.0.0.1
user=rrd
password=ລັບ
dbname=rrd
ນີ້ຕາຕະລາງ:
ສ້າງຕາຕະລາງ RRDValue (
RRDKeyID ເລື່ອງໃຫຍ່(20) ບໍ່ແມ່ນ NULL,
UnixTimeStamp int(11) ບໍ່ແມ່ນ NULL,
ຄ່າເລີ່ມຕົ້ນສອງເທົ່າບໍ່ແມ່ນ NULL,
ລະຫັດຫຼັກ (RRDKeyID, UnixTimeStamp)
);
ແລະ RRDKeyID ທີ່ພວກເຮົາຕ້ອງການທີ່ຈະສະແດງໃຫ້ເຫັນແມ່ນ: 1141942900757789274
pseudo rrd-filename ເພື່ອເຂົ້າເຖິງນີ້ແມ່ນ:
"sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=secret//RRDValue/UnixTimeStamp
/value/RRDKeyID=1141464142203608274"
ເພື່ອສະແດງໃຫ້ເຫັນເລື່ອງນີ້ຢູ່ທີ່ນີ້ຄໍາສັ່ງເພື່ອສ້າງເສັ້ນສະແດງທີ່ມີຄ່າທີ່ແທ້ຈິງ.
DS_BASE="sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=passwd//RRDValue/UnixTimeStamp/value/RRDKeyID=1141942900757789274"
rrdtool graph test.png --imgformat=PNG --start=-1day --end=+3hours --width=1000 --height=600 \
"DEF:min=$DS_BASE:min:AVERAGE" \
"LINE1:min#FF0000:value" \
"DEF:avg=$DS_BASE:avg:AVERAGE" \
"LINE1:avg#00FF00:ສະເລ່ຍ" \
"DEF:max=$DS_BASE:max:AVERAGE" \
"LINE1:max#FF0000:max" \
"DEF:sigma=$DS_BASE:sigma:AVERAGE" \
"CDEF:upper=avg,4,sigma,*,+" \
"LINE1:upper#0000FF:+4 sigma" \
"CDEF:lower=avg,4,sigma,*,-" \
"LINE1: ຕ່ຳກວ່າ#0000FF:-4 sigma"
ຫມາຍເຫດ
* ຕາມທໍາມະຊາດ, ທ່ານຍັງສາມາດໃຊ້ໄດເວີປະເພດອື່ນໆທີ່ libdbi ສະຫນັບສະຫນູນ - ຕົວຢ່າງ: postgres,
...
* ຈາກວິທີການທີ່ແຫຼ່ງຂໍ້ມູນເຂົ້າຮ່ວມ, ມັນຄວນຈະເປັນໄປໄດ້ທີ່ຈະເຮັດການເຂົ້າຮ່ວມ
ຕາຕະລາງທີ່ແຕກຕ່າງກັນ
(ຕາຕະລາງແຍກຕ່າງຫາກດ້ວຍ "," ໃນຕາຕະລາງແລະເພີ່ມໃນ WHERE Clauses ຕາຕະລາງທີ່ເທົ່າທຽມກັນ.
ນີ້ຍັງບໍ່ໄດ້ຮັບການທົດສອບ !!!)
* ມັນຄວນຈະຂ້ອນຂ້າງງ່າຍດາຍທີ່ຈະເພີ່ມໃສ່ຖານຂໍ້ມູນໂດຍໃຊ້ແຫຼ່ງຂໍ້ມູນດຽວກັນ
string
ນີ້ບໍ່ໄດ້ຖືກປະຕິບັດ ...
* ຟັງຊັນການລວບລວມແມ່ນຖືກລະເລີຍ ແລະຫຼາຍຖັນຂໍ້ມູນຖືກໃຊ້ແທນ
ເພື່ອຫຼີກເວັ້ນການສອບຖາມ SQL ດຽວກັນຫຼາຍຄັ້ງໃນເວລາທີ່ຕໍາ່ສຸດ, ສະເລ່ຍແລະສູງສຸດ
ຕ້ອງການສໍາລັບກາຟິກ ...
* ສໍາລັບປະສິດທິພາບ DB ທ່ານຄວນຄິດວ່າມີ 2 ຕາຕະລາງ, ຫນຶ່ງໃນມູນຄ່າປະຫວັດສາດ
ແລະອີກອັນໜຶ່ງທີ່ມີຂໍ້ມູນຫຼ້າສຸດ.
ຕາຕະລາງທີສອງນີ້ຄວນຈະຖືກເກັບຮັກສາໄວ້ຂະຫນາດນ້ອຍເພື່ອໃຫ້ມີຈໍານວນຫນ້ອຍທີ່ສຸດທີ່ຈະສະກັດ SQL
ຖະແຫຼງການ.
ດ້ວຍ mysql ເຈົ້າຍັງສາມາດໃຊ້ຕາຕະລາງປະເພດ myisam ສໍາລັບຄັ້ງທໍາອິດແລະ InnoDB ສໍາລັບທີສອງ.
ນີ້ແມ່ນຫນ້າສົນໃຈໂດຍສະເພາະກັບຕາຕະລາງທີ່ມີ +100M ແຖວ myisam ແມ່ນນ້ອຍກວ່າຫຼາຍ
ຫຼັງຈາກນັ້ນ InnoDB.
* ເພື່ອແກ້ບັນຫາການຖະແຫຼງການ SQL ກໍານົດຕົວແປສະພາບແວດລ້ອມ RRDDEBUGSQL ແລະ SQL ຕົວຈິງ
ຖະແຫຼງການແລະເວລາຖືກພິມອອກໄປຫາ stderr.
ການປະຕິບັດ ບັນຫາ ກັບ MySQL backend
LibDBI ມີບັນຫາການປະຕິບັດອັນໃຫຍ່ຫຼວງເມື່ອທ່ານດຶງຂໍ້ມູນຈາກເຄື່ອງແມ່ຂ່າຍ MySQL. ການປະຕິບັດ
ຜົນກະທົບແມ່ນອີງໃສ່ຕົວເລກຂອງມູນຄ່າທີ່ທ່ານດຶງມາຈາກຖານຂໍ້ມູນ. ສໍາລັບ
ຕົວຢ່າງ, ມັນຈະໃຊ້ເວລາຫຼາຍກວ່າ 2 ວິນາທີເພື່ອສະແດງ 5DS ໃນ 150 ຊົ່ວໂມງຂອງຂໍ້ມູນທີ່ມີ a
ຄວາມແມ່ນຍໍາຂອງ 5 ນາທີ (ຕໍ່ກັບ 100ms ເມື່ອຂໍ້ມູນມາຈາກໄຟລ໌ RRD). ບັກນີ້ເຄີຍ
ແກ້ໄຂໃນສະບັບຫລ້າສຸດຂອງ LibDBI (ຍັງບໍ່ໄດ້ປ່ອຍເທື່ອ). ໃນເວລານັ້ນ, ທ່ານຈະຕ້ອງ
ລວບລວມ libdbi ແລະ libdbi-drivers ຈາກ CVS repository ເພື່ອແກ້ໄຂມັນ. ທ່ານສາມາດຊອກຫາເພີ່ມເຕີມ
ຂໍ້ມູນກ່ຽວກັບກະທູ້ບັນຊີລາຍຊື່ຜູ້ໃຊ້ libdbi ນີ້:
http://sourceforge.net/mailarchive/message.php?msg_id=30320894
ໃຊ້ rrdgraph_libdbi ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net