مراقبة مقاييس قواعد البيانات

توضّح هذه الصفحة كيفية استخدام مقاييس Cloud Monitoring في Cloud Firestore لمراقبة قاعدة بياناتك.

Cloud Monitoring مقياس لـ "Cloud Firestore"

تقدّم الأقسام التالية نظرة عامة على المقاييس المتاحة لـ Cloud Firestore.

الموارد المراقَبة

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

باستخدام واجهة برمجة تطبيقات Cloud Monitoring، تتم مراقبة أداء "Cloud Firestore" باستخدام المورد التالي:

Resources الوصف
firestore.googleapis.com/Database نوع المورد الخاضع للمراقبة الذي يوفّر تفاصيل عن project وlocation وdatabase_id

المقاييس

للحصول على قائمة كاملة بمقاييس "Cloud Firestore"، يُرجى الاطّلاع على مقاييس "Cloud Firestore". يوضّح القسم التالي بعض المقاييس المتاحة.

مقاييس وقت تشغيل الخدمة

توفّر مقاييس serviceruntime نظرة عامة شاملة على عدد الزيارات في المشروع. تتوفّر هذه المقاييس لمعظم واجهات برمجة تطبيقات Google Cloud. يحتوي نوع المورد المراقَب consumed_api على هذه المقاييس الشائعة. يتم أخذ عينات من هذه المقاييس كل 30 دقيقة، ما يؤدي إلى تسوية البيانات.

تصنيف الموارد المهم لمقاييس serviceruntime هو method. يمثّل هذا التصنيف طريقة RPC الأساسية التي تم طلبها. قد لا تكون طريقة حزمة تطوير البرامج (SDK) التي تستدعيها تحمل بالضرورة الاسم نفسه لطريقة RPC الأساسية. والسبب في ذلك هو أنّ حزمة تطوير البرامج (SDK) توفّر تجريدًا عالي المستوى لواجهة برمجة التطبيقات. ومع ذلك، عند محاولة فهم كيفية تفاعل تطبيقك مع Cloud Firestore، من المهم فهم المقاييس استنادًا إلى اسم طريقة RPC.

إذا كنت بحاجة إلى معرفة طريقة RPC الأساسية لطريقة معيّنة في حزمة تطوير البرامج (SDK)، يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات.

api/request_latencies

يوفّر مقياس api/request_latencies توزيعات وقت الاستجابة في جميع الطلبات المكتملة.

يسجّل Cloud Firestore المقاييس من مكوّن خدمة Cloud Firestore. تشمل مقاييس وقت الاستجابة الوقت الذي يتلقّى فيه Cloud Firestore الطلب إلى الوقت الذي ينتهي فيه Cloud Firestore من إرسال الردّ، بما في ذلك التفاعلات مع طبقة التخزين. وبالتالي، لا يتم تضمين وقت استجابة الإرسال والاستقبال (rtt) بين العميل وخدمة "Cloud Firestore" في هذه المقاييس.

مقاييس عمليات المستندات

يوفّر Cloud Firestore عدد عمليات القراءة والكتابة والحذف. يوفّر مقياس الكتابة تفصيلاً بين عمليتَي "الإنشاء" و"التعديل". تتوافق هذه المقاييس مع عمليات CRUD.

يمكن استخدام المقاييس التالية لمعرفة ما إذا كانت قاعدة بياناتك تتضمّن عددًا كبيرًا من عمليات القراءة أو الكتابة، ومعدّل المستندات الجديدة مقارنةً بالمستندات المحذوفة.

  • document/delete_ops_count: عدد عمليات حذف المستندات الناجحة
  • document/read_ops_count: عدد عمليات قراءة المستندات الناجحة من طلبات البحث أو عمليات البحث
  • document/write_ops_count: عدد عمليات كتابة المستندات الناجحة

مقاييس الفوترة

يمكنك استخدام هذه المقاييس لفهم استخدام الفوترة. ولا تشمل هذه المقاييس الفوترة من عمليات المشرف (الفهرسة والاستيراد والتصدير والحذف المجمّع).

  • api/billable_read_units: عدد وحدات القراءة التي يتم تحصيل رسوم مقابلها ويمكن تقسيم الاستخدام حسب اسم الخدمة وطريقة واجهة برمجة التطبيقات.
  • ‫api/billable_realtime_read_units: عدد وحدات التعديلات في الوقت الفعلي التي يتم تحصيل رسوم مقابلها من التعديلات في الوقت الفعلي ينطبق ذلك على Cloud Firestore في الوضع الأصلي فقط.
  • api/billable_write_units: عدد وحدات الكتابة التي تتم فوترتها ويمكن تقسيم الاستخدام حسب اسم الخدمة وطريقة واجهة برمجة التطبيقات.
  • ‫document/billable_managed_delete_write_units: عدد وحدات الكتابة التي تتم فوترتها من خدمات الحذف المُدارة، مثل TTL

مقاييس الفهرسة

يمكن مقارنة معدلات كتابة الفهرس بمقياس document/write_ops_count لفهم توزيع الفهرس.

  • ‫index/write_count: عدد عمليات كتابة الفهرس

مقاييس TTL

تُستخدم مقاييس "مدة الصلاحية" لمقاييس Cloud Firestore من أجل مراقبة تأثير سياسة "مدة الصلاحية" المفروضة.

  • document/ttl_deletion_count: إجمالي عدد المستندات التي تم حذفها من خلال خدمات TTL
  • ‫document/ttl_expiration_to_deletion_delays: الوقت المنقضي بين انتهاء صلاحية مستند يتضمّن مدة بقاء (TTL) ووقت حذفه فعليًا.

عرض لوحات البيانات المُعدّة مسبقًا وإنشاء لوحات بيانات مخصّصة

تتيح Cloud Firestore استخدام لوحات بيانات معدّة مسبقًا تستخدم مقاييس Cloud Monitoring. يمكنك أيضًا إنشاء لوحات بيانات مخصّصة.

عرض مقاييس استخدام قاعدة البيانات

افتح لوحات بيانات الاستخدام في Google Cloud Console للاطّلاع على عمليات قراءة المستندات وكتابتها وحذفها بمرور الوقت.

التحكم في الدخول

تتطلّب لوحات بيانات الاستخدام إذن monitoring.timeSeries.list لإدارة الهوية وإمكانية الوصول (IAM). تمنح أدوار "مالك المشروع" و"المحرِّر" و"المُشاهد" هذا الإذن. يمكنك أيضًا منح هذا الإذن من خلال دور في Cloud Monitoring أو دور مخصّص.

لوحة بيانات استخدام قاعدة البيانات

للاطّلاع على مقاييس الاستخدام لقاعدة بيانات Cloud Firestore، اتّبِع الخطوات التالية:

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة قواعد البيانات.

    الانتقال إلى "قواعد البيانات"

  2. اختَر قاعدة البيانات المطلوبة من قائمة قواعد البيانات.

  3. في قائمة التنقّل، انقر على الاستخدام.

لوحة بيانات الاستخدام وتقارير الفوترة

توفّر لوحات بيانات استخدام Cloud Firestore في وحدة التحكّم تقديرًا للاستخدام. ويمكن أن تساعدك في تحديد الارتفاعات المفاجئة في الاستخدام. ومع ذلك، لا تعرض لوحة البيانات العمليات التي تم تحصيل رسومها بدقة. من المرجّح أن يكون الاستخدام الذي تتم فوترته أعلى. لمراقبة الفوترة، يُرجى الاطّلاع على مقاييس الفوترة.

في جميع حالات التناقض، تكون الأولوية لتقرير الفوترة على لوحة بيانات الاستخدام.

تؤدي عمليات الاستيراد والتصدير إلى حدوث اختلافات بين لوحة بيانات الاستخدام والاستخدام الذي تتم فوترته. لا تظهر عمليات القراءة والكتابة التي يتم إجراؤها من خلال هذه العمليات في لوحة بيانات الاستخدام.

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

تتضمّن صفحة المراقبة في قسم Cloud Firestore ضمن وحدة تحكّم Google Cloud لوحات بيانات مراقبة محدّدة مسبقًا، مثل مُدد وقت استجابة الطلبات (P50 وP99) ورموز الاستجابة وإحصاءات طلبات البحث (P50). يمكنك أيضًا إنشاء لوحة بيانات مخصّصة واحدة كحدّ أقصى. للوصول إلى صفحة المراقبة لقاعدة بيانات، اتّبِع الخطوات التالية:

  1. في وحدة تحكّم Google Cloud، افتح صفحة Cloud Firestore قواعد البيانات.

    الانتقال إلى "قواعد البيانات"

  2. اختَر قاعدة بيانات من القائمة.

  3. في قائمة التنقّل، انقر على المراقبة لفتح لوحة بيانات.

إنشاء لوحات بيانات مخصّصة في Cloud Monitoring

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

لمزيد من المعلومات حول إعداد لوحة بيانات مخصّصة، يُرجى الاطّلاع على المقالتَين إدارة لوحة البيانات المخصّصة وإضافة تطبيقات مصغّرة إلى لوحة البيانات.

إنشاء سياسة تنبيه

في Cloud Monitoring، يمكنك إنشاء تنبيهات لإعلامك عند حدوث تغيير في حالة مقياس معيّن. ويمكنك استخدام هذه التنبيهات لتلقّي إشعارات بشأن المشاكل المحتملة قبل أن تؤثر في المستخدمين.

لمزيد من المعلومات حول إنشاء التنبيهات، يُرجى الاطّلاع على إنشاء سياسات تنبيهات تستند إلى الحدّ الأدنى للمقاييس.

لنفترض أنّنا أنشأنا سياسة تنبيه بشأن وقت الاستجابة. تتحقّق سياسة التنبيه من وقت الاستجابة p99 خلال فترة زمنية متجددة مدتها 5 دقائق. إذا ظلّ وقت الاستجابة p99 أعلى من 250 ملي ثانية لمدة 5 دقائق، يتم تشغيل التنبيه.

وحدة التحكم

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة المراقبة ثم اختَر   التنبيه.

    الانتقال إلى "المراقبة"

  2. انقر على إنشاء سياسة.

  3. اختَر مقياس مُدد تأخير الطلبات من مورد واجهة برمجة التطبيقات المستهلكة.

  4. أضِف فلتر خدمة لـ firestore.googleapis.com لقواعد بيانات Firestore في الوضع الأصلي.

  5. انقر على التالي لضبط المشغِّل.

  6. اختَر أنواع الشروط على أنّها الحدّ الأدنى.

    يتم ضبط شرط الحدّ الأدنى على قيمة 250 ملي ثانية. يتم تشغيل تنبيه عندما تظل قيمة زمن انتقال p99 كما هي طوال فترة النافذة المتجددة (5 دقائق).

  7. اضبط قيمة الحدّ الأدنى على 250.

  8. انقر على التالي لضبط الإشعارات.

  9. اضبط اسم سياسة التنبيه وانقر على التالي.

  10. راجِع إعدادات التنبيه وانقر على إنشاء سياسة.

عميل مُحتمَل بنظر فريق التسويق (MQL)

يمكنك تنفيذ سياسة التنبيه نفسها بشأن وقت الاستجابة باستخدام طلب بحث بلغة Monitoring Query Language (MQL). لمزيد من الأمثلة على استخدام MQL، يُرجى الاطّلاع على أمثلة على طلبات البحث في MQL.

fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_latencies'
| filter (resource.service == 'firestore.googleapis.com')
| group_by 5m,
    [value_request_latencies_percentile:
      percentile(value.request_latencies, 99)]
| every 5m
| condition val() > 0.25 's'