מעקב אחר הביצועים של מסד הנתונים

יש כמה דרכים לעקוב אחרי הביצועים של Firebase Realtime Databaseולזהות בעיות פוטנציאליות באפליקציה. בדיקה של רוחב הפס והעומס הנכנסים והיוצאים של האפליקציה יכולה גם לתת לכם מושג לגבי הסכום שיופיע בחשבון. בנוסף, אם משהו נראה לא תקין, כדאי לקבל תמונה ברורה של הפעולות במסד הנתונים כדי לפתור את הבעיה.

בדף הזה נסביר על Realtime Database מעקב אחרי ביצועים. למידע על מעקב אחר השימוש, אפשר לעיין במאמר בנושא מעקב אחר השימוש במסד הנתונים.

שימוש בכלי מעקב Realtime Database

יש כמה כלים שבעזרתם אפשר לאסוף נתונים על הביצועים של Realtime Database, בהתאם לרמת הפירוט שאתם צריכים.

שימוש בכלי Realtime Database ליצירת פרופילים

כלי הפרופיל Realtime Database מספק סקירה כללית בזמן אמת של פעולות קריאה/כתיבה במסד הנתונים. הדוח כולל מידע על המהירות וגודל המטען הייעודי (payload) של כל פעולה, בנוסף לשאילתות לא מאונדקסות. עם זאת, היא לא כוללת מידע היסטורי או נתונים סטטיסטיים לגבי תקורה של חיבור, ואסור להשתמש בה כדי להעריך עלויות חיוב.

מידע נוסף על השימוש בכלי ליצירת פרופילים זמין במאמר יצירת פרופיל של מסד הנתונים.

שימוש במסוף Firebase

בכרטיסייה Usage במסוף Firebase אפשר לראות מידע על חיבורים בו-זמניים למסד הנתונים, על נפח הנתונים שמאוחסנים, על רוחב הפס היוצא (כולל פרוטוקול ותקורה של הצפנה) ועל העומס על מסד הנתונים במרווחי זמן של דקה אחת. בכרטיסייה Usage (שימוש) מוצגת סקירה כללית מדויקת יותר של הביצועים הכוללים של מסד הנתונים, אבל יכול להיות שלא תוכלו להגיע לרמת פירוט מספיקה כדי לפתור בעיות פוטנציאליות בביצועים.

שימוש ב-Cloud Monitoring

בעזרת Cloud Monitoring מתוך Google Cloud, אתם יכולים להשתמש בכלי לבחירת מדדים כדי לראות מדדי ביצועים ספציפיים, או ליצור לוחות בקרה שונים עם תרשימים שמציגים שילובים שונים של מדדי ביצועים לאורך זמן. השילוב של Realtime Database עם Cloud Monitoring מציע את רמת הפירוט הכי גבוהה.

השלבים להגדרת Cloud Monitoring מתוארים במאמר מעקב אחרי השימוש במסד הנתונים.

בקטעים הבאים מופיעים טיפים לשימוש במדדים ספציפיים של Cloud Monitoring ביצועים כדי לזהות בעיות בביצועים.

מעקב אחרי הביצועים ב-Cloud Monitoring

אם אתם נתקלים בבעיות בביצועים, כולל זמן פעולה או זמן אחזור, כדאי להשתמש ב-Cloud Monitoring כדי לעקוב אחרי המדדים הבאים. שימו לב שכל השמות של סוגי המדדים מתחילים בקידומת firebasedatabase.googleapis.com/.

שם המדד תיאור
טעינת מסד נתונים

io/database_load. אפשר להשתמש במדד הזה כדי לעקוב אחרי רוחב הפס הזמין של מסד הנתונים שמשמש לעיבוד בקשות לאורך זמן. יכול להיות שתיתקלו בבעיות בביצועים ככל שעומס מסד הנתונים יתקרב לרוחב הפס הכולל שזמין. אפשר גם לראות אילו סוגי פעולות יוצרים את העומס הכי גדול, ולפתור בעיות בהתאם. העומס המדווח עשוי להיות גבוה מ-100% בפעולות שנמשכות יותר מדקה. זה קורה כשרוחב הפס הכולל שנעשה בו שימוש במשך כמה דקות מצטמצם למרווח הדיווח של דקה אחת אחרי שהפעולה מסתיימת.

הרשת מושבתת בגלל חריגה מהמכסה

network/disabled_for_overages. המדד הזה משקף הפסקות שירות שאולי התרחשו אם Realtime Database חרגו ממגבלות רוחב הפס או הרשת.

האחסון מושבת בגלל חריגה

storage/disabled_for_overages. המדד הזה משקף הפסקות שירות שאולי התרחשו אם חרגתם ממכסת האחסון של Realtime Database.

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

  • פעולות: אפשר להשתמש במדד io/database_load כדי לראות כמה מכלל עומס העבודה של מסד הנתונים מנוצל על ידי כל סוג פעולה. כדי לפתור בעיות שקשורות לסוגים שונים של פעולות, חשוב לקבץ את הנתונים io/database_load לפי סוג.
  • אחסון: אפשר להשתמש ב-storage/limit וב-storage/total_bytes כדי לעקוב אחרי ניצול נפח האחסון ביחס למגבלות האחסון של Realtime Database. אפשר גם להוסיף storage/disabled_for_overages כדי לראות אם האפליקציה חוותה השבתה כלשהי כתוצאה מחריגה ממגבלות האחסון.
  • תקורה של SSL: אפשר להשתמש ב-network/https_requests_count כדי לעקוב אחרי מספר הבקשות לחיבור SSL שהתקבלו במסד הנתונים, ולפצל את הבקשות שנעשה בהן שימוש חוזר בכרטיס הפעלה קיים של SSL באמצעות המסנן reused_ssl_session. אפשר להשוות את הנתון הזה לנתונים של network/sent_bytes_count ושל network/sent_payload_and_protocol_bytes_count כדי לבדוק אם האפליקציה משתמשת בכרטיסי SSL session בצורה יעילה.

אפשר גם להגדיר התראות דרך Cloud Monitoring ולקבל התראות על סמך מדדים של Realtime Database. לדוגמה, אתם יכולים לבחור לקבל התראה אם io/database_loadמתקרב לסף מסוים.

רשימה מלאה של מדדי Realtime Database שזמינים דרך Cloud Monitoring

סוגי טעינה של מסד נתונים

בנוסף, המדד io/database_load מספק תווית של סוג הפעולה שגרמה לטעינה. אלה סוגי הפעולות האפשריים שנמדדות:

  • admin: פעולות של אדמין כמו הגדרת כללים וקריאת מטא-נתונים של פרויקט.
  • auth: אימות מתוך חשבונות שירות או אימות ב-Firebase עבור לקוח יחיד.
  • client_management: טיפול בהוספה ובהסרה של חיבורים בו-זמניים, כולל הפעלת פעולות ניתוק בהסרה.
  • get_shallow: אחזור הנתונים מ-REST GET עם shallow=true.
  • get: טיפול בפעולות REST GET.
  • listen: אחזור הנתונים הראשוניים לפעולות on ו-once מלקוחות מקושרים.
  • on_disconnect: רישום פעולות ניתוק מלקוחות.
  • put: טיפול בפעולות set מלקוחות או בפעולות REST PUT.
  • transaction: ביצוע עסקאות מבקשות REST מותנות או מפעולת transaction מלקוח.
  • update: טיפול בפעולות update או בבקשות REST PATCH.

מעקב אחרי כללי אבטחה ב-Cloud Monitoring

אפשר גם לנתח את ההערכה של כללי האבטחה. שימו לב שכל השמות של סוגי המדדים מתחילים בקידומת firebasedatabase.googleapis.com/.

שם המדד תיאור
הערכות של כללים rules/evaluation_count. מספר ההערכות של כללי Realtime Database שבוצעו בתגובה לבקשות כתיבה או קריאה. אפשר לפרט את המדד הזה לפי תוצאת הבקשה (ALLOW,‏ DENY או ERROR).

אפשר להתאים אישית את התרשים Cloud Monitoring של הערכות הכללים לפי הצורך, למשל על ידי סינון לפי תוצאות הערכה מסוימות, ALLOW,‏ DENY או ERROR. הסבר על הגדרה והתאמה אישית של תרשימים מופיע במאמר מעקב אחרי השימוש במסד הנתונים.

רשימה מלאה של מדדי Realtime Database שזמינים דרך Cloud Monitoring