คำสั่งเครื่องมือสร้างโปรไฟล์สำหรับฐานข้อมูลเรียลไทม์ของ Firebase
หากต้องการสร้างรายงานการใช้ความเร็วและแบนด์วิดท์สำหรับการดำเนินการในอินสแตนซ์ 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 }
ยกเลิกการเชื่อมต่อพร้อมกัน
การตัดการเชื่อมต่อพร้อมกันแสดงถึงการเชื่อมต่อที่ยกเลิกการเชื่อมต่อกับฐานข้อมูล (เช่น เมื่อไคลเอ็นต์ยกเลิกการเชื่อมต่อหรือออกจากระบบ)
{ "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
ส่งคำขอผ่าน 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 }
อัปเดตส่วนที่เหลือ
การอัปเดตผ่าน REST API จะแสดงคำขอ PATCH
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
การดำเนินการเหล่านี้แสดงถึงการเพิ่ม Listener onDisconnect
สำหรับการดำเนินการเขียน เช่น เมื่อคุณใช้ onDisconnect().setValue()
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
การดำเนินการเหล่านี้แสดงถึงการเพิ่ม Listener onDisconnect
ไปยังการดำเนินการอัปเดต เช่น เมื่อคุณใช้ onDisconnect().updateChildren()
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
เมื่อยกเลิกการเชื่อมต่อ ยกเลิก
การดำเนินการเหล่านี้แสดงถึงการนำ Listener ที่เชื่อมต่อเมื่อยกเลิกการเชื่อมต่อออก
เช่น เมื่อคุณใช้ onDisconnect().set().cancel()
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
การดำเนินการเหล่านี้แสดงถึงการทริกเกอร์ Listener onDisconnect
เมื่อไคลเอ็นต์แบบเรียลไทม์ยกเลิกการเชื่อมต่อหลังจากเพิ่ม onDisconnect
Listener อย่างน้อย 1 คน เครื่องมือสร้างโปรไฟล์จะบันทึกการดำเนินการ run-on-disconnect
เดียว
เพื่อแสดงไบต์และเวลารวมของ onDisconnect
Listener ทั้งหมดที่ทริกเกอร์
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }