هذا هو الأمر rrdgraph_libdbi الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
rrdgraph_libdbi - جلب البيانات للرسوم البيانية في الرسم البياني rrdtool عبر libdbi
موجز
= مزود // السائق>/ = /...
[/rdminstepsize= ][/rrdfillmissing= مفقود n ثواني>]//
/ العمود>/ قيمنا العمود>[/اشتقاق]/ بند 1>/.../ بند n>
الوصف
يحدد اسم الملف الزائف هذا مصدر بيانات SQL:
مزود //
بادئة ملف تعريف الارتباط السحرية لمصدر بيانات من نوع libdbi
<libdbi سائق>
أي برنامج تشغيل libdbi يجب استخدامه (على سبيل المثال: mysql)
=
يحدد المعلمات المطلوبة للاتصال بقاعدة البيانات باستخدام برنامج تشغيل libdbi المحدد
(تعتمد برامج التشغيل هذه على libdbi - للحصول على التفاصيل، يرجى الاطلاع على وثائق برنامج تشغيل libdbi!)
/rdminstepsize=<الحد الأدنى . الحجم>
يحدد الحد الأدنى لعدد طول الخطوة المستخدم في الرسم البياني (الافتراضي: 300 ثانية)
/rdfillmissing=<ملء مفقود ثواني>
يحدد عدد الثواني التي يجب ملؤها بالقيمة الأخيرة لتجنب مربعات NaN بسبب ارتعاش إدخال البيانات (الافتراضي: 0 ثانية)
يحدد الجدول الذي سيتم جلب مجموعة النتائج منه.
إذا كانت هناك حاجة لجلب البيانات من عدة جداول، فيمكن تعريف هذه الجداول عن طريق فصل أسماء الجداول بعلامة "+"
تتم ترجمة ترميز النوع السداسي عبر %xx إلى القيمة الفعلية، استخدم %% لاستخدام %
<[*]unixtimestamp العمود>
يحدد عمود E الجدولE الذي يحتوي على الطابع الزمني يونكس
- إذا كان هذا حقل DATETIME في قاعدة البيانات، فابدأ بالبادئة "*"
تتم ترجمة ترميز النوع السداسي عبر %xx إلى القيمة الفعلية، استخدم %% لاستخدام %
<data قيمنا العمود>
يحدد عمود E الجدولE الذي يحتوي على عمود القيمة، الذي ينبغي رسمه بيانيا
تتم ترجمة ترميز النوع السداسي عبر %xx إلى القيمة الفعلية، استخدم %% لاستخدام %
/استخلاص
يحدد أن قيمة البيانات المستخدمة يجب أن تكون دلتا القيمتين المتتاليتين (لمحاكاة مصادر البيانات من نوع COUNTER أو DERIVE)
/ البند (الفقرات)>
يحدد واحدًا (خامًا أكثر) حيث يتم ربط الجمل بـ AND لتصفية الإدخالات في طاولة
تتم ترجمة ترميز النوع السداسي عبر %xx إلى القيمة الفعلية، استخدم %% لاستخدام %
أسماء أعمدة القيمة التي تم إرجاعها، والتي يمكن استخدامها كأسماء ds، هي:
دقيقة, المتوسط, ماكس, عد و سيغما
يتم إرجاعها لاستخدامها كأسماء ds في تعريف DS الخاص بك.
سبب استخدام ذلك هو أنه إذا تم استخدام وظيفة الدمج لـ min/avg وmax، فسيتم استخدام المحرك عدة مرات.
وينتج عن هذا استخدام نفس عبارات SQL عدة مرات
أمثلة
فيما يلي مثال لجدول في قاعدة بيانات MySQL:
معلومات اتصال قاعدة البيانات
dbhost=127.0.0.1
user=rd
كلمة المرور=سر
dbname=rrd
هنا الجدول:
إنشاء جدول قيمة RRD (
معرف مفتاح RRD BIGINT(20) ليس NULL ،
UnixTimeStamp مادبا(11) ليس NULL ،
القيمة الافتراضية المزدوجة ليست فارغة،
المفتاح الأساسي (RRDKeyID،UnixTimeStamp)
);
و RRDKeyID الذي نريد رسم بياني له هو: 1141942900757789274
اسم الملف rrd الزائف للوصول إلى هذا هو:
"sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=secret//RRDValue/UnixTimeStamp
/القيمة/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 - البداية = -1 يوم - نهاية = + 3 ساعات - العرض = 1000 - الارتفاع = 600
"DEF: min = $ DS_BASE: min: AVERAGE"
"LINE1: min # FF0000: value"
"DEF: المتوسط = DS_BASE دولار: المتوسط: AVERAGE"
"LINE1: متوسط # 00FF00: متوسط"
"DEF: max = $ DS_BASE: max: AVERAGE"
"LINE1: max # FF0000: max"
"DEF: sigma = $ DS_BASE: sigma: AVERAGE"
"CDEF: أعلى = متوسط ، 4 ، سيجما ، * ، +"
"LINE1: العلوي # 0000FF: +4 سيجما"
"CDEF: أقل = متوسط ، 4 ، سيجما ، * ، -"
"LINE1: أقل #0000FF:-4 سيجما"
الملاحظات
* وبطبيعة الحال، يمكنك أيضًا استخدام أي نوع آخر من برامج التشغيل التي يدعمها libdbi - على سبيل المثال، postgres،
* من طريقة ربط مصدر البيانات، يجب أن يكون من الممكن أيضًا إجراء عمليات ربط
طاولات مختلفة
(افصل الجداول بـ "،" في الجدول وأضف عبارات WHERE إلى الجدول المتساوي.
هذا لم يتم اختباره!!!)
* يجب أيضًا أن يكون من السهل نسبيًا الإضافة إلى قاعدة البيانات باستخدام نفس مصدر البيانات
سلسلة.
وهذا لم يتم تنفيذه...
* يتم تجاهل وظائف التجميع ويتم استخدام عدة أعمدة بيانات بدلاً من ذلك
لتجنب الاستعلام عن نفس SQL عدة مرات عندما يكون الحد الأدنى والمتوسط والحد الأقصى
اللازمة للرسم البياني...
* بالنسبة لكفاءة قاعدة البيانات، يجب أن تفكر في وجود جدولين، أحدهما يحتوي على قيم تاريخية
والآخر يحتوي على أحدث البيانات.
يجب أن يظل هذا الجدول الثاني صغيرًا للسماح بأقل قدر من حظر SQL
صياغات.
مع mysql يمكنك حتى استخدام myisam table-type للأول وInnoDB للثاني.
وهذا أمر مثير للاهتمام بشكل خاص كما هو الحال مع الجداول التي تحتوي على +100 مليون صف، حيث يكون myisam أصغر بكثير
ثم InnoDB.
* لتصحيح أخطاء عبارات SQL، قم بتعيين متغير البيئة RRDDEBUGSQL وSQL الفعلي
تتم طباعة البيانات والتوقيت على stderr.
الأداء مسائل مع MySQL الخلفية
يواجه LibDBI مشكلة كبيرة في الأداء عند استرداد البيانات من خادم MySQL. أداء
يعتمد التأثير بشكل كبير على عدد القيم التي تستردها من قاعدة البيانات. ل
على سبيل المثال، قد يستغرق الأمر أكثر من ثانيتين لرسم الرسم البياني 2DS على 5 ساعة من البيانات باستخدام a
دقة 5 دقائق (مقابل 100 مللي ثانية عندما تأتي البيانات من ملف RRD). لقد كان هذا الخطأ
تم إصلاحه على أحدث إصدار من LibDBI (لم يتم إصداره بعد). في ذلك الوقت، سوف تحتاج إلى
قم بتجميع برامج تشغيل libdbi و libdbi من مستودع CVS لإصلاحها. يمكنك العثور على المزيد
معلومات حول موضوع القائمة البريدية لمستخدمي libdbi:
http://sourceforge.net/mailarchive/message.php?msg_id=30320894
استخدم rrdgraph_libdbi عبر الإنترنت باستخدام خدمات onworks.net