פקודת profiler של מסד נתונים בזמן אמת ב-Firebase
כדי ליצור דוח על השימוש במהירות וברוחב הפס לפעולות במכונה של מסד הנתונים בזמן אמת, משתמשים בפקודה הבאה:
firebase database:profile
אפשרויות סימון | תיאור |
---|---|
-h, --help |
מידע על השימוש בפלט. |
-o, --output FILENAME |
שומרים את הפלט בקובץ שצוין. |
-i, --input FILENAME |
יצירת הדוח על סמך הקובץ שצוין במקום יומני השידור מהשרת. |
-d, --duration SECONDS |
איסוף פרטי השימוש במסד הנתונים עבור מספר השניות שצוין. |
--raw |
ליצור פלט של הנתונים הסטטיסטיים הגולמיים שנאספו כקובץ JSON מופרד בשורה חדשה. |
סוגי פעולות
חיבור בו-זמני
הפעולה הזו משקפת חיבורים בזמן אמת למסד הנתונים (לדוגמה, כשלקוח חדש מתחבר באמצעות SDK). חיבורים מסוג RESTful לא באים לידי ביטוי בפעולות חיבור בו-זמניות.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
ניתוק בו-זמני
ניתוקים בו-זמניים משקפים חיבור שמתנתק מבסיס הנתונים (לדוגמה, כשלקוח מתנתק או מתנתק).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
realtime-write
כתיבת בקשות מחיבורים בזמן אמת. לדוגמה, פעולות set()
ו-push()
ללקוחות אינטרנט. בקשות למחיקה נספרות גם כפעולות realtime-write
ומשקפות כתיבה של 0 בייטים.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
realtime-transaction
סוג הפעולה הזה כולל עסקאות שבוצעו דרך חיבורים בזמן אמת. עסקאות חוזרות עשויות להיות תוצאה של ניסיונות כושלים וניסיונות חוזרים.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
עדכון בזמן אמת
הפעולות האלה בזמן אמת לעדכונים משקפות שינויים בנתונים ספציפיים, ולא פעולות כתיבה כלליות יותר ב-realtime-write
.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
listener-listen
הפעולות האלה משקפות את הבקשה הראשונית של הלקוח לנתונים במיקום ספציפי. לדוגמה, השיטות on()
או once()
ללקוחות אינטרנט.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
שידור למאזינים
הפעולה הזו מכסה את הנתונים שנשלחים מהשרת לכל הלקוחות שמאזינים במיקום מסוים, אחרי כל פעולת כתיבה ועדכון. השינוי בנתונים מוביל לפעולת שידור. עם זאת, אם אין לקוחות שמקשיבים להם, ייתכן שתראו 0 עדכונים.
{ "bytes": 56, // Total bytes sent across clients "clientsUpdated": 3, // This may be 0 if no clients are listening "millis": 17, "name": "listener-broadcast", "path": [ "baz", "mar" ], "timestamp": 1484775969928 }
listener-unlisten
הפעולות האלה משקפות לקוחות האזנה שחותמים או מפסיקים להאזין באמצעות שיטות הניתוק (לדוגמה, off()
לאינטרנט או removeAllObservers
ל-iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
קריאה במנוחה
בקשות GET
דרך ה-API ל-REST.
{ "allowed": true, "bytes": 348, // This would be 0 if the read data was null "millis": 26, "name": "rest-read", "path": [], "querySet": [ { "default": true, "endIndexValue": "[MAX_NAME]", "equality": false, "index": {}, "limit": null, "range": false, "simpleLimit": false, "startIndexValue": "[MIN_NAME]", "viewFrom": null } ], "timestamp": 1484775747416 }
כתיבת מנוחה
בקשות של PUT
ו-POST
דרך ה-API ל-REST.
בקשות של DELETE
משקפות פעולות rest-write
בגודל 0 בייט.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
טרנזקציית מנוחה
להתנהגות כמו טרנזקציה, משתמשים בבקשות מותנות.
הפעולה rest-transaction
מתעדת בקשות באמצעות כותרות Etag
או if-match
.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
עדכון למנוחה
עדכונים דרך API ל-REST משקפים בקשות של PATCH
.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
הפעולות האלה משקפות את ההוספה של מאזינים ל-onDisconnect
שיכתבו פעולות. לדוגמה, כשמשתמשים ב-onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
הפעולות האלה משקפות את ההוספה של מאזינים ל-onDisconnect
כדי לעדכן פעולות. לדוגמה, כשמשתמשים ב-onDisconnect().updateChildren()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
בניתוק-ביטול
הפעולות האלה משקפות את ההסרה של מאזיני onניתוק.
לדוגמה, כשמשתמשים ב-onDisconnect().set().cancel()
.
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
הפעולות האלה משקפות את ההפעלה של מאזינים ל-onDisconnect
.
כשלקוח בזמן אמת מתנתק אחרי שמוסיף האזנה ל-onDisconnect
אחת לפחות, ה-profiler מתעדת פעולת run-on-disconnect
אחת כדי לשקף את הבייטים והזמן המצטברים של כל המאזינים שהופעלו ב-onDisconnect
.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }