הגדרת לוגיקה והתראות מתקדמות בנושאי חיוב

התראות על תקציב הן דרך פשוטה יחסית לקבל עדכונים על החיוב, אבל לפעמים כדאי ליצור התראות מתוחכמות יותר שכוללות לוגיקה מותאמת אישית. הנה שתי גישות שכדאי לשקול:

  • איך משתמשים ב-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 דקות, בין אם חל שינוי בשימוש שחויב ובין אם לא. ההתראות הן חסרות מצב (stateless), כלומר הן לא מספקות הקשר לגבי מה קדם להן. אם אתם רוצים לעקוב אחרי עליות חריגות בהוצאות לאורך זמן, או להשוות את ההוצאות שלכם למחזור הקודם, תצטרכו לנהל את הנתונים ההיסטוריים בעצמכם באמצעות מסד נתונים כמו Cloud Firestore או Realtime Database.

שימוש בנושאי Pub/Sub עם Cloud Functions

כדי להגדיר נושא Pub/Sub לנתוני החיוב, עוברים לתקציב שמשויך לפרויקט Firebase במסוף Google Cloud (בקטע חיוב > תקציבים והתראות), ואז מסמנים את תיבת הסימון קישור נושא Pub/Sub לתקציב הזה. הפעולה הזו תיצור נושא Pub/Sub שאפשר להאזין לו מאוחר יותר. שלבים מפורטים זמינים במסמכי התיעוד המלאים.

אחרי שיוצרים את נושא החיוב Pub/Sub, אפשר לכתוב פונקציית Cloud Functions שתאזין לנושא החיוב ותפעל בהתאם לנתונים. הנתונים נשלחים כנתוני JSON וכוללים מידע מועיל כמו הסכום שהוצא עד עכשיו, סכום התקציב ותאריך ההתחלה של מחזור החיובים הנוכחי.

במסמכי העזרה של Google Cloud יש פרטים מלאים על קבלת הנתונים האלה באמצעות Cloud Function. עם זאת, אם אתם משתמשים ב-Cloud Functions for Firebase כדי לפרוס את הפונקציות, התהליך הכללי פשוט יותר (אפשר לעיין במסמכי התיעוד של Firebase). אפשר גם לצפות בסרטון הזה כדי לראות דוגמה לתהליך.

אחרי שתקבלו את הנתונים האלה, תוכלו להגיב להם בכמה דרכים שונות. אלה כמה מהאפשרויות שעומדות לרשותך: