على الرغم من الرسائل الإلكترونية البسيطة لتنبيه الميزانية طريقة سهلة نسبيًا لتلقي تحديثات الفوترة، فقد تكون هناك أوقات كنت تريد إنشاء تنبيهات أكثر تعقيدًا تشمل منطقًا أكثر تخصيصًا. فيما يلي طريقتان يجب مراعاتهما:
استخدام Cloud Monitoring لإنشاء تنبيهات أكثر تعقيدًا وملاءمةً في الوقت المناسب
استخدام إشعار Pub/Sub للفوترة إلى جانب إشعار مطابق لوظيفة السحابة الإلكترونية لإنشاء سلوك مخصص استجابةً للتغييرات في الإنفاق
بينما تتطلب هاتان الطريقتان مزيدًا من العمل من جانبك، إلا أنهما تمنحك القدرة على التحكّم بدقة في أنواع التنبيهات التي تتلقّاها وكيفية والاستجابة لها.
تقدم هذه الصفحة نظرة عامة على كل طريقة من هذه الأساليب.
إنشاء تنبيهات أكثر تعقيدًا باستخدام 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 (ضمن الفوترة > الميزانيات والتنبيهات)، ثم النقر على مربّع الاختيار ربط موضوع Pub/Sub بهذه الميزانية سيؤدي هذا إلى إنشاء موضوع واحد (Pub/Sub) يمكنك الاستماع إليه لاحقًا. للحصول على الخطوات التفصيلية، راجع المستندات الكاملة
بعد إنشاء موضوع الفوترة في Pub/Sub، يمكنك كتابة وظيفة السحابة الإلكترونية للاستماع إلى هذا الموضوع واتخاذ إجراءات بناءً على البيانات وفقًا لذلك تشير رسالة الأشكال البيانية يتم إرسال البيانات على هيئة بيانات JSON وتتضمن معلومات مفيدة مثل مقدار الذي أنفقته حتى الآن ومبلغ الميزانية وتاريخ بدء دورة الفوترة.
تتضمّن مستندات Google Cloud تفاصيل كاملة حول كيفية تلقّي هذه البيانات باستخدام إحدى وظائف Cloud. ومع ذلك، إذا كنت تستخدم Cloud Functions for Firebase من أجل ونشر الدوال، فإن العملية العامة تكون أبسط قليلاً (اطلع على مستندات Firebase). يمكنك أيضًا الرجوع إلى هذا الفيديو للاطّلاع على نموذج يوضّح هذه العملية.
بعد استلام هذه البيانات، هناك عدد من الطرق المختلفة التي يمكنك من خلالها والاستجابة لها. وإليك بعض الخيارات:
إرسال تنبيهات إلى قنوات Slack اعرض قنوات Discord أو أرسِل رسائل نصية عندما يبلغ إنفاقك عتبة معينة.
تحليل إنفاقك مقارنةً بالبيانات السابقة وتنبيهك إذا أي شيء يبدو خارج المألوف
إجراء تغييرات في تطبيقك من خلال Remote Config إذا ارتفعت مستويات الفوترة كثيرًا
يؤدي إيقاف مشروعك في Firebase بالكامل إلى إزالة خدمة الفوترة آليًا من حسابك