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

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

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