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

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

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