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