مقال آخر في سلسلة أدوات مراقبة المنطق يتحدث عن غرافانا. نستخدم هذه الأداة البرمجية للتصور وتحليل البيانات لكل من المشاريع الداخلية والخارجية. يمكن أن تكون هذه المقالة مفيدة للمديرين الفنيين والمطورين و DevOps ومسؤولي النظام ومديري المشاريع وكذلك جميع الأطراف المهتمة.

ما هي جرافانا؟
Grafana هي منصة مفتوحة المصدر لتصور البيانات ورصدها وتحليلها. تُعد هذه الأداة ، مقترنة بـ Graylog ، جزءًا من نظامنا ثنائي الاتجاه لمراقبة سلوك المستخدم وأداء النظام . تتيح Grafana للمستخدمين إنشاء لوحات تحكم مع لوحات ، يعرض كل منها مؤشرات معينة لفترة زمنية محددة. كل لوحة تحكم عالمية ، لذا يمكن تخصيصها لمشروع محدد أو مع مراعاة أي احتياجات تطوير و / أو أعمال.
يستخدم فريق Logicify لدينا بشكل أساسي Grafana بالاشتراك مع Elasticsearch و InfluxDB ، ولكن أداة البرنامج هذه تدعم العديد من مصادر البيانات الأخرى (Prometheus ، MySQL ، Postgres ، إلخ). لكل مصدر بيانات ، يوفر Grafana محرر استعلام مخصص وصيغة خاصة.
شروط جرافانا
- اللوحة هي عنصر التصور الأساسي للمؤشرات المختارة. تدعم Grafana اللوحات التي تحتوي على رسوم بيانية وحالات مفردة وجداول ونقرات حرارية ونص مجاني ، بالإضافة إلى التكامل مع المكونات الإضافية الرسمية التي أنشأها المجتمع (مثل خريطة العالم أو الساعة) والتطبيقات التي يمكن أيضًا تصورها. يمكنك تخصيص نمط وتنسيق كل لوحة ؛ يمكن سحب جميع اللوحات إلى موقع جديد ، وإعادة ترتيبها وتغيير حجمها.
- لوحة المعلومات - مجموعة من اللوحات المنفصلة الموضوعة في شبكة مع مجموعة من المتغيرات (على سبيل المثال ، اسم الخادم والتطبيق والمستشعر). من خلال تغيير المتغيرات ، يمكنك تبديل البيانات المعروضة على لوحة التحكم (على سبيل المثال ، البيانات من خادمين منفصلين). يمكن تخصيص جميع لوحات المعلومات ، وكذلك قسم وتجزئة البيانات المقدمة فيها وفقًا لاحتياجات المستخدم. يتضمن مشروع Grafana مجتمعًا كبيرًا من مطوري ومستخدمي الكود ، لذلك هناك مجموعة كبيرة من لوحات المعلومات الجاهزة لأنواع مختلفة من البيانات والمصادر.
- في لوحات المعلومات ، يمكنك استخدام التعليقات التوضيحية لعرض أحداث معينة في لوحات مختلفة. تتم إضافة التعليقات التوضيحية بواسطة الاستعلامات المخصصة في Elasticsearch؛ على الرسم البياني ، يتم عرض التعليق التوضيحي بخط أحمر عمودي. عند المرور فوق التعليق التوضيحي ، يمكنك الحصول على وصف للحدث والعلامات ، على سبيل المثال ، لتتبع استجابة الخادم برمز الخطأ 5xx أو إعادة تشغيل النظام. بفضل هذا ، يمكنك بسهولة مقارنة الوقت ، وحدث معين وعواقبه في التطبيق ، وفحص سلوك النظام.
أفضل الممارسات لاستخدام أداة Grafana مع فريق Logicify
استخدام جرافانا في المشاريع الداخلية
بالنسبة لمشروعنا الداخلي "إنترنت الأشياء" (حل مراقبة مناخ المكتب) ، قمنا بربط Grafana بـ InfluxDB ، وهي قاعدة بيانات سلسلة زمنية ، لتصور التغيرات في مناخ المكتب والاستجابة وفقًا لذلك. تقيس مجموعة من أجهزة الاستشعار درجة الحرارة والرطوبة والضغط الجوي ومستوى ثاني أكسيد الكربون في كل منطقة من مناطق مكتبنا في خيرسون ؛ يتم جمع هذه المعلمات وتصورها في شكل رسوم بيانية Grafana على شاشة مطبخ كبيرة وعلى الإنترنت.

لوحة عدادات جرافانا مع مناطق المكتب المنطقية
لذلك نحن نراقب باستمرار معلمات جودة الهواء ، ويتفاعل مدير مكتبنا مع التغييرات: يفتح النوافذ ، إذا كان مستوى ثاني أكسيد الكربون مرتفعًا للغاية ، يتم تشغيل وإيقاف مكيف الهواء وأجهزة الترطيب.

لوحة عدادات جرافانا بمناخ مكتبي
بفضل الرسوم البيانية وشروح السلاسل الزمنية المعروضة في Grafana ، قمنا بتحليل اتجاهات المناخ المحلي في المكاتب لعدة أشهر ومواسم. استخدمنا أيضًا هذه الأداة لتصور بعض الأدوات والمعلومات المفيدة (توقعات الطقس ، وأسعار صرف العملات ، والتقاويم الداخلية) على شاشة مطبخ كبيرة.
كيفية استخدام Grafana في تطبيقات الويب المخصصة
نستخدم أداة Graylog لتخزين سجلات تطبيقات الويب وإدارتها ومراقبة أدائها في مرحلة التطوير وفي مرحلة تشغيلها. Grafana هي أداة تقوم بتحويل المجلات المخزنة في Graylog إلى أشكال مرئية للتحليل ومراقبة النظام. بالنسبة لأحد مشاريعنا الحالية ، يمكن تسمية أداة Grafana بواجهة المستخدم لتحميل ومراقبة أداء تطبيقات الويب وتدفق العميل. توجد أدوات Graylog و Grafana بشكل مستقل عن بعضها البعض ، ولم نقم بإنشاء أي أدوات تكامل معقدة خاصة لربطها ببعضها البعض. نظرًا لأن Graylog يقوم بتخزين جميع بيانات السجل في Elasticsearch ، أحد مصادر بيانات Grafana ، فإننا نستخدم ببساطة فهرس Elasticsearch المحدد حيث يتم تخزين السجلات لربط Grafana بـ Graylog.
ما المقاييس التي يمكن تصورها في Grafana لتطبيق ويب؟
لا تعتبر سجلات النص البسيط أو إشعارات الخطأ "مثيرة للاهتمام" بالنسبة إلى Grafana لأن الغرض الرئيسي منها هو تصور البيانات في شكل رسوم بيانية ومخططات وجداول. كتبنا وحدة مخصصة لـ Django لجمع البيانات التي نود تتبعها لكل طلب تمت معالجته واستجابة الشبكة / الموظف. لم تتضمن البيانات حالة النجاح / الفشل فحسب ، بل تضمنت أيضًا مجموعة من الحقول المنظمة (العامة والمتعلقة بالمشروع) ، مثل:
- إصدار التطبيق
- معرّف فريد لكل طلب
- وقت الاستجابة ووضعها
- رمز الخطأ (إن وجد)
- عنوان IP الذي تم إرسال الطلب منه
- معلومات المستخدم (البريد الإلكتروني ، اسم المستخدم للمستخدمين المسجلين ، الدور ، الأذونات)
- الجهاز ، إلخ.
يضع Django السجلات التحليلية المنظمة للمستخدم في Graylog ، مما يحفظها في دفق منفصل. على الرغم من أنه يمكن تصور هذه البيانات باستخدام لوحات العدادات المدمجة في Graylog ، إلا أنها لا تبدو جيدة مثل لوحات العدادات Grafana. لذلك ، نجبر غرافانا على قراءة هذه البيانات التحليلية وتصورها. وبالتالي ، نحن نراقب أداء التطبيق ونقوم بتنزيل البيانات في الوقت الفعلي وفي وقت لاحق.

جرافانا كأداة تصحيح
تساعدنا لوحات العدادات في Grafana بشكل أساسي في تصحيح الأخطاء في التطبيقات. إذا أبلغ العميل النهائي عن مشكلة ، فإن Grafana يمنحنا الفرصة لتمييز الأخطاء من جانب العميل / الخادم عن الأخطاء أو الفجوات الحقيقية في منطق التطبيق. نحن نتتبع جميع طلبات الويب التي بدأها العميل (باستخدام عنوان البريد الإلكتروني) ومسؤولي التطبيق والتطبيق نفسه لفترة زمنية محددة وبواسطة طريقة الاستبعاد نجد السبب.
نقوم أيضًا بتصحيح الأخطاء وإصلاحها إذا لاحظنا وجود شذوذ في لوحة التحكم في الرسوم البيانية لأداء التحميل والتطبيق. يوضح مثال الرسم البياني التالي لـ Grafana وقت الاستجابة لطلبات الويب على مدار فترة زمنية. لكل طلب ويب ، نتتبع الحد الأقصى والحد الأدنى ومتوسط أوقات الاستجابة. إذا رأينا طلبًا استغرق منا وقتًا طويلاً في معالجته ، فإننا نقيس جزءًا معينًا من الرسم البياني ونبحث في المشكلة.

مثال على رسم جرافانا يظهر وقت استجابة الويب
يوضح رسم بياني آخر حمل النظام لفترة زمنية محددة وهو مفيد لتتبع حركة المرور. إذا رأينا طفرة غير عادية في النشاط ، على سبيل المثال ، بعد ساعات أو في عطلات نهاية الأسبوع ، فسوف ندرسها. يمكن أن يحدث هذا الارتفاع ، على سبيل المثال ، عن طريق برامج زحف Google بفهرسة محتوى الموقع ، أو عن طريق برامج الروبوت الخبيثة التي تفحص نظامنا بحثًا عن نقاط الضعف. مرة أخرى ، يتم التحقيق في كل حالة والنظر فيها وفقًا لذلك.

مثال على رسم جرافانا يظهر تنزيل التطبيق
تمتلك Grafana آلية إشعار مضمنة (على سبيل المثال ، عبر البريد الإلكتروني أو عبر الإشعارات عبر Slack) وفقًا لقواعد معينة. لا نستخدم هذه الميزة في أداة Grafana ، نظرًا لأن لدينا جميع الإشعارات التي تم تكوينها في Graylog . ومع ذلك ، لا يمكن رؤية بعض المشكلات المتعلقة بأداء النظام إلا بعد تشغيل البرنامج ، على سبيل المثال ، وقت استجابة طويل بشكل غير عادي لطلب ويب. لن نتلقى إخطار Graylog بهذا ، ولكن الشذوذ سيكون مرئيًا بوضوح على مخطط Grafana. لذلك ، تكمل كلتا الأداتين بعضهما البعض عندما نكتشف بعض المشاكل: على مستوى عالٍ نتحقق من Grafana لفهم ما حدث ولماذا ، ثم نتعمق أكثر في Graylog باستخدام معرف طلب محدد.
على عكس Graylog ، الذي يستخدم لكل من التطبيقات المطورة والمستخدمة ، يتم استخدام Grafana فقط للتطبيقات المستخدمة. الاستثناء الوحيد عند استخدام Grafana لتطبيق مازال في مرحلة التطوير هو اختبار الأداء. نقوم بمحاكاة تمهيد النظام باستخدام JMeter ، ثم تحقق من لوحات معلومات Grafana لمعرفة كيفية تفاعلها.
Grafana كأداة ذكاء الأعمال
بالإضافة إلى تتبع الأداء وتصحيح الأخطاء ، تعد لوحات العدادات Grafana أداة قوية لاتخاذ قرارات عمل مستنيرة. عند تكوينه بشكل صحيح (يفضل أن يكون جنبًا إلى جنب مع خدمة Google Analytics) ، يمكن لـ Grafana تصور تحليلات مخصصة لسلوك المستخدم في النظام في شكل مخططات دائرية ومخططات زمنية وعناصر رسومية أخرى. بناءً على ذلك ، يمكن للأطراف المهتمة بالمنتج اتخاذ قرارات حول توسيع نطاق التطبيق ، وإضافة بعض الوظائف أو إزالتها وتحسين دورة التفاعل مع العملاء.

مثال على لوحة معلومات Grafana التي تعرض سلوك المستخدم في تطبيق التجارة الإلكترونية
نظرًا لأن لوحة التحكم المذكورة أعلاه تركز بشكل أكبر على الأعمال التجارية ، فإن المطورين يستخدمونها لأغراض داخلية ، بدلاً من ذلك ، كأداة أمان لتتبع تدفق العملاء في تطبيق التجارة الإلكترونية: التسجيل والتفويض والطلبات المقدمة خلال فترة زمنية معينة.
فيما يلي مشروعان في العالم الحقيقي حيث تمكنت Grafana من زيادة قابلية استخدام تطبيق ويب.
- بمساعدة Grafana ، نراقب بانتظام حالة الطلبات الدورية في النظام ونقوم بتصفية الطلبات الفاشلة. تعتمد هذه الطلبات على الاشتراك ، أي يتم إنشاؤها في النظام كل شهر ، ويتم خصم الأموال تلقائيًا من الحسابات المصرفية للعملاء. في بعض الأحيان تفشل المدفوعات (عدم كفاية الأموال / رفض مؤسسة مالية) ، ثم يتحقق مسؤولو النظام من الموقف ويتصلون بالعملاء لإعادة إنشاء الطلب يدويًا. وبالتالي ، لا يوجد أمر واحد بعيدًا عن الأنظار ؛ راضون العملاء والموردين.
- باستخدام التقارير التي تم إنشاؤها باستخدام Grafana لتطبيق التجارة الإلكترونية ، وجدنا أن نسبة كبيرة من العملاء الجدد يغادرون صفحة الدفع ، على الرغم من أن لديهم بالفعل عناصر في سلالهم. تم دعم هذا الاستنتاج من خلال تقارير خدمة Google Analytics ، وبالتالي تم تحليل إجراء الخروج خطوة بخطوة وتحسينه: الآن يمكن للمستخدمين تقديم طلب في نقرتين. ونتيجة لذلك ، زاد معدل تحويل الزائرين للعملاء - كما نما ربح المورد.
تعد Grafana مكونًا مهمًا في نظام مراقبة فريق Logicify للمشاريع الداخلية والخارجية. أداة البرنامج هذه مفتوحة المصدر ، بالإضافة إلى مجتمع كبير ونشط من المطورين. لكن الأهم من ذلك كله أننا نحب المرونة - فهي تدعم العديد من مصادر البيانات وتسهل تخصيص لوحات المعلومات واللوحات.
مقالات ذات صلة: