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

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

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

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

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

שימוש בכלי לניתוחי פרופיל של Realtime Database

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

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

שימוש במסוף Firebase

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

שימוש ב-Cloud Monitoring

בעזרת Cloud Monitoring מ-Google Cloud, אפשר להשתמש ב-Metrics Explorer כדי לראות מדדי ביצועים ספציפיים, או ליצור מרכזי בקרה שונים עם תרשימים שמציגים שילובים שונים של מדדי ביצועים לאורך זמן. השילוב של 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 בצורה יעילה או לא.

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

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

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

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

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

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

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

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

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

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