Firebase 即時資料庫分析器指令
如要針對即時資料庫執行個體中的作業產生速度和頻寬用量報表,請使用下列指令:
firebase database:profile
檢舉選項 | 說明 |
---|---|
-h, --help |
輸出內容的使用資訊。 |
-o, --output FILENAME |
將輸出內容儲存至指定檔案。 |
-i, --input FILENAME |
根據指定的檔案產生報表,而非從伺服器串流記錄。 |
-d, --duration SECONDS |
針對指定的秒數收集資料庫用量資訊。 |
--raw |
將收集的原始統計資料輸出為以換行符號分隔的 JSON。 |
作業類型
並行連線
這項作業會反映資料庫的即時連線 (例如,透過 SDK 連結的新用戶端)。並行連線作業不會反映符合 REST 樣式的連線。
{ "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()
用於網頁,iOS 為 removeAllObservers
)。
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
休息
GET
要求。
{ "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
要求。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 }
休息更新
透過 REST API 的更新會反映 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 }
停用 - 取消連線
這些作業反映了移除 onConnection 事件監聽器的情形。
例如使用 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 }