หน้านี้จะอธิบายวิธีตรวจสอบการใช้งาน Cloud Firestore และ ระบุปัญหาที่อาจเกิดขึ้นในแอป
แดชบอร์ดการใช้งาน
ใช้แดชบอร์ดการใช้งานใน Google Cloud Console และ Firebase Console เพื่อดูการอ่าน การเขียน และการลบเอกสารในช่วงระยะเวลาหนึ่ง
การควบคุมการเข้าถึง
แดชบอร์ดการใช้งานต้องมีmonitoring.timeSeries.list
สิทธิ์ Cloud IAM
บทบาทเจ้าของ ผู้แก้ไข และผู้ดูโปรเจ็กต์จะให้สิทธิ์นี้ นอกจากนี้ คุณยังให้สิทธิ์นี้ได้
ผ่านCloud Monitoringบทบาท
หรือบทบาทที่กำหนดเอง
แดชบอร์ดการใช้งานฐานข้อมูล
หากต้องการดูเมตริกการใช้งานสำหรับCloud Firestoreฐานข้อมูล ให้เปิดหน้าการใช้งาน ของฐานข้อมูลในคอนโซล Google Cloud
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลที่ต้องการจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกการใช้งาน
คลิกลิงก์ในข้อความที่ปรากฏในหน้าเว็บเพื่อดูการใช้งานฐานข้อมูล
แดชบอร์ดการใช้งานฐานข้อมูล Cloud Firestore ในคอนโซล Google Cloud"/>
แดชบอร์ดการใช้งานรวม
หากโปรเจ็กต์มีCloud Firestoreฐานข้อมูลหลายรายการ คุณจะดูเมตริกการใช้งานที่รวบรวมไว้ได้ในคอนโซล Google Cloud หรือคอนโซล Firebase
คอนโซล Google Cloud
ไปที่หน้าการใช้งานโปรเจ็กต์ใน Google Cloud Console
ไปที่การใช้งานโปรเจ็กต์ Google Cloud
แดชบอร์ดการใช้งานโปรเจ็กต์จะแสดงการดำเนินการในเอกสารในช่วงระยะเวลาหนึ่งดังนี้
แดชบอร์ดการใช้งานโปรเจ็กต์ Cloud Firestore ในคอนโซล Google Cloud"/>
Firebase คอนโซล
ไปที่หน้าการใช้งาน Cloud Firestore (Firebase คอนโซล)
แดชบอร์ดการใช้งาน Cloud Firestore ในFirebase Console"/>
แดชบอร์ดการใช้งานและรายงานการเรียกเก็บเงิน
Cloud Firestore แดชบอร์ดการใช้งานในคอนโซล Firebase และ Cloud จะแสดงค่าประมาณการใช้งาน ซึ่งจะช่วยให้คุณระบุการใช้งานที่เพิ่มขึ้นได้ อย่างไรก็ตาม แดชบอร์ดไม่ใช่มุมมองที่แน่นอนของการดำเนินการที่เรียกเก็บเงิน การใช้งานที่เรียกเก็บเงิน อาจสูงกว่า ในกรณีที่ข้อมูลไม่ตรงกัน รายงานการเรียกเก็บเงินจะมี ลำดับความสำคัญเหนือกว่าแดชบอร์ดการใช้งาน
การดำเนินการที่ทำให้เกิดความคลาดเคลื่อนระหว่างแดชบอร์ดการใช้งานกับการใช้งานที่เรียกเก็บเงิน ได้แก่
- การดำเนินการนำเข้าและส่งออก การอ่านและการเขียนที่ดำเนินการโดยการดำเนินการเหล่านี้ จะไม่แสดงในแดชบอร์ดการใช้งาน
- การเขียนแบบไม่มีการดำเนินการที่ยืนยันเท่านั้น การเขียนที่ยืนยันเฉพาะการมีอยู่หรือไม่ของเอกสารจะนับรวมในการอ่านที่เรียกเก็บเงิน แต่จะแสดงเป็น `UPDATE_NOOP` และ `DELETE_NOOP` ตามลำดับในแดชบอร์ดการใช้งานการเขียน
- การเขียนที่ไม่มีการดำเนินการ การดำเนินการที่ไม่ส่งผลให้เกิดการเปลี่ยนแปลงในฐานข้อมูล เช่น การอัปเดตที่ไม่เปลี่ยนค่าฟิลด์หรือการเขียนไปยังเอกสารที่ถูกลบ อาจแสดงในแดชบอร์ดการใช้งานเป็น `UPDATE_NOOP` หรือ `DELETE_NOOP` แม้ว่าจะแสดงเป็น `NOOP` แต่การดำเนินการเหล่านั้นก็ยังคงมีส่วนในการดำเนินการที่เรียกเก็บเงิน
การเขียนที่ยุบ ในกรณีที่มีการเขียนหลายครั้งไปยังเอกสารเดียวกันอย่างรวดเร็ว ต่อเนื่อง แดชบอร์ดการใช้งานอาจยุบการเขียนหลายครั้งเข้าด้วยกันและ นับเป็นการเขียนครั้งเดียว เมื่อเรียกเก็บเงินสำหรับการใช้งาน ระบบจะยังคงนับการเขียนแต่ละครั้งแยกกัน
แดชบอร์ดการใช้งานยังยุบการเขียนสำหรับการเปลี่ยนรูปแบบฟิลด์ เช่น การประทับเวลาของเซิร์ฟเวอร์ การเพิ่มตัวเลข และการดำเนินการรวมอาร์เรย์ด้วย สําหรับการแปลงฟิลด์ แดชบอร์ดการใช้งานอาจนับการดําเนินการหลายอย่างเป็นการดําเนินการเดียว
- คำค้นหาที่แสดงผลลัพธ์เป็น 0 การค้นหาที่ไม่มีผลลัพธ์จะทำให้เกิด ค่าใช้จ่ายในการดำเนินการอ่าน 1 ครั้ง ระบบจะเรียกเก็บเงินสำหรับการใช้งานนี้ แต่จะไม่ปรากฏ ในแดชบอร์ดการใช้งาน
- การดำเนินการอ่านจากรายการดัชนีที่อ่าน ระบบจะเรียกเก็บเงินสำหรับการใช้งานนี้ แต่จะไม่ ปรากฏในแดชบอร์ดการใช้งาน ตัวอย่างเช่น การค้นหาการรวบรวมจะเรียกเก็บเงินสำหรับรายการดัชนีที่อ่าน แต่การใช้งานนี้จะไม่ปรากฏในแดชบอร์ดการใช้งาน
แดชบอร์ดการใช้งานสำหรับการลบจะไม่บันทึกการดำเนินการหมดอายุอัตโนมัติที่ดำเนินการโดยนโยบาย Time-to-live (TTL) โปรดดูเมตริก TTL จาก Cloud Monitoring
การใช้กฎความปลอดภัย
นอกจากนี้ คอนโซล Firebase ยังมีแดชบอร์ดการประเมินกฎความปลอดภัย ซึ่งเป็นมุมมองสรุปการเรียกใช้กฎที่มีประโยชน์ คุณสามารถเสริม แดชบอร์ดนี้ด้วยการวิเคราะห์โดยละเอียดใน Cloud Monitoring
แดชบอร์ดการตรวจสอบกฎ Cloud Firestore
ในFirebaseคอนโซล"/>
เมตริก Cloud Monitoring รายการ
Cloud Monitoring รวบรวม เมตริก เหตุการณ์ และข้อมูลเมตาจากผลิตภัณฑ์ Google Cloud แดชบอร์ดการใช้งานในCloud Firestore Console จะรายงานข้อมูลเมตริกเดียวกัน หากต้องการ ตั้งค่าแดชบอร์ดที่กำหนดเองและการแจ้งเตือนการใช้งาน ให้ใช้ Cloud Monitoring
Cloud Monitoring มีCloud Firestoreเมตริกต่อไปนี้
ชื่อเมตริก | คำอธิบาย |
---|---|
การอ่านเอกสาร |
จำนวนการอ่านเอกสารที่สำเร็จ คุณสามารถแบ่งเมตริกนี้ ตามประเภทการอ่าน ได้แก่ LOOKUP หรือ QUERY เมตริกนี้ไม่รวมการอ่านจากการส่งออกที่จัดการหรือการดำเนินการลบแบบเป็นกลุ่ม |
การเขียนเอกสาร |
จำนวนการเขียนเอกสารที่สำเร็จ คุณสามารถแบ่งเมตริกออกเป็น ตามประเภทการเขียนได้ดังนี้ CREATE หรือ UPDATE เมตริกนี้ไม่รวมการเขียนจากการนำเข้าที่มีการจัดการ |
การลบเอกสาร | จำนวนการลบเอกสารที่สำเร็จ |
การเชื่อมต่อที่ใช้งานอยู่ |
จำนวนการเชื่อมต่อที่ใช้งานอยู่กับฐานข้อมูล SDK สำหรับอุปกรณ์เคลื่อนที่และเว็บที่ใช้งานอยู่แต่ละรายการจะรักษาการเชื่อมต่อเดียว ซึ่งแชร์ได้ใน Listener ของสแนปชอตหลายรายการ ไลบรารีของไคลเอ็นต์เซิร์ฟเวอร์ สร้างการเชื่อมต่อ 1 รายการต่อเครื่องมือฟังสแนปชอต |
Listener ของสแนปชอต |
จำนวน Listener ของสแนปชอตในการเชื่อมต่อที่ใช้งานอยู่ทั้งหมด |
จำนวนการลบ Time to Live |
จำนวนเอกสารทั้งหมดที่ถูกลบโดย นโยบาย Time-to-Live (TTL) |
การหมดอายุของ Time-to-live จนถึงความล่าช้าในการลบ |
เวลาที่ผ่านไประหว่างที่เอกสารหมดอายุภายใต้ นโยบายเวลาในการใช้งาน (TTL) กับเวลาที่ระบบลบเอกสารจริง |
- การใช้งานข้อมูลอัปเดตแบบเรียลไทม์
ใช้เมตริกการเชื่อมต่อที่ใช้งานอยู่และ Listener ของสแนปชอตเพื่อวัดการใช้งานการอัปเดตแบบเรียลไทม์
สมมติว่าผู้ใช้เปิดแอปของคุณในโทรศัพท์ จากนั้นแอปจะเชื่อมต่อกับ Cloud Firestore และสมัครใช้การค้นหา 10 รายการ ซึ่งจะเพิ่มเมตริก ด้วยการเชื่อมต่อที่ใช้งานอยู่ 1 รายการและ Listener ของสแนปชอต 10 รายการ
- อัตราการสุ่มตัวอย่าง
ระบบจะสุ่มตัวอย่างCloud Firestoreเมตริกทุกนาที แต่อาจใช้เวลาถึง 4 นาทีในการอัปเดตให้แสดงในแดชบอร์ด
เมตริกเวลาในการตอบสนอง
เมตริกเวลาในการตอบสนองของแบ็กเอนด์พร้อมใช้งานผ่านเมตริก Google Cloud firestore ทั่วไป
เช่น กราฟของเวลาในการตอบสนองที่เปอร์เซ็นไทล์ที่ 50 จะอยู่ในมุมมองเครื่องมือสำรวจเมตริกของ Cloud Console
ตั้งค่าCloud Monitoringแดชบอร์ด
หากต้องการดูแดชบอร์ดที่กำหนดไว้ล่วงหน้าหรือตั้งค่าแดชบอร์ด โปรดดูใช้แดชบอร์ดการตรวจสอบ
ขั้นตอนถัดไป
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Cloud Monitoring
- ดูข้อมูลเกี่ยวกับแนวทางปฏิบัติแนะนำในการตรวจสอบประสิทธิภาพของ Firestore