แม้ว่าอีเมลการแจ้งเตือนงบประมาณอย่างง่าย จะเป็นวิธีที่ค่อนข้างง่ายในการรับข้อมูลอัปเดตการเรียกเก็บเงิน แต่ก็อาจมีบางครั้งที่คุณต้องการสร้างการแจ้งเตือนที่ซับซ้อนมากขึ้นซึ่งรวมถึงตรรกะที่กำหนดเองเพิ่มเติม คุณอาจพิจารณาแนวทาง 2 อย่างต่อไปนี้
ใช้ Cloud Monitoring เพื่อสร้างการแจ้งเตือนที่ซับซ้อนและทันท่วงทีมากขึ้น
ใช้Pub/Subการแจ้งเตือนการเรียกเก็บเงินพร้อมกับ Cloud Function ที่เกี่ยวข้องเพื่อสร้างลักษณะการทำงานที่กำหนดเองเพื่อตอบสนองต่อการเปลี่ยนแปลงPub/Subการใช้จ่าย
แม้ว่าเทคนิคทั้ง 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 จะส่งได้เร็วกว่า อีเมลการแจ้งเตือนงบประมาณอย่างง่าย ซึ่งโดยปกติจะส่งวันละครั้ง การแจ้งเตือนอาจอยู่ในรูปแบบของข้อความ SMS, ข้อความในช่อง Slack, การแจ้งเตือนของ PagerDuty, Webhook และอื่นๆ ตัวเลือกเหล่านี้ช่วยให้คุณส่งการแจ้งเตือนที่มีระดับการมองเห็นที่สูงขึ้นและนำไปใช้ได้จริงมากขึ้น
กำลังใช้ Cloud Monitoring
หากต้องการเริ่มต้นใช้งาน Cloud Monitoring เราขอแนะนำให้เริ่มต้นด้วย เครื่องมือสํารวจเมตริก ซึ่งช่วยให้คุณสร้างกราฟของเมตริกที่กําหนดเองภายในโปรเจ็กต์ Firebase/Google Cloud และแสดงภาพการใช้งานได้
โดยเฉพาะอย่างยิ่ง คุณสามารถดูทรัพยากรต่างๆ เช่น Cloud Firestore, Realtime Database หรืออินสแตนซ์ Cloud Functions คุณดูข้อมูลการใช้งานเกี่ยวกับ ผลิตภัณฑ์เหล่านี้ (เช่น จำนวนการอ่านเอกสาร ไบต์ที่ส่ง หรือการเรียกใช้ฟังก์ชัน) ที่จะมีผลต่อการเรียกเก็บเงินได้
หลังจากที่คุณคุ้นเคยกับการแสดงภาพการใช้ทรัพยากรในเครื่องมือสำรวจเมตริกแล้ว เราขอแนะนำให้สร้างนโยบายการแจ้งเตือนสำหรับเมตริกที่คุณสนใจมากที่สุด ตัวอย่างนโยบายการแจ้งเตือนมีดังนี้
หากจำนวนการอ่านเอกสารในช่วงระยะเวลา 30 นาทีมากกว่าค่าหนึ่งๆ
หากการใช้ทรัพยากรที่เฉพาะเจาะจง (เช่น การเรียกใช้ฟังก์ชัน) ดูเหมือนจะ เพิ่มขึ้นเร็วเกินไปในช่วงเวลาหนึ่ง
สร้างตรรกะการเรียกเก็บเงินเพิ่มเติม
การแจ้งเตือนงบประมาณจะส่งอีเมลโดยอัตโนมัติเมื่องบประมาณถึงเกณฑ์ที่กำหนด แต่สำหรับการแจ้งเตือนที่ซับซ้อนมากขึ้นหรือการตอบสนองแบบเป็นโปรแกรมต่อการใช้จ่ายที่เพิ่มขึ้น คุณอาจต้องตั้งค่าตรรกะที่กำหนดเองเพิ่มเติมโดยอิงตามข้อความ Google Cloud Pub/Sub
เช่น คุณสามารถส่งการแจ้งเตือนไปยังแชแนล Slack หรือผ่านทางข้อความ หรือทำการเปลี่ยนแปลงแบบเป็นโปรแกรมในแอปหรือโปรเจ็กต์ได้โดยขึ้นอยู่กับระดับค่าใช้จ่าย
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 ทั้งหมดโดยนำบริการเรียกเก็บเงินออกโดยอัตโนมัติจากบัญชี