هشدارهای صورتحساب پیشرفته و منطق را تنظیم کنید

در حالی که ایمیل‌های هشدار بودجه ساده روشی نسبتاً آسان برای دریافت به‌روزرسانی‌های صورت‌حساب هستند، ممکن است زمان‌هایی پیش بیاید که بخواهید هشدارهای پیچیده‌تری ایجاد کنید که شامل منطق سفارشی‌شده‌تر است. در اینجا دو رویکرد برای بررسی وجود دارد:

  • از Cloud Monitoring برای ایجاد هشدارهای پیچیده تر و به موقع استفاده کنید

  • از یک اعلان Pub/Sub صورتحساب به همراه یک تابع Cloud مربوطه برای ایجاد رفتار سفارشی در پاسخ به تغییرات در مخارج خود استفاده کنید.

در حالی که هر دوی این تکنیک‌ها نیاز به کار بیشتری از جانب شما دارند، به شما این قدرت را می‌دهند که دقیقاً نوع هشدارهایی را که دریافت می‌کنید و نحوه پاسخگویی به آنها را کنترل کنید.

این صفحه یک نمای کلی برای هر یک از این رویکردها ارائه می دهد.

با Cloud Monitoring هشدارهای پیچیده تری ایجاد کنید

ایمیل‌های هشدار بودجه ساده به شما اطلاع می‌دهند که صورت‌حساب کلی شما به آستانه‌های خاصی رسیده است. با این حال، ممکن است علاقه مند باشید که بدانید آیا خدمات فردی به طور غیرمنتظره ای افزایش می یابد - قبل از اینکه فرصتی برای تأثیرگذاری قابل توجه بر بودجه شما داشته باشند. برای موارد استفاده پیچیده‌تر مانند این، توصیه می‌کنیم درباره Cloud Monitoring که یک ابزار Google Cloud برای پروژه Firebase شما در دسترس است، یاد بگیرید.

Cloud Monitoring برای چندین نوع مختلف هشدار مفید است:

  • اگر منبعی که پروژه شما به آن متکی است در دسترس نیست (هم برای سرویس‌های Firebase و هم Google Cloud، اما حتی برای سرویس‌های خارجی، مانند AWS)

  • اگر خدماتی مانند Cloud Function ها بیشتر از آنچه انتظار می رود طول بکشد تا پاسخ دهند

  • اگر سطل فضای ذخیره سازی ابری، نمونه پایگاه داده بیدرنگ، یا نمونه Cloud Firestore شما درخواست های زیادی را رد می کند (نشان دهنده این است که قوانین امنیتی Firebase شما ممکن است نادرست باشد).

  • اگر مقدار منابع استفاده شده توسط برخی از محصولات Firebase شما بالاتر از یک آستانه خاص افزایش یافته است

هشدارهایی که از طریق Cloud Monitoring ایجاد می شوند معمولاً سریعتر از ایمیل های هشدار بودجه ساده ارسال می شوند که معمولاً یک بار در روز ارسال می شوند. هشدارها می‌توانند به شکل پیام‌های SMS، پیام‌های کانال Slack، اعلان‌های PagerDuty، webhook و موارد دیگر باشند. این گزینه‌ها شما را قادر می‌سازد تا هشدارهایی را با سطح دید بالاتر و قابل اجراتر ارسال کنید.

استفاده از Cloud Monitoring

برای شروع کار با Cloud Monitoring، توصیه می‌کنیم با Metrics Explorer شروع کنید، که به شما امکان می‌دهد نمودارهایی از معیارهای سفارشی را در پروژه Firebase/Google Cloud خود ایجاد کنید و استفاده از آنها را تجسم کنید.

به طور خاص، می توانید به منابعی مانند نمونه های Cloud Firestore، پایگاه داده بیدرنگ یا Cloud Function نگاه کنید. می‌توانید اطلاعات استفاده درباره این محصولات (مانند تعداد خواندن سند، بایت‌های ارسال شده، یا فراخوانی عملکرد) را که بر صورت‌حساب شما تأثیر می‌گذارند، مشاهده کنید.

پس از اینکه استفاده از منابع خود را در Metrics Explorer تجسم کردید، توصیه می کنیم یک خط مشی هشدار در مورد معیارهایی که بیشتر به آنها اهمیت می دهید ایجاد کنید. در اینجا چند نمونه از سیاست های هشدار وجود دارد:

  • اگر تعداد اسناد خوانده شده در یک بازه زمانی 30 دقیقه ای بیشتر از یک مقدار خاص باشد

  • اگر به نظر می رسد استفاده از یک منبع خاص (مانند فراخوانی تابع) در یک بازه زمانی خاص خیلی سریع در حال افزایش است.

منطق صورتحساب اضافی ایجاد کنید

هشدارهای بودجه زمانی که بودجه شما به آستانه‌های مشخصی می‌رسد ایمیل‌ها را به‌طور خودکار ارسال می‌کنند، اما برای هشدارهای پیچیده‌تر یا واکنش‌های برنامه‌ای به افزایش هزینه‌ها، می‌توانید منطق سفارشی اضافی را بر اساس پیام‌های Google Cloud Pub/Sub تنظیم کنید.

به عنوان مثال، می‌توانید هشدارهایی را به کانال‌های Slack یا از طریق پیام متنی ارسال کنید یا بسته به سطوح هزینه، تغییرات برنامه‌ای در برنامه یا پروژه خود ایجاد کنید.

Pub/Sub یک سرویس ارسال پیام است که به سایر سرویس‌ها اجازه می‌دهد پیام‌ها را - معمولاً به شکل داده‌های JSON - به صورت ناهمزمان از طریق کانال‌هایی به نام موضوعات Pub/Sub ارسال کنند. می‌توانید سرویس‌های مجاز، مانند توابع ابری، را برای گوش دادن به پیام‌های موجود در این موضوعات و عملکرد مناسب روی داده‌ها تنظیم کنید.

توجه داشته باشید که اعلان‌های Pub/Sub برای صورت‌حساب تقریباً هر 20 دقیقه یک‌بار ارسال می‌شوند، چه میزان استفاده از صورت‌حساب شما تغییر کرده باشد یا نه، و بدون تابعیت هستند (به این معنی که هیچ زمینه‌ای در مورد آنچه قبل از آنها ارائه شده است) ارائه نمی‌دهند. اگر می‌خواهید افزایش غیرمعمول هزینه‌ها را در طول زمان پیگیری کنید، یا هزینه‌های خود را با چرخه قبلی مقایسه کنید، باید خودتان آن داده‌های تاریخی را با استفاده از پایگاه‌داده‌ای مانند Cloud Firestore یا پایگاه داده Realtime مدیریت کنید.

استفاده از موضوعات Pub/Sub با توابع ابری

می‌توانید یک موضوع Pub/Sub را برای داده‌های صورت‌حساب خود با بازدید از بودجه مرتبط با پروژه Firebase خود در Google Cloud Console (در بخش صورت‌حساب > بودجه‌ها و هشدارها ) تنظیم کنید، سپس روی کادر تأیید اتصال موضوع Pub/Sub به این بودجه کلیک کنید. . این یک موضوع Pub/Sub ایجاد می کند که می توانید بعداً به آن گوش دهید. برای جزئیات مراحل، به مستندات کامل مراجعه کنید.

بعد از اینکه موضوع صورت‌حساب Pub/Sub خود را ایجاد کردید، می‌توانید برای گوش دادن به این موضوع یک Cloud Function بنویسید و براساس داده‌ها عمل کنید. داده‌ها به‌عنوان داده‌های JSON ارسال می‌شوند و شامل اطلاعات مفیدی مانند مبلغی است که تاکنون خرج کرده‌اید، مقدار بودجه‌تان و تاریخ شروع چرخه صورت‌حساب فعلی‌تان.

اسناد Google Cloud جزئیات کاملی در مورد نحوه دریافت این داده ها با استفاده از یک تابع Cloud دارد. با این حال، اگر از Cloud Functions برای Firebase برای استقرار توابع خود استفاده می کنید، روند کلی کمی ساده تر است ( مستندات Firebase را بررسی کنید). همچنین می‌توانید برای مشاهده نمونه‌ای از فرآیند به این ویدیو مراجعه کنید.

هنگامی که این داده ها را دریافت کردید، راه های مختلفی وجود دارد که می توانید به آن پاسخ دهید. در اینجا چند گزینه وجود دارد: