หน้านี้อธิบายวิธีตรวจสอบการใช้งาน Cloud Firestore และ ระบุปัญหาที่อาจเกิดขึ้นในแอป
แดชบอร์ดการใช้งาน
ใช้แดชบอร์ดการใช้งานในคอนโซล Google Cloud และคอนโซล Firebase เพื่อดูการอ่าน การเขียน และการลบเอกสารในช่วงระยะเวลาหนึ่ง
การควบคุมการเข้าถึง
แดชบอร์ดการใช้งานต้องมีmonitoring.timeSeries.listสิทธิ์ Cloud IAM
บทบาทเจ้าของ ผู้แก้ไข และผู้ดูโปรเจ็กต์จะให้สิทธิ์นี้ นอกจากนี้ คุณยังให้สิทธิ์นี้ได้
ผ่านCloud Monitoringบทบาท
หรือบทบาทที่กำหนดเอง
แดชบอร์ดการใช้งานฐานข้อมูล
หากต้องการดูเมตริกการใช้งานสำหรับCloud Firestoreฐานข้อมูล ให้เปิดหน้าการใช้งาน ของฐานข้อมูลในคอนโซล Google Cloud
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลที่ต้องการจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกการใช้งาน
คลิกลิงก์ในข้อความที่ปรากฏในหน้าเว็บเพื่อดูการใช้งานฐานข้อมูล

แดชบอร์ดการใช้งานแบบรวม
หากโปรเจ็กต์มีCloud Firestoreฐานข้อมูลหลายรายการ คุณจะดูเมตริกการใช้งานที่รวบรวมไว้ได้ในคอนโซล Google Cloud หรือคอนโซล Firebase
คอนโซล Google Cloud
ในคอนโซล Google Cloud ให้ไปที่หน้าการใช้งานโปรเจ็กต์
ไปที่การใช้งานโปรเจ็กต์ Google Cloud
แดชบอร์ดการใช้งานโปรเจ็กต์จะแสดงการดำเนินการในเอกสารในช่วงระยะเวลาหนึ่ง ดังนี้

คอนโซล Firebase
ไปที่Cloud Firestoreหน้าการใช้งาน (คอนโซล Firebase)

แดชบอร์ดการใช้งานและรายงานการเรียกเก็บเงิน
แดชบอร์ดการใช้งาน Cloud Firestore ในคอนโซล Firebase และ Cloud จะแสดงค่าประมาณการใช้งาน ซึ่งจะช่วยให้คุณระบุการใช้งานที่เพิ่มขึ้นได้ อย่างไรก็ตาม แดชบอร์ดไม่ใช่มุมมองที่แน่นอนของการดำเนินการที่เรียกเก็บเงิน การใช้งานที่เรียกเก็บเงิน อาจสูงกว่า ในกรณีที่ข้อมูลไม่ตรงกัน รายงานการเรียกเก็บเงินจะมี ลำดับความสำคัญเหนือกว่าแดชบอร์ดการใช้งาน
การดำเนินการที่ทำให้เกิดความคลาดเคลื่อนระหว่างแดชบอร์ดการใช้งานกับการใช้งานที่เรียกเก็บเงิน ได้แก่
- การดำเนินการนำเข้าและส่งออก การอ่านและการเขียนที่ดำเนินการโดยการดำเนินการเหล่านี้ จะไม่แสดงในแดชบอร์ดการใช้งาน
- การเขียนแบบไม่มีการดำเนินการที่ยืนยันเท่านั้น การเขียนที่ยืนยันเฉพาะการมีอยู่หรือไม่ของเอกสารจะนับรวมในการดำเนินการอ่านที่เรียกเก็บเงิน แต่จะแสดงเป็น
UPDATE_NOOPและDELETE_NOOPตามลำดับในแดชบอร์ดการใช้งานการเขียน - การเขียนแบบไม่มีการดำเนินการ การดำเนินการที่ไม่ส่งผลให้เกิดการเปลี่ยนแปลงในฐานข้อมูล
เช่น การอัปเดตที่ไม่เปลี่ยนค่าฟิลด์หรือการเขียนไปยังเอกสารที่ถูกลบ
อาจแสดงในแดชบอร์ดการใช้งานเป็น
UPDATE_NOOPหรือDELETE_NOOPแม้ว่าสถานะจะแสดงเป็นNOOPแต่ก็ยังนับรวมในการดำเนินการที่เรียกเก็บเงิน การเขียนที่ยุบ ในกรณีที่มีการเขียนหลายครั้งไปยังเอกสารเดียวกันอย่างรวดเร็ว ต่อเนื่อง แดชบอร์ดการใช้งานอาจยุบการเขียนหลายครั้งเข้าด้วยกันและ นับเป็นการเขียนครั้งเดียว เมื่อเรียกเก็บเงินสำหรับการใช้งาน ระบบจะยังคงนับการเขียนแต่ละครั้งแยกกัน
แดชบอร์ดการใช้งานยังยุบการเขียนสำหรับการเปลี่ยนฟิลด์ เช่น การประทับเวลาของเซิร์ฟเวอร์ การเพิ่มตัวเลข และการดำเนินการรวมอาร์เรย์ด้วย สําหรับการแปลงฟิลด์ แดชบอร์ดการใช้งานอาจนับการดําเนินการหลายอย่างเป็นการดําเนินการเดียว
- คำค้นหาที่แสดงผลลัพธ์เป็น 0 การค้นหาที่ไม่มีผลลัพธ์จะทำให้เกิด ค่าใช้จ่ายในการอ่าน 1 รายการ ระบบจะเรียกเก็บเงินสำหรับการใช้งานนี้ แต่จะไม่ปรากฏ ในแดชบอร์ดการใช้งาน
- การดำเนินการอ่านจากรายการดัชนีที่อ่าน ระบบจะเรียกเก็บเงินสำหรับการใช้งานนี้ แต่จะไม่ ปรากฏในแดชบอร์ดการใช้งาน ตัวอย่างเช่น การค้นหาการรวบรวมจะเรียกเก็บเงินสำหรับรายการดัชนีที่อ่าน แต่การใช้งานนี้จะไม่ปรากฏในแดชบอร์ดการใช้งาน
- คำขอแสดงรหัสคอลเล็กชัน แดชบอร์ดการใช้งานจะรายงานการอ่าน 1 รายการต่อรหัสคอลเล็กชัน ซึ่งแตกต่างจากการเรียกเก็บเงิน
แดชบอร์ดการใช้งานสำหรับการลบจะไม่บันทึกการดำเนินการหมดอายุอัตโนมัติที่ดำเนินการโดยนโยบาย Time-to-live (TTL) โปรดดูเมตริก TTL จาก Cloud Monitoring
การใช้กฎความปลอดภัย
นอกจากนี้ คอนโซล Firebase ยังมีแดชบอร์ดการประเมินกฎความปลอดภัยของ Firebase ซึ่งเป็นมุมมองสรุปการเรียกใช้กฎที่มีประโยชน์ นอกจากนี้ คุณยังตรวจสอบการใช้งานกฎความปลอดภัยของ Firebase ได้ผ่าน Cloud Monitoring ซึ่งจะให้เมตริกการประเมินกฎเดียวกัน พร้อมกับความสามารถในการสร้างแดชบอร์ดที่กำหนดเอง วิเคราะห์แนวโน้ม และกำหนดค่า การแจ้งเตือน (เช่น เมื่อคำขอที่ถูกปฏิเสธเพิ่มขึ้นอย่างรวดเร็ว) ดูรายการเมตริกทั้งหมดที่ใช้ได้ในCloud Monitoringข้อมูลอ้างอิงเมตริก

เมตริก Cloud Monitoring รายการ
Cloud Monitoring รวบรวมเมตริก เหตุการณ์ และข้อมูลเมตาจากผลิตภัณฑ์ Google Cloud แดชบอร์ดการใช้งานในCloud Firestore Console จะรายงานข้อมูลเมตริกเดียวกัน หากต้องการ ตั้งค่าแดชบอร์ดที่กำหนดเองและการแจ้งเตือนการใช้งาน ให้ใช้ Cloud Monitoring
Cloud Monitoring มีCloud Firestoreเมตริกต่อไปนี้
| ชื่อเมตริก | คำอธิบาย |
|---|---|
| การอ่านเอกสาร |
จำนวนการอ่านเอกสารที่สำเร็จ คุณสามารถแบ่งเมตริกนี้ ตามประเภทการอ่านได้ดังนี้ LOOKUP หรือ QUERY เมตริกนี้ไม่รวมการอ่านจากการส่งออกที่มีการจัดการหรือการลบแบบเป็นกลุ่ม |
| การเขียนเอกสาร |
จำนวนการเขียนเอกสารที่สำเร็จ คุณสามารถแบ่งเมตริกออกเป็น ตามประเภทการเขียนได้ดังนี้ CREATE หรือ UPDATE เมตริกนี้ไม่รวมการเขียนจากการนำเข้าที่จัดการ |
| การลบเอกสาร | จำนวนการลบเอกสารที่สำเร็จ |
| การเชื่อมต่อที่ใช้งานอยู่ |
จำนวนการเชื่อมต่อที่ใช้งานอยู่กับฐานข้อมูล SDK สำหรับอุปกรณ์เคลื่อนที่และเว็บที่ใช้งานอยู่แต่ละรายการจะรักษา การเชื่อมต่อเดียว ซึ่งแชร์ได้ในเครื่องมือฟังการสแนปชอตหลายรายการ ไลบรารีของไคลเอ็นต์เซิร์ฟเวอร์ สร้างการเชื่อมต่อ 1 รายการต่อเครื่องมือฟังสแนปชอต |
| Snapshot Listener |
จำนวนเครื่องมือฟังสแนปชอตในการเชื่อมต่อที่ใช้งานอยู่ทั้งหมด |
| จำนวนการลบตามเวลาในการใช้งาน |
จำนวนเอกสารทั้งหมดที่ถูกลบโดย นโยบาย Time-to-live (TTL) |
| การหมดอายุของ Time-to-live จนถึงความล่าช้าในการลบ |
เวลาที่ผ่านไประหว่างที่เอกสารหมดอายุภายใต้ นโยบาย Time-to-live (TTL) กับเวลาที่ระบบลบเอกสารจริง |
- การใช้งานข้อมูลอัปเดตแบบเรียลไทม์
ใช้เมตริกการเชื่อมต่อที่ใช้งานอยู่และ Listener ของสแนปชอตเพื่อวัดการใช้งานการอัปเดตแบบเรียลไทม์
สมมติว่าผู้ใช้เปิดแอปของคุณในโทรศัพท์ จากนั้นแอปจะเชื่อมต่อกับ Cloud Firestore และสมัครใช้การค้นหา 10 รายการ ซึ่งจะเพิ่มเมตริก ของคุณด้วยการเชื่อมต่อที่ใช้งานอยู่ 1 รายการและผู้ฟังสแนปชอต 10 รายการ
- อัตราการสุ่มตัวอย่าง
ระบบจะสุ่มตัวอย่างเมตริก Cloud Firestore ทุกนาที แต่อาจใช้เวลาถึง 4 นาทีในการอัปเดตให้แสดงในแดชบอร์ด
เมตริกเวลาในการตอบสนอง
เมตริกเวลาในการตอบสนองของแบ็กเอนด์พร้อมใช้งานผ่านเมตริก Google Cloud firestore ทั่วไป
เช่น กราฟของเวลาในการตอบสนองที่เปอร์เซ็นไทล์ที่ 50 จะอยู่ในมุมมองเมตริก Explorer ของ Cloud Console
ตั้งค่าCloud Monitoringแดชบอร์ด
หากต้องการดูแดชบอร์ดที่กำหนดไว้ล่วงหน้าหรือตั้งค่าแดชบอร์ด โปรดดูใช้แดชบอร์ดการตรวจสอบ
ขั้นตอนถัดไป
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Cloud Monitoring
- ดูแนวทางปฏิบัติแนะนำในการตรวจสอบประสิทธิภาพของ Firestore