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