פקודת Firebase Realtime Database של Profiler
כדי ליצור דוח של המהירות והשימוש ברוחב הפס של פעולות במכונה שלכם ב-Realtime Database, משתמשים בפקודה הבאה:
firebase database:profile
אפשרויות לדיווח | תיאור |
---|---|
-h, --help |
מידע על השימוש בפלט. |
-o, --output FILENAME |
שומרים את הפלט בקובץ שצוין. |
-i, --input FILENAME |
יצירת הדוח על סמך הקובץ שצוין במקום יומני השידור מהשרת. |
-d, --duration SECONDS |
איסוף נתוני שימוש במסד נתונים במשך מספר השניות שצוין. |
--raw |
הפלט של הנתונים הסטטיסטיים הגולמיים שנאספו הוא JSON שמופרד בתו שורה חדשה. |
סוגי פעולות
חיבור בו-זמני
פעולה זו משקפת חיבורים בזמן אמת למסד הנתונים (לדוגמה, לקוח חדש מתחבר באמצעות SDK). חיבורים מסוג RESTful לא באים לידי ביטוי פעולות חיבור בו-זמניות.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
concurrent-disconnect
ניתוקים בו-זמנית משקפים חיבור שמתנתק מסד נתונים (לדוגמה, כשלקוח מתנתק או יוצא מהחשבון).
{ "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 }
עסקה בזמן אמת
סוג הפעולה הזה כולל טרנזקציות שבוצעו דרך חיבורים בזמן אמת. עסקאות חוזרות עשויות להיות תוצאה של ניסיונות כושלים וניסיונות חוזרים.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
realtime-update
הפעולות האלה של עדכונים בזמן אמת משקפות מחיקה של נתונים ספציפיים, ולא את פעולות הכתיבה הכלליות יותר ב-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 }
listener-broadcast
פעולה זו מכסה את הנתונים שנשלחים מהשרת לכל הלקוח ולכל הלקוחות מאזינים במיקום נתון אחרי כל פעולת כתיבה ועדכון. השינוי בנתונים מוביל לביצוע פעולת שידור. עם זאת, יכול להיות שתראו 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 }
rest-read
בקשות GET
דרך ה-REST
API.
{ "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
דרך ה-REST
API.
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 }
בתהליך ניתוק
הפעולות האלה משקפות את ההוספה של onDisconnect
מאזינים לפעולות כתיבה. לדוגמה, כשמשתמשים ב-onDisconnect().setValue()
.
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
הפעולות האלה משקפות את ההוספה של מאזינים ל-onDisconnect
לעדכון
ב-AI. לדוגמה, כשמשתמשים ב-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
אחד לפחות, הכלי לניתוח פרופיל מתעד פעולת run-on-disconnect
אחת כדי לשקף את מספר הבייטים המצטבר ואת הזמן של כל המאזינים מסוג onDisconnect
שהופעלו.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }