Firebase Realtime Database プロファイラ コマンド
Realtime Database インスタンス内のオペレーションの速度や帯域幅の使用状況に関するレポートを生成するには、次のコマンドを使用します。
firebase database:profile
フラグ オプション | 説明 |
---|---|
-h, --help |
使用方法を出力する |
-o, --output FILENAME |
指定したファイルに出力を保存する |
-i, --input FILENAME |
サーバーからのストリームログではなく、指定したファイルに基づいてレポートを生成する |
-d, --duration SECONDS |
指定した秒数の間、データベースの使用状況の情報を収集する |
--raw |
収集された生の統計情報を改行で区切られた JSON として出力する |
オペレーション タイプ
concurrent-connect
このオペレーションは、データベースへのリアルタイム接続を反映します(たとえば、新しいクライアントが SDK 経由で接続する場合など)。RESTful 接続は concurrent-connect オペレーションに反映されません。
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
concurrent-disconnect
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 }
realtime-transaction
このオペレーション タイプには、リアルタイム接続を介して実行されるトランザクションが含まれます。 繰り返し発生するトランザクションは、ある処理が失敗して再試行されたことによるものである場合があります。
{ "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()
や iOS の removeAllObservers
など)によってリスニングが中止された場合を反映します。
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
rest-read
REST API による 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 }
rest-write
REST API による PUT
リクエストと POST
リクエスト。DELETE
リクエストには、0 バイトの rest-write
オペレーションが反映されます。
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
rest-transaction
トランザクションのような動作を実現するには、条件付きリクエストを使用します。rest-transaction
オペレーションは、Etag
ヘッダーまたは if-match
ヘッダーを使用してリクエストをキャプチャします。
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
rest-update
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 }
on-disconnect-cancel
これらのオペレーションは、onDisconnect リスナーの削除を反映します。たとえば、onDisconnect().set().cancel()
を使用する場合です。
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
これらのオペレーションは、onDisconnect
リスナーのトリガーを反映します。1 つ以上の onDisconnect
リスナーを追加した後、リアルタイム クライアントが切断すると、プロファイラは 1 つの run-on-disconnect
オペレーションを記録して、トリガーされたすべての onDisconnect
リスナーの集計バイトと時間を反映します。
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }