התראות פשוטות באימייל לגבי תקציבים הן דרך קלה יחסית לקבל עדכונים לגבי החיוב, אבל לפעמים כדאי ליצור התראות מורכבות יותר שכוללות לוגיקה מותאמת אישית. הנה שתי גישות שכדאי לשקול:
שימוש ב-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, מומלץ להתחיל עם Metrics Explorer, שמאפשר ליצור תרשימים של מדדים מותאמים אישית בפרויקט Firebase/Google Cloud ולהציג את השימוש בהם.
באופן ספציפי, אפשר לבדוק משאבים כמו Cloud Firestore, Realtime Database או מופעים של Cloud Functions. אתם יכולים לראות מידע על השימוש במוצרים האלה (כמו מספר קריאות המסמכים, בייטים שנשלחו או קריאות לפונקציות) שישפיע על החיוב.
אחרי שתרגישו בנוח עם הצגת נתוני השימוש במשאבים ב-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
כדי להגדיר נושא Pub/Sub לנתוני החיוב, עוברים לתקציב שמשויך לפרויקט Firebase במסוף Google Cloud (בקטע Billing > Budgets and alerts), ואז מסמנים את תיבת הסימון Connect a Pub/Sub topic to this budget. הפעולה הזו תיצור נושא Pub/Sub שאפשר להאזין לו בהמשך. שלבים מפורטים זמינים במסמכים המלאים.
אחרי שיוצרים את נושא החיוב Pub/Sub, אפשר לכתוב פונקציה של Cloud Functions שתאזין לנושא הזה ותפעל בהתאם לנתונים. הנתונים נשלחים כנתוני JSON וכוללים מידע מועיל כמו הסכום שהוצא עד עכשיו, סכום התקציב ותאריך ההתחלה של מחזור החיובים הנוכחי.
במסמכי התיעוד של Google Cloud מוסבר איך מקבלים את הנתונים האלה באמצעות פונקציית Cloud. עם זאת, אם משתמשים ב-Cloud Functions for Firebase כדי לפרוס את הפונקציות, התהליך הכללי פשוט יותר (אפשר לעיין במסמכי התיעוד של Firebase). אפשר גם לצפות בסרטון הזה כדי לראות דוגמה לתהליך.
אחרי שתקבלו את הנתונים האלה, תוכלו להגיב להם בכמה דרכים שונות. אלה כמה מהאפשרויות שעומדות לרשותך:
שליחת התראות לערוצי Slack, לערוצי Discord או שליחת הודעות טקסט כשסכום ההוצאה מגיע לסף מסוים.
ניתוח ההוצאות בהשוואה לנתונים היסטוריים ושליחת התראה אם משהו נראה חריג
ביצוע שינויים באפליקציה דרך Remote Config אם רמות החיוב גבוהות מדי
השבתה מלאה של הפרויקט ב-Firebase על ידי הסרה של שירות החיוב מהחשבון באמצעות תוכנה