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