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

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

  • استخدام 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، ننصحك بالبدء بمستكشف المقاييس ، الذي يتيح لك إنشاء رسوم بيانية للمقاييس المخصّصة ضمن مشروعك على Firebase أو Google Cloud وعرض استخدامها.

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

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

  • إذا كان عدد عمليات قراءة المستندات في فترة زمنية مدتها 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). يمكنك أيضًا الرجوع إلى هذا الفيديو للحصول على مثال على شرح تفصيلي للعملية.

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