إعداد تنبيهات الفوترة المتقدّمة وآلية التنفيذ

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

  • استخدام Cloud Monitoring لإنشاء تنبيهات أكثر تطورًا وفي الوقت المناسب

  • استخدام إشعار الفوترة Pub/Sub بالإضافة إلى دالة Cloud Function المقابلة لإنشاء سلوك مخصّص استجابةً للتغييرات في إنفاقك

على الرغم من أنّ هاتَين الطريقتَين تتطلّبان المزيد من العمل من جانبك، فإنّهما تمنحانك القدرة على التحكّم في أنواع التنبيهات التي تتلقّاها وكيفية الردّ عليها.

تقدّم هذه الصفحة نظرة عامة على كلّ من هذَين النهجَين.

إنشاء تنبيهات أكثر تطورًا باستخدام Cloud Monitoring

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

Cloud Monitoring مفيد لأنواع مختلفة من التنبيهات:

  • إذا كان أحد الموارد التي يعتمد عليها مشروعك غير متاح (لكلّ من Firebase و Google Cloud خدمات، ولكن حتى للخدمات الخارجية، مثل AWS)

  • إذا كانت خدمات مثل Cloud Functions تستغرق وقتًا أطول من المتوقّع للردّ

  • إذا كانت حزمة Cloud Storage أو مثيل Realtime Database أو Cloud Firestore يرفض عددًا كبيرًا جدًا من الطلبات (ما يشير إلى أنّ Firebase Security Rules قد تكون غير صحيحة)

  • إذا زاد مقدار الموارد التي تستخدمها بعض منتجات Firebase عن حدّ معيّن

عادةً ما يتم إرسال التنبيهات التي يتم إنشاؤها من خلال Cloud Monitoring بسرعة أكبر من رسائل البريد الإلكتروني الأساسية للتنبيهات بشأن الميزانية، والتي يتم إرسالها عادةً مرة واحدة في اليوم. يمكن أن تتخذ التنبيهات شكل رسائل SMS أو رسائل على قناة Slack أو إشعارات PagerDuty أو طلبات ردّ على الويب أو غير ذلك. تتيح لك هذه الخيارات إرسال تنبيهات بمستويات ظهور أعلى وأكثر قابلية للتنفيذ.

استخدام Cloud Monitoring

للبدء في استخدام Cloud Monitoring، ننصحك بالبدء بـ Metrics Explorer، الذي يتيح لك إنشاء رسوم بيانية للمقاييس المخصّصة ضمن مشروعك على Firebase أو Google Cloud وعرض استخدامها.

على وجه التحديد، يمكنك الاطّلاع على موارد مثل Cloud Firestore Realtime Database أو مثيلات Cloud Function. يمكنك الاطّلاع على معلومات الاستخدام حول هذه المنتجات (مثل عدد عمليات قراءة المستندات أو عدد البايتات المُرسَلة أو عدد طلبات الدوال) التي ستؤثّر في فاتورتك.

بعد أن تصبح مرتاحًا لعرض استخدام الموارد في Metrics Explorer، ننصحك بإنشاء سياسة تنبيهات بشأن المقاييس التي تهمّك أكثر. في ما يلي بعض الأمثلة على سياسات التنبيهات:

  • إذا كان عدد عمليات قراءة المستندات في فترة زمنية مدتها 30 دقيقة أكبر من قيمة معيّنة

  • إذا كان استخدام مورد معيّن (مثل طلب دالة) يبدو أنّه يتزايد بسرعة كبيرة جدًا في فترة زمنية معيّنة

إنشاء منطق فوترة إضافي

ترسل التنبيهات بشأن الميزانية رسائل إلكترونية تلقائيًا عندما تصل ميزانيتك إلى حدود معيّنة، ولكن بالنسبة إلى التنبيهات الأكثر تطورًا أو الردود الآلية على الزيادات في الإنفاق، يمكنك إعداد منطق مخصّص إضافي استنادًا إلى رسائل Google Cloud Pub/Sub.

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

Pub/Sub هي خدمة تمرير رسائل تتيح للخدمات الأخرى إرسال رسائل، عادةً ما تكون في شكل بيانات JSON، بشكل غير متزامن من خلال قنوات تُعرف باسم مواضيع Pub/Sub. يمكنك إعداد خدمات مأذون بها، مثل Cloud Functions، للاستماع إلى الرسائل في هذه المواضيع والتعامل مع البيانات بشكل مناسب.

يُرجى العِلم أنّه يتم إرسال إشعارات Pub/Sub للفوترة مرة واحدة كل 20 دقيقة تقريبًا، سواء تغيّر استخدامك للفوترة أم لا، وهي غير مرتبطة بحالة معيّنة (ما يعني أنّها لا تقدّم أي سياق بشأن ما سبقها). إذا أردت تتبُّع الزيادات غير العادية في الإنفاق بمرور الوقت، أو مقارنة إنفاقك بالدورة السابقة، عليك إدارة هذه البيانات السابقة بنفسك باستخدام قاعدة بيانات مثل Cloud Firestore أو Realtime Database.

استخدام مواضيع Pub/Sub مع Cloud Functions

يمكنك إعداد موضوع Pub/Sub لبيانات الفوترة من خلال الانتقال إلى الميزانية المرتبطة بمشروع Firebase في Google Cloud console (ضمن الفوترة > الميزانيات والتنبيهات)، ثم النقر على مربّع الاختيار ربط موضوع Pub/Sub بهذه الميزانية. سيؤدي ذلك إلى إنشاء Pub/Sub موضوع يمكنك الاستماع إليه لاحقًا. للاطّلاع على الخطوات التفصيلية، يُرجى مراجعة المستندات الكاملة .

بعد إنشاء موضوع الفوترة Pub/Sub، يمكنك كتابة دالة Cloud Function للاستماع إلى موضوع الفوترة والتعامل مع البيانات وفقًا لذلك. يتم إرسال البيانات بتنسيق JSON وتتضمّن معلومات مفيدة مثل المبلغ الذي أنفقته حتى الآن ومبلغ ميزانيتك وتاريخ بدء دورة الفوترة الحالية.

تتضمّن مستندات Google Cloud تفاصيل كاملة حول كيفية تلقّي هذه البيانات باستخدام Cloud Function. ومع ذلك، إذا كنت تستخدم Cloud Functions for Firebase لنشر الدوال، تكون العملية العامة أبسط قليلاً (يمكنك الاطّلاع على مستندات Firebase). يمكنك أيضًا الرجوع إلى هذا الفيديو للحصول على مثال على شرح تفصيلي للعملية.

بعد تلقّي هذه البيانات، هناك عدد من الطرق المختلفة التي يمكنك من خلالها الردّ عليها. إليك بعض الخيارات: