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

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

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