หน้านี้จะอธิบายวิธีตรวจสอบการใช้งาน 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แต่การดำเนินการเหล่านี้ก็ยังส่งผลต่อการดำเนินการที่เรียกเก็บเงิน การเขียนที่ยุบ ในกรณีที่มีการเขียนหลายครั้งไปยังเอกสารเดียวกันอย่างรวดเร็ว แดชบอร์ดการใช้งานอาจยุบการเขียนหลายรายการเข้าด้วยกันและนับเป็น 1 รายการ เมื่อเรียกเก็บเงินสำหรับการใช้งาน ระบบจะยังคงนับการเขียนแต่ละครั้งแยกกัน
นอกจากนี้ แดชบอร์ดการใช้งานยังยุบการเขียนสำหรับการแปลงช่อง เช่น การประทับเวลาของเซิร์ฟเวอร์ การเพิ่มตัวเลข และการดำเนินการรวมอาร์เรย์ สำหรับการแปลงช่อง แดชบอร์ดการใช้งานอาจนับการดำเนินการหลายรายการเป็นการดำเนินการเดียว
- การค้นหาที่ไม่แสดงผลลัพธ์ การค้นหาที่ไม่แสดงผลลัพธ์จะทำให้เกิดค่าใช้จ่ายในการดำเนินการอ่าน 1 ครั้ง การใช้งานนี้จะถูกเรียกเก็บเงินแต่ไม่ปรากฏในแดชบอร์ดการใช้งาน
- การดำเนินการอ่านจาก รายการดัชนีที่อ่าน การใช้งานนี้จะถูกเรียกเก็บเงินแต่ไม่ปรากฏในแดชบอร์ดการใช้งาน ตัวอย่างเช่น การค้นหาการรวบรวมข้อมูลจะเรียกเก็บเงินสำหรับการอ่านรายการดัชนี แต่การใช้งานนี้จะไม่ปรากฏในแดชบอร์ดการใช้งาน
- คำขอให้แสดงรายการรหัสคอลเล็กชัน แดชบอร์ดการใช้งานจะรายงานการดำเนินการอ่าน 1 ครั้งต่อรหัสคอลเล็กชัน ซึ่งแตกต่างจาก การเรียกเก็บเงิน
แดชบอร์ดการใช้งานสำหรับการลบจะไม่บันทึกการดำเนินการหมดอายุอัตโนมัติที่ดำเนินการโดยนโยบาย Time-to-live (TTL) โปรดดูเมตริก TTL จาก Cloud Monitoring
การใช้งานกฎความปลอดภัย
นอกจากนี้ คอนโซล Firebase ยังมีแดชบอร์ดการประเมินกฎความปลอดภัยของ Firebase ซึ่งเป็นมุมมองที่สรุปการเรียกใช้กฎที่มีประโยชน์ คุณยังตรวจสอบการใช้งานกฎความปลอดภัยของ Firebase ผ่าน Cloud Monitoring ได้ด้วย ซึ่งจะแสดงเมตริกการประเมินกฎเดียวกัน พร้อมความสามารถในการสร้างแดชบอร์ดที่กำหนดเอง วิเคราะห์แนวโน้ม และกำหนดค่าการแจ้งเตือน (เช่น เมื่อคำขอที่ถูกปฏิเสธเพิ่มขึ้นอย่างรวดเร็ว) ดูรายการเมตริกทั้งหมดที่พร้อมใช้งานได้ที่ข้อมูลอ้างอิงเมตริกของ Cloud Monitoringสำหรับรายการทั้งหมด

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