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