الجرافيت هو نظام رسم بياني في الوقت الحقيقي قابل للتطوير بدرجة كبيرة وأداة مراقبة على مستوى المؤسسة. يستخدم لجمع معلومات موقع الويب في الوقت الفعلي وإجراء الإحصائيات، ويمكنه جمع معلومات مختلفة عن حالة تشغيل خدمة موقع الويب.
من يجب أن يستخدم الجرافيت؟
أي شخص يريد تتبع أي قيمة رقمية على المدى الطويل. إذا كان لديك رقم قد يتغير بمرور الوقت، وقد ترغب في رسم هذه القيمة بيانيًا بمرور الوقت، فقد يناسب الجرافيت احتياجاتك.
على وجه التحديد، تم تصميم الجرافيت للتعامل مع بيانات السلاسل الزمنية الرقمية. على سبيل المثال، يعد الجرافيت رائعًا لرسم أسعار الأسهم بيانيًا لأنها أرقام تتغير بمرور الوقت. سواء كان الأمر يتعلق ببعض نقاط البيانات، أو العشرات من مقاييس الأداء من آلاف الخوادم، فإن Graphite هو الخيار المناسب لك. كمكافأة، ليس عليك معرفة أسماء هذه الأشياء مسبقًا (من يريد الحفاظ على مثل هذا التكوين الضخم؟)؛ كل ما عليك فعله هو إرسال اسم المقياس، والطابع الزمني، والقيمة، وسيتولى Graphite الباقي.
ما مدى قابلية الجرافيت للتوسع؟
من منظور وحدة المعالجة المركزية، يتغير حجم الجرافيت أفقيًا على كل من الواجهة الأمامية والخلفية، مما يعني أنه يمكنك ببساطة إضافة المزيد من الأجهزة للحصول على المزيد من الإنتاجية. كما أنه متسامح مع الأخطاء، أي أن فقدان جهاز الواجهة الخلفية سيؤدي إلى الحد الأدنى من فقدان البيانات (بغض النظر عما قام هذا الجهاز بتخزينه مؤقتًا في الذاكرة) ولن يعطل النظام إذا كان لديك سعة متبقية كافية للتعامل مع التحميل.
من منظور الإدخال/الإخراج، تحت التحميل، سيقوم Graphite بإجراء العديد من عمليات الإدخال/الإخراج الصغيرة على العديد من الملفات المختلفة بسرعة كبيرة. وذلك لأن كل مقياس مختلف يتم إرساله إلى Graphite يتم تخزينه في ملف قاعدة البيانات الخاص به، على غرار عدد الأدوات المبنية على RRD (drraw، Cacti، Centreon، وما إلى ذلك). في الواقع، استخدم الجرافيت في البداية RRD للتخزين حتى ظهرت قيود أساسية تتطلب محرك تخزين جديد.
تتطلب السعة العالية (آلاف المقاييس المختلفة التي يتم تحديثها في الدقيقة) تقريبًا مجموعة RAID جيدة و/أو SSD. إذا لم يتمكن القرص من مواكبة العدد الكبير من عمليات الكتابة الصغيرة التي تحدث (بضع بايتات فقط لكل نقطة بيانات، ولكن معظم الأقراص القياسية لا يمكنها التعامل مع أكثر من بضعة آلاف من عمليات الإدخال/الإخراج في الثانية، حتى لو كانت صغير)، سيتم تخزين البيانات الواردة للواجهة الخلفية لـ Graphite مؤقتًا. عندما يحدث هذا، يهمس محرك قاعدة بيانات Graphite من خلال السماح لـ Carbon بكتابة نقاط بيانات متعددة في وقت واحد، وبالتالي زيادة الإنتاجية الإجمالية على حساب تخزين البيانات الزائدة في الذاكرة مؤقتًا حتى يمكن كتابتها.
يدعم Graphite أيضًا واجهات التخزين الخلفية البديلة التي يمكنها تغيير هذه الميزات بشكل كبير.
كيف في الوقت الحقيقي هو الرسم البياني؟
الوقت الحقيقي جدا. حتى في ظل التحميل الثقيل، عندما يكون عدد المقاييس الواردة لكل فاصل زمني أكبر بكثير من السرعة التي يمكن لنظام التخزين من خلالها إجراء عمليات الإدخال/الإخراج، ويتم تخزين عدد كبير من نقاط البيانات مؤقتًا في مسار التخزين (راجع شرح السؤال السابق ) ، لا يزال بإمكان الجرافيت رسم الرسوم البيانية في الوقت الفعلي. الحيلة هي أنه عندما يتلقى تطبيق الويب Graphite طلبًا لرسم الرسم البياني، فإنه يسترد البيانات من القرص وكذلك من ذاكرة التخزين المؤقت للتخزين المسبق (قد يتم توزيع ذاكرة التخزين المؤقت إذا كان لديك خوادم خلفية متعددة) ويجمع بين مصدري البيانات مجتمعة لإنشاء رسم بياني في الوقت الحقيقي.
من يستخدم الجرافيت بالفعل؟
تم تطوير Graphite داخليًا بواسطة Orbitz، حيث يتم استخدامه لتصور مجموعة متنوعة من البيانات التشغيلية الرئيسية، بما في ذلك مقاييس التطبيق ومقاييس قاعدة البيانات والمبيعات والمزيد. حتى كتابة هذه السطور، يستطيع نظام إنتاج Orbitz معالجة ما يقرب من 160.000 مقياس مختلف في الدقيقة، ويعمل على خادمين niagra-2 Sun على شبكة SAN عالية السرعة.
ما هو مكتوب في الجرافيت؟
تم إنشاء تطبيق الويب Graphite على إطار عمل الويب Django ويستخدم مجموعة أدوات ExtJS javascript GUI. يتم عرض الرسومات باستخدام مكتبة الرسومات بالقاهرة. تتم كتابة الواجهة الخلفية وقاعدة البيانات بلغة بايثون النقية.
من سيكتب ويحافظ على الجرافيت؟
تم تطوير الجرافيت في الأصل بواسطة كريس ديفيس من أوربيتز. لقد كانت Orbitz منذ فترة طويلة جزءًا من مجتمع المصادر المفتوحة وأصدرت عددًا من المنتجات الأخرى المطورة داخليًا.
يتم تطوير الجرافيت حاليًا بواسطة فريق من المتطوعين ضمن منظمة Graphite-Project GitHub.