اگرچه ایمیلهای هشدار بودجه ساده روشی نسبتاً آسان برای دریافت بهروزرسانیهای صورتحساب هستند، اما ممکن است مواقعی وجود داشته باشد که بخواهید هشدارهای پیچیدهتری ایجاد کنید که شامل منطق سفارشیتری باشند. در اینجا دو رویکرد برای بررسی وجود دارد:
از 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 ایجاد میشوند، معمولاً سریعتر از ایمیلهای هشدار بودجه ساده که معمولاً روزی یک بار ارسال میشوند، ارسال میشوند. هشدارها میتوانند به شکل پیامک، پیامهای کانال Slack، اعلانهای PagerDuty، وبهوکها و موارد دیگر باشند. این گزینهها به شما امکان میدهند هشدارهایی با سطوح بالاتر و عملیتر ارسال کنید.
استفاده از Cloud Monitoring
برای شروع کار با Cloud Monitoring ، توصیه میکنیم با Metrics Explorer شروع کنید، که به شما امکان میدهد نمودارهایی از معیارهای سفارشی را در پروژه Firebase/ Google Cloud خود ایجاد کنید و میزان استفاده از آنها را تجسم کنید.
به طور خاص، میتوانید منابعی مانند Cloud Firestore ، Realtime Database یا Cloud Function instances خود را بررسی کنید. میتوانید اطلاعات مربوط به میزان استفاده از این محصولات (مانند تعداد دفعات خواندن سند، بایتهای ارسال شده یا فراخوانی توابع) را که میتوانند بر صورتحساب شما تأثیر بگذارند، مشاهده کنید.
بعد از اینکه در 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 (در قسمت Billing > Budgets and alerts ) و سپس کلیک روی کادر انتخاب Connect a Pub/Sub /Sub topic to this budget ، یک Pub/Sub Sub topic برای دادههای صورتحساب خود تنظیم کنید. این کار یک Pub/Sub topic ایجاد میکند که میتوانید بعداً به آن گوش دهید. برای مراحل دقیقتر، به مستندات کامل مراجعه کنید.
بعد از اینکه موضوع صورتحساب Pub/Sub خود را ایجاد کردید، میتوانید یک تابع ابری بنویسید تا به این موضوع گوش دهد و بر اساس دادهها عمل کند. دادهها به صورت JSON ارسال میشوند و شامل اطلاعات مفیدی مانند مبلغی که تاکنون خرج کردهاید، مبلغ بودجه شما و تاریخ شروع چرخه صورتحساب فعلی شما هستند.
مستندات Google Cloud جزئیات کاملی در مورد نحوه دریافت این دادهها با استفاده از یک تابع ابری دارد. با این حال، اگر Cloud Functions for Firebase برای استقرار توابع خود استفاده میکنید، فرآیند کلی کمی سادهتر است ( مستندات فایربیس را بررسی کنید). همچنین میتوانید برای نمونهای از مراحل این فرآیند به این ویدیو مراجعه کنید.
پس از دریافت این دادهها، روشهای مختلفی برای پاسخ به آنها وجود دارد. در اینجا چند گزینه وجود دارد:
ارسال هشدار به کانالهای Slack ، Discord یا ارسال پیامک زمانی که میزان خرج شما به یک حد مشخصی رسیده است.
تجزیه و تحلیل هزینههای شما در مقایسه با دادههای تاریخی و هشدار به شما در صورت مشاهده هرگونه مورد غیرعادی
ایجاد تغییرات در برنامه شما از طریق Remote Config در صورتی که سطح صورتحساب خیلی بالا رفته باشد
غیرفعال کردن کامل پروژه Firebase با حذف برنامهای سرویس پرداخت از حساب کاربری