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

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

  • استخدام 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 Functions. يمكنك الاطّلاع على معلومات الاستخدام حول هذه المنتجات (مثل عدد عمليات قراءة المستندات أو عدد وحدات البايت المُرسَلة أو عدد عمليات استدعاء الدوال) التي ستؤثر في فوترتك.

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

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

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