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

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

  • استخدام 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 (ضمن الفوترة > الميزانيات والتنبيهات)، ثم النقر على مربّع الاختيار ربط موضوع Pub/Sub بهذه الميزانية. سيؤدي هذا إلى إنشاء Pub/Sub موضوع يمكنك الاستماع إليه لاحقًا. للاطّلاع على الخطوات التفصيلية، يُرجى الرجوع إلى المستندات الكاملة.

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

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

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