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

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

  • איך משתמשים ב-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 (בקטע Billing > Budgets and alerts) ולוחצים על תיבת הסימון Connect a Pub/Sub topic to this budget. הפעולה הזו תיצור נושא Pub/Sub שאפשר להאזין לו בהמשך. שלבים מפורטים מופיעים במאמרי העזרה המלאים.

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

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

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