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

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

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

استخدام أدوات تتبُّع المحتوى على "Realtime Database"

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

استخدام أداة تحليل الأداء في Realtime Database

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

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

استخدام وحدة تحكّم Firebase

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

استخدام 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 overhead: يمكنك استخدام network/https_requests_count لمراقبة عدد طلبات الاتصال عبر طبقة المقابس الآمنة التي تلقّتها قاعدة بياناتك، وفصل الطلبات التي أعادت استخدام تذكرة جلسة طبقة المقابس الآمنة الحالية باستخدام الفلتر reused_ssl_session. يمكنك قياس ذلك مقارنةً بـ network/sent_bytes_count وnetwork/sent_payload_and_protocol_bytes_count لمراقبة ما إذا كان تطبيقك يستخدم تذاكر جلسات SSL بكفاءة أم لا.

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

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

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

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

  • ‫admin: عمليات المشرف، مثل ضبط القواعد وقراءة البيانات الوصفية للمشروع
  • ‫auth: التحقّق من المصادقة من حسابات الخدمة أو مصادقة Firebase لعميل واحد
  • 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: عدد عمليات تقييم قواعد قاعدة بيانات الوقت الفعلي التي تم إجراؤها استجابةً لطلبات الكتابة أو القراءة يمكنك تقسيم هذا المقياس حسب نتيجة الطلب (ALLOW أو DENY أو ERROR).

يمكنك تخصيص الرسم البياني Cloud Monitoring لتقييمات القواعد حسب الحاجة، على سبيل المثال، من خلال الفلترة حسب نتائج تقييم معيّنة، مثل "السماح" أو "الرفض" أو "الخطأ". يتم تناول إعداد الرسوم البيانية وتخصيصها في مراقبة استخدام قاعدة البيانات.

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