סוגי הפעולות של מסד הנתונים בזמן אמת ב-Firebase

פקודת 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
}