แม้ว่าอีเมลการแจ้งเตือนงบประมาณอย่างง่าย จะเป็นวิธีที่ค่อนข้างง่ายในการรับข้อมูลอัปเดตการเรียกเก็บเงิน แต่ก็อาจมีบางครั้งที่คุณต้องการสร้างการแจ้งเตือนที่ซับซ้อนมากขึ้นซึ่งรวมถึงตรรกะที่กำหนดเองเพิ่มเติม คุณอาจพิจารณาแนวทาง 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 Functions อย่างไรก็ตาม หากคุณใช้ Cloud Functions for Firebase เพื่อ ติดตั้งใช้งานฟังก์ชัน กระบวนการทั่วไปจะง่ายขึ้นเล็กน้อย (ดูเอกสารประกอบของ Firebase) นอกจากนี้ คุณยังดูวิดีโอนี้ เพื่อดูตัวอย่างคำแนะนำแบบทีละขั้นของกระบวนการได้ด้วย
เมื่อได้รับข้อมูลนี้แล้ว คุณจะตอบกลับได้หลายวิธี โดยมีทางเลือกดังนี้
ส่งการแจ้งเตือนไปยังช่อง Slack ช่อง Discord หรือส่งข้อความเมื่อการใช้จ่ายถึงเกณฑ์ที่กำหนด
วิเคราะห์การใช้จ่ายของคุณเมื่อเทียบกับข้อมูลย้อนหลังและแจ้งเตือนหาก มีสิ่งใดที่ดูผิดปกติ
การเปลี่ยนแปลงแอปผ่าน Remote Config หากระดับการเรียกเก็บเงินสูงเกินไป
ปิดใช้โปรเจ็กต์ Firebase ทั้งหมดโดยนำบริการเรียกเก็บเงินออกโดยอัตโนมัติจากบัญชี