ตั้งค่าการแจ้งเตือนและตรรกะการเรียกเก็บเงินขั้นสูง

แม้ว่าอีเมลการแจ้งเตือนงบประมาณแบบง่าย จะเป็นวิธีที่ค่อนข้างง่ายในการรับข้อมูลอัปเดตการเรียกเก็บเงิน แต่บางครั้งคุณอาจต้องการสร้างการแจ้งเตือนที่ซับซ้อนมากขึ้นซึ่งรวมถึงตรรกะที่กำหนดเองมากขึ้น โดยมี 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) นอกจากนี้ คุณยังดูวิดีโอตัวอย่างกระบวนการ ได้ด้วย

เมื่อได้รับข้อมูลนี้แล้ว คุณจะตอบสนองต่อข้อมูลได้หลายวิธี โดยมีตัวเลือกดังนี้