Firebase Realtime Database 分析器指令
如要產生 Realtime Database 執行個體,請使用下列指令:
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
}
即時寫入
從即時連線寫入要求。例如 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-write
中較一般性的寫入作業。
{
"allowed": true,
"bytes": 5,
"millis": 2,
"name": "realtime-update",
"path": [
"foo"
],
"timestamp": 1484776538769
}
傾聽
這些作業反映出您最初針對特定位置提出的資料要求
用戶端。例如,網路用戶端的 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
}
聽者不聽
這些行動反映了監聽用戶端 (登出或停止監聽)
透過卸離方法 (例如,off()
代表網頁,removeAllObservers
iOS 版)。
{
"name": "listener-unlisten",
"path": [
"foo"
],
"timestamp": 1484776335044
}
休息讀取
透過 REST 傳送 GET
要求
也能使用 Google Cloud CLI 或
Compute Engine 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
和
透過 REST 傳送 POST
要求
也能使用 Google Cloud CLI 或
Compute Engine 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
}
休息更新
透過 REST API 更新會反映 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
事件監聽器
作業。例如使用 onDisconnect().updateChildren()
時。
{
"allowed": true,
"bytes": 4,
"millis": 2,
"name": "on-disconnect-update",
"path": [
"baz",
"mar"
],
"timestamp": 1484775969930
}
on-disconnect-cancel
這些作業反映了移除中斷連線事件監聽器。
例如使用 onDisconnect().set().cancel()
時。
{
"millis": 2,
"name": "on-disconnect-cancel",
"path": [
"baz",
"mar"
],
"timestamp": 1484775969930
}
透過中斷連結執行
這些作業會反映 onDisconnect
事件監聽器的觸發。
在新增至少一個 onDisconnect
後,即時用戶端中斷連線
事件監聽器就會記錄單一 run-on-disconnect
作業
反映所有 onDisconnect
事件監聽器的匯總位元組和時間
{
"bytes": 4,
"millis": 2,
"name": "run-on-disconnect",
"timestamp": 1484775969930
}