แม้ว่าอีเมลการแจ้งเตือนงบประมาณอย่างง่าย จะเป็นวิธีที่ค่อนข้างง่ายในการรับข้อมูลอัปเดตการเรียกเก็บเงิน แต่ก็อาจมีบางครั้งที่คุณต้องการสร้างการแจ้งเตือนที่ซับซ้อนมากขึ้นซึ่งรวมถึงตรรกะที่กำหนดเองเพิ่มเติม แนวทาง 2 อย่างที่ควรพิจารณามีดังนี้
ใช้ Cloud Monitoring เพื่อสร้างการแจ้งเตือนที่ซับซ้อนและทันท่วงทีมากขึ้น
ใช้Pub/Subการแจ้งเตือนการเรียกเก็บเงินพร้อมกับ Cloud Functions ที่เกี่ยวข้องเพื่อสร้างลักษณะการทำงานที่กำหนดเองเพื่อตอบสนองต่อการเปลี่ยนแปลงการใช้จ่าย
แม้ว่าเทคนิคทั้ง 2 อย่างนี้จะต้องใช้ความพยายามมากขึ้น แต่ก็ช่วยให้คุณควบคุมได้อย่างแม่นยำว่าต้องการรับการแจ้งเตือนประเภทใดและวิธีตอบสนองต่อการแจ้งเตือนเหล่านั้น
หน้านี้จะแสดงภาพรวมของแต่ละแนวทาง
สร้างการแจ้งเตือนที่ซับซ้อนมากขึ้นด้วย Cloud Monitoring
อีเมลการแจ้งเตือนเรื่องงบประมาณอย่างง่ายจะแจ้งให้คุณทราบเมื่อการเรียกเก็บเงินโดยรวมถึงเกณฑ์ที่กำหนด อย่างไรก็ตาม คุณอาจต้องการทราบว่าบริการแต่ละรายการมีการเพิ่มขึ้นอย่างไม่คาดคิดหรือไม่ ก่อนที่บริการเหล่านั้นจะมีโอกาสส่งผลกระทบต่องบประมาณของคุณอย่างมาก สำหรับกรณีการใช้งานที่ซับซ้อนมากขึ้นเช่นนี้ เราขอแนะนำให้ศึกษาเกี่ยวกับ Cloud Monitoring ซึ่งเป็นเครื่องมือ Google Cloud ที่พร้อมใช้งานสำหรับโปรเจ็กต์ Firebase ของคุณ
Cloud Monitoring มีประโยชน์สำหรับการแจ้งเตือนหลายประเภท ดังนี้
หากทรัพยากรที่โปรเจ็กต์ของคุณใช้ไม่พร้อมใช้งาน (สำหรับทั้งบริการ Firebase และ Google Cloud รวมถึงบริการภายนอก เช่น AWS)
หากบริการต่างๆ เช่น Cloud Functions ใช้เวลานานกว่าที่คาดไว้ในการตอบกลับ
หากที่เก็บข้อมูล Cloud Storage, อินสแตนซ์ Realtime Database หรืออินสแตนซ์ Cloud Firestore ปฏิเสธคำขอมากเกินไป (ซึ่งบ่งชี้ว่า Firebase Security Rules อาจไม่ถูกต้อง)
หากปริมาณทรัพยากรที่ผลิตภัณฑ์ Firebase บางอย่างของคุณใช้ เพิ่มขึ้นเกินเกณฑ์ที่กำหนด
โดยปกติแล้ว ระบบจะส่งการแจ้งเตือนที่สร้างผ่าน Cloud Monitoring เร็วกว่า อีเมลการแจ้งเตือนงบประมาณอย่างง่าย ซึ่งโดยปกติจะส่งวันละ 1 ครั้ง การแจ้งเตือนอาจอยู่ในรูปแบบของข้อความ SMS, ข้อความในช่อง Slack, การแจ้งเตือนของ PagerDuty, Webhook และอื่นๆ ตัวเลือกเหล่านี้ช่วยให้คุณส่งการแจ้งเตือนที่มีระดับการมองเห็นที่สูงขึ้นและนำไปใช้ได้จริงมากขึ้น
กำลังใช้ Cloud Monitoring
หากต้องการเริ่มต้นใช้งาน Cloud Monitoring เราขอแนะนําให้เริ่มต้นด้วย เครื่องมือสํารวจเมตริก ซึ่งช่วยให้คุณสร้างกราฟของเมตริกที่กําหนดเองภายในโปรเจ็กต์ Firebase/Google Cloud และแสดงภาพการใช้งานได้
โดยเฉพาะอย่างยิ่ง คุณสามารถดูทรัพยากรต่างๆ เช่น Cloud Firestore, Realtime Database หรืออินสแตนซ์ Cloud Functions คุณดูข้อมูลการใช้งานเกี่ยวกับ ผลิตภัณฑ์เหล่านี้ (เช่น จำนวนการอ่านเอกสาร ไบต์ที่ส่ง หรือการเรียกใช้ฟังก์ชัน) ที่จะมีผลต่อการเรียกเก็บเงินได้
หลังจากที่คุณคุ้นเคยกับการแสดงภาพการใช้ทรัพยากรใน Metrics Explorer แล้ว เราขอแนะนําให้สร้างนโยบายการแจ้งเตือนในเมตริกที่คุณสนใจมากที่สุด ตัวอย่างนโยบายการแจ้งเตือนมีดังนี้
หากจำนวนการอ่านเอกสารในช่วงระยะเวลา 30 นาทีมากกว่าค่าหนึ่งๆ
หากการใช้ทรัพยากรที่เฉพาะเจาะจง (เช่น การเรียกใช้ฟังก์ชัน) ดูเหมือนจะเพิ่มขึ้นเร็วเกินไปในช่วงเวลาหนึ่งๆ
สร้างตรรกะการเรียกเก็บเงินเพิ่มเติม
การแจ้งเตือนงบประมาณจะส่งอีเมลโดยอัตโนมัติเมื่องบประมาณถึงเกณฑ์ที่กำหนด แต่สำหรับการแจ้งเตือนที่ซับซ้อนมากขึ้นหรือการตอบสนองแบบเป็นโปรแกรมต่อการใช้จ่ายที่เพิ่มขึ้น คุณอาจพิจารณาตั้งค่าตรรกะที่กำหนดเองเพิ่มเติมโดยอิงตามข้อความ Google Cloud Pub/Sub
เช่น คุณสามารถส่งการแจ้งเตือนไปยังแชแนล Slack หรือผ่านทาง SMS หรือทำการเปลี่ยนแปลงแบบเป็นโปรแกรมกับแอปหรือโปรเจ็กต์ได้โดยขึ้นอยู่กับระดับค่าใช้จ่าย
Pub/Sub เป็นบริการส่งข้อความที่ช่วยให้บริการอื่นๆ ส่งข้อความได้ โดยปกติจะอยู่ในรูปแบบข้อมูล JSON ในลักษณะแบบอะซิงโครนัส ผ่านแชแนลที่เรียกว่าหัวข้อ Pub/Sub คุณสามารถตั้งค่าบริการที่ได้รับอนุญาต เช่น Cloud Functions เพื่อฟังข้อความในหัวข้อเหล่านี้และ ดำเนินการกับข้อมูลอย่างเหมาะสม
โปรดทราบว่าPub/Subการแจ้งเตือนสำหรับการเรียกเก็บเงินจะส่งประมาณทุกๆ 20 นาที ไม่ว่าการใช้งานสำหรับการเรียกเก็บเงินจะมีการเปลี่ยนแปลงหรือไม่ก็ตาม และการแจ้งเตือนเหล่านี้จะPub/Subไม่เก็บสถานะ (หมายความว่าจะไม่มีบริบทว่าเกิดอะไรขึ้นก่อนหน้านี้) หากต้องการติดตามการใช้จ่ายที่เพิ่มขึ้นอย่างผิดปกติเมื่อเวลาผ่านไป หรือเปรียบเทียบการใช้จ่ายกับรอบก่อนหน้า คุณจะต้องจัดการข้อมูลย้อนหลังด้วยตนเองโดยใช้ฐานข้อมูล เช่น Cloud Firestore หรือ Realtime Database
การใช้หัวข้อ Pub/Sub กับ Cloud Functions
คุณตั้งค่าหัวข้อ Pub/Sub สำหรับข้อมูลการเรียกเก็บเงินได้โดยไปที่ งบประมาณที่เชื่อมโยงกับโปรเจ็กต์ Firebase ในคอนโซล Google Cloud (ในส่วนการเรียกเก็บเงิน > งบประมาณและการแจ้งเตือน) แล้วคลิกช่องทําเครื่องหมายสําหรับเชื่อมต่อหัวข้อ Pub/Sub กับงบประมาณนี้ การดำเนินการนี้จะสร้างหัวข้อ Pub/Sub ที่คุณสามารถฟังได้ในภายหลัง ดูขั้นตอนโดยละเอียดได้ในเอกสารประกอบฉบับเต็ม
หลังจากสร้างPub/Subหัวข้อการเรียกเก็บเงินแล้ว คุณจะเขียน Cloud Function เพื่อฟังหัวข้อนี้และดำเนินการกับข้อมูลตามนั้นได้ ระบบจะส่งข้อมูลเป็นข้อมูล JSON และมีข้อมูลที่เป็นประโยชน์ เช่น จำนวนเงินที่คุณใช้ไปแล้ว จำนวนงบประมาณ และวันที่เริ่มต้นของรอบการเรียกเก็บเงินปัจจุบัน
Google Cloudเอกสารประกอบมีรายละเอียดทั้งหมดเกี่ยวกับวิธีรับข้อมูลนี้ โดยใช้ Cloud Function อย่างไรก็ตาม หากคุณใช้ Cloud Functions for Firebase เพื่อ ติดตั้งใช้งานฟังก์ชัน กระบวนการทั่วไปจะง่ายขึ้นเล็กน้อย (ดูเอกสารประกอบของ Firebase) นอกจากนี้ คุณยังดูวิดีโอนี้ เพื่อดูตัวอย่างการแนะนำกระบวนการแบบทีละขั้นตอนได้ด้วย
เมื่อได้รับข้อมูลนี้แล้ว คุณจะตอบกลับได้หลายวิธี โดยมีทางเลือกดังนี้
ส่งการแจ้งเตือนไปยังช่อง Slack ช่อง Discord หรือส่งข้อความเมื่อการใช้จ่ายถึงเกณฑ์ที่กำหนด
วิเคราะห์การใช้จ่ายของคุณเมื่อเทียบกับข้อมูลย้อนหลังและแจ้งเตือนหาก มีสิ่งใดที่ดูผิดปกติ
การเปลี่ยนแปลงแอปผ่าน Remote Config หากระดับการเรียกเก็บเงินสูงเกินไป
ปิดใช้โปรเจ็กต์ Firebase ทั้งหมดโดยนำบริการเรียกเก็บเงินออกโดยอัตโนมัติจากบัญชี