مراقبة أداء قاعدة البيانات

هناك بضع طرق مختلفة لمراقبة أداء Firebase Realtime Database's ورصد المشاكل المحتملة في تطبيقك. ويمكن أن يمنحك الاطّلاع على معدّل نقل البيانات الواردة والصادرة والحِمل في تطبيقك فكرة عمّا يمكن توقّعه في فاتورتك. بالإضافة إلى ذلك، إذا بدا لك أنّ هناك مشكلة، يمكن أن يكون الحصول على صورة واضحة لعمليات قاعدة البيانات أداة مفيدة لتحديد المشاكل وحلّها.

تتناول هذه الصفحة مراقبة أداء Realtime Database. لمراقبة الاستخدام ، يُرجى الاطّلاع على مراقبة استخدام قاعدة البيانات.

استخدام أدوات المراقبة Realtime Database

يمكنك جمع بيانات عن أداء Realtime Database's من خلال بضع أدوات مختلفة، استنادًا إلى مستوى التفاصيل الذي تحتاجه.

استخدام أداة Realtime Database Profiler

توفر أداة Realtime Database profiler نظرة عامة في الوقت الفعلي على عمليات القراءة والكتابة في قاعدة البيانات. يتضمّن التقرير معلومات عن سرعة كل عملية وحجم حمولتها، بالإضافة إلى طلبات البحث غير المفهرسة. ومع ذلك، لا يتضمّن التقرير معلومات سابقة أو أي إحصاءات حول تكاليف الاتصال، ولا يجب استخدامه لتقدير تكاليف الفوترة.

لمزيد من المعلومات حول استخدام أداة Profiler، يُرجى الاطّلاع على تحديد ملف قاعدة البيانات.

استخدام Firebase Console

تقدّم علامة التبويب الاستخدام في Firebase Console معلومات عن الاتصالات المتزامنة بقاعدة البيانات، ومقدار البيانات التي تخزّنها، ومعدّل نقل البيانات الصادرة (بما في ذلك البروتوكول وتكاليف التشفير)، وحِمل قاعدة البيانات على فترات زمنية مدتها دقيقة واحدة. على الرغم من أنّ علامة التبويب الاستخدام تمنحك نظرة عامة أكثر دقة على الأداء العام لقاعدة البيانات، قد لا تتمكّن من الحصول على تفاصيل كافية لتحديد المشاكل المحتملة في الأداء وحلّها.

استخدام Cloud Monitoring

باستخدام Cloud Monitoring من Google Cloud، يمكنك استخدام مستكشف المقاييس للاطّلاع على مقاييس الأداء الفردية، أو إنشاء لوحات بيانات مختلفة تتضمّن رسومًا بيانية تعرض مجموعات مختلفة من مقاييس الأداء بمرور الوقت. يوفّر تكامل Realtime Database مع Cloud Monitoring أعلى مستوى من التفاصيل.

يتم وصف خطوات إعداد Cloud Monitoring في مراقبة استخدام قاعدة البيانات.

يُرجى الاطّلاع على الأقسام التالية للحصول على نصائح حول استخدام مقاييس معيّنة في Cloud Monitoring لرصد مشاكل الأداء.

مراقبة الأداء في Cloud Monitoring

إذا كنت تواجه مشاكل في الأداء، بما في ذلك وقت التشغيل أو وقت الاستجابة، قد يكون من المفيد استخدام Cloud Monitoring لمراقبة المقاييس التالية. تجدر الإشارة إلى أنّ جميع أسماء أنواع المقاييس تبدأ بالبادئة firebasedatabase.googleapis.com/.

اسم المقياس الوصف
حِمل قاعدة البيانات

io/database_load: استخدِم هذا المقياس لمراقبة مقدار معدّل نقل البيانات المتاح لقاعدة البيانات الذي يتم استخدامه لمعالجة الطلبات بمرور الوقت. قد تظهر لك مشاكل في الأداء عندما يقترب حِمل قاعدة البيانات من إجمالي معدّل نقل البيانات المتاح. يمكنك أيضًا الاطّلاع على أنواع العمليات التي تستخدم أكبر قدر من الحِمل، وتحديد المشاكل وحلّها وفقًا لذلك. قد يتجاوز الحِمل الذي يتم الإبلاغ عنه% 100 في العمليات التي تستغرق أكثر من دقيقة. يحدث ذلك عندما يتم تجميع إجمالي معدّل نقل البيانات المستخدَم على مدار عدة دقائق في فترة إعداد التقارير التي تبلغ دقيقة واحدة بعد اكتمال العملية.

تم إيقاف الشبكة بسبب التجاوزات

network/disabled_for_overages: يعكس هذا المقياس أي انقطاعات قد تكون حدثت إذا تجاوزت Realtime Database أي حدود لمعدّل نقل البيانات أو الشبكة .

تم إيقاف مساحة التخزين بسبب التجاوزات

storage/disabled_for_overages: يعكس هذا المقياس أي انقطاعات قد تكون حدثت إذا تجاوزت Realtime Database أي حدود لمساحة التخزين.

يمكنك دمج المقاييس في الرسوم البيانية على لوحة البيانات للحصول على إحصاءات ونظرات عامة مفيدة. على سبيل المثال، جرِّب المجموعات التالية:

  • العمليات: استخدِم المقياس io/database_load للاطّلاع على مقدار إجمالي حِمل قاعدة البيانات الذي يستخدمه كل نوع من أنواع العمليات. احرص على تجميع io/database_load حسب النوع لتحديد المشاكل في أنواع العمليات المختلفة وحلّها.
  • مساحة التخزين: استخدِم المقياسَين storage/limit وstorage/total_bytes لمراقبة استخدام مساحة التخزين مقارنةً بحدود مساحة التخزين في Realtime Database. يمكنك أيضًا إضافة storage/disabled_for_overages لمعرفة ما إذا كان تطبيقك قد توقّف عن العمل نتيجةً لتجاوز حدود مساحة التخزين.
  • تكاليف طبقة المقابس الآمنة (SSL): استخدِم network/https_requests_count لمراقبة عدد طلبات اتصال طبقة المقابس الآمنة التي تلقّتها قاعدة البيانات، وقسِّم الطلبات التي أعادت استخدام تذكرة جلسة حالية لطبقة المقابس الآمنة باستخدام الفلتر reused_ssl_session. يمكنك قياس ذلك مقابل network/sent_bytes_count وnetwork/sent_payload_and_protocol_bytes_count لمراقبة ما إذا كان تطبيقك يستخدم تذاكر جلسات طبقة المقابس الآمنة بكفاءة أم لا.

يمكنك أيضًا إعداد التنبيهات من خلال Cloud Monitoring وتلقّي الإشعارات استنادًا إلى Realtime Database المقاييس. على سبيل المثال، يمكنك اختيار تلقّي إشعار إذا كان io/database_load يقترب من حدّ معيّن.

يُرجى الاطّلاع على القائمة الكاملة لـ Realtime Database المقاييس المتاحة من خلال Cloud Monitoring.

أنواع حِمل قاعدة البيانات

يوفّر المقياس io/database_load أيضًا تصنيفًا لنوع العملية التي تسبّبت في الحِمل. في ما يلي الأنواع المحتمَلة للعمليات التي يتم قياسها:

  • admin: عمليات المشرف، مثل ضبط القواعد وقراءة البيانات الوصفية للمشروع
  • auth: التحقّق من المصادقة من حسابات الخدمة أو Firebase Authentication لعميل واحد
  • client_management: معالجة إضافة الاتصالات المتزامنة وإزالتها ويشمل ذلك تنفيذ عمليات قطع الاتصال عند الإزالة
  • get_shallow: استرداد البيانات من طلب REST GET باستخدام shallow=true
  • get: معالجة عمليات REST GET
  • listen: استرداد البيانات الأولية لعمليات on وonce من العملاء المتصلين.
  • on_disconnect: تسجيل عمليات قطع الاتصال من العملاء
  • put: معالجة عمليات set من العملاء أو عمليات REST PUT
  • transaction: إجراء المعاملات من طلبات REST مشروطة أو عملية transaction من عميل
  • update: معالجة عمليات update أو طلبات REST PATCH

مراقبة قواعد الأمان في Cloud Monitoring

يمكنك أيضًا تحليل تقييم قواعد الأمان. تجدر الإشارة إلى أنّ جميع أسماء أنواع المقاييس تبدأ بالبادئة firebasedatabase.googleapis.com/.

اسم المقياس الوصف
تقييمات القواعد rules/evaluation_count: عدد تقييمات قواعد Realtime Database التي تم إجراؤها استجابةً لطلبات الكتابة أو القراءة يمكنك تقسيم هذا المقياس حسب نتيجة الطلب (ALLOW أو DENY أو ERROR).

يمكنك تخصيص الرسم البياني Cloud Monitoring لتقييمات القواعد حسب الحاجة، مثلاً من خلال الفلترة حسب نتائج تقييم معيّنة أو ALLOW أو DENY أو ERROR. يتم تناول إعداد الرسوم البيانية وتخصيصها في مراقبة استخدام قاعدة البيانات.

يُرجى الاطّلاع على القائمة الكاملة لـ Realtime Database المقاييس المتاحة من خلال Cloud Monitoring.