در حالی که ایمیلهای هشدار بودجه ساده روشی نسبتاً آسان برای دریافت بهروزرسانیهای صورتحساب هستند، ممکن است مواقعی بخواهید هشدارهای پیچیدهتری ایجاد کنید که شامل منطق سفارشیشدهتر است. در اینجا دو رویکرد برای بررسی وجود دارد:
از Cloud Monitoring برای ایجاد هشدارهای پیچیده تر و به موقع استفاده کنید
از یک اعلان Pub/Sub صورتحساب به همراه یک تابع Cloud مربوطه برای ایجاد رفتار سفارشی در پاسخ به تغییرات در مخارج خود استفاده کنید.
در حالی که هر دوی این تکنیکها به کار بیشتری نیاز دارند، اما به شما این قدرت را میدهند که دقیقاً نوع هشدارهایی را که دریافت میکنید و نحوه پاسخگویی به آنها را کنترل کنید.
این صفحه یک نمای کلی برای هر یک از این رویکردها ارائه می دهد.
با 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، webhook و موارد دیگر باشند. این گزینهها شما را قادر میسازد تا هشدارهایی را با سطح دید بالاتر و قابل اجراتر ارسال کنید.
استفاده از 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
میتوانید با بازدید از بودجه مرتبط با پروژه Firebase خود در کنسول Google Cloud (در قسمت صورتحساب > بودجهها و هشدارها )، یک موضوع Pub/Sub را برای دادههای صورتحساب خود تنظیم کنید، سپس روی کادر تأیید اتصال موضوع Pub/Sub به این بودجه کلیک کنید. . این یک موضوع Pub/Sub ایجاد می کند که می توانید بعداً به آن گوش دهید. برای جزئیات مراحل، به مستندات کامل مراجعه کنید.
بعد از اینکه موضوع صورتحساب Pub/Sub خود را ایجاد کردید، میتوانید یک Cloud Function برای گوش دادن به این موضوع بنویسید و براساس دادهها عمل کنید. دادهها بهعنوان دادههای JSON ارسال میشوند و شامل اطلاعات مفیدی مانند مبلغی است که تاکنون خرج کردهاید، مبلغ بودجه و تاریخ شروع چرخه صورتحساب فعلیتان.
اسناد Google Cloud جزئیات کاملی در مورد نحوه دریافت این داده ها با استفاده از یک تابع Cloud دارد. با این حال، اگر از Cloud Functions for Firebase برای استقرار توابع خود استفاده می کنید، روند کلی کمی ساده تر است ( مستندات Firebase را بررسی کنید). همچنین میتوانید برای مشاهده نمونهای از فرآیند به این ویدیو مراجعه کنید.
هنگامی که این داده ها را دریافت کردید، راه های مختلفی وجود دارد که می توانید به آن پاسخ دهید. در اینجا چند گزینه وجود دارد:
ارسال هشدار به کانالهای Slack ، کانالهای Discord، یا ارسال پیامهای متنی زمانی که هزینههای شما به آستانه خاصی رسیده است.
تجزیه و تحلیل هزینه های شما در مقایسه با داده های تاریخی و هشدار دادن به شما در صورتی که چیزی غیرعادی به نظر می رسد
اگر سطوح صورتحساب خیلی بالا رفته باشد ، از طریق Remote Config در برنامه خود تغییراتی ایجاد کنید
پروژه Firebase خود را به طور کامل با حذف برنامهنویسی خدمات صورتحساب از حساب خود غیرفعال کنید