Mặc dù email cảnh báo ngân sách đơn giản là một cách tương đối dễ dàng để nhận thông tin cập nhật về việc thanh toán, nhưng đôi khi bạn có thể muốn tạo các cảnh báo phức tạp hơn, bao gồm cả logic tuỳ chỉnh hơn. Dưới đây là 2 phương pháp bạn nên cân nhắc:
Sử dụng Cloud Monitoring để tạo các cảnh báo phức tạp và kịp thời hơn
Sử dụng thông báo về việc thanh toán Pub/Sub cùng với một Cloud Function tương ứng để tạo hành vi tuỳ chỉnh nhằm phản hồi các thay đổi về mức chi tiêu
Mặc dù cả hai kỹ thuật này đều đòi hỏi bạn phải thực hiện nhiều việc hơn, nhưng chúng giúp bạn có quyền kiểm soát chính xác loại cảnh báo mà bạn đang nhận và cách phản hồi các cảnh báo đó.
Trang này cung cấp thông tin tổng quan về từng phương pháp này.
Tạo cảnh báo phức tạp hơn bằng Cloud Monitoring
Email cảnh báo ngân sách đơn giản cho bạn biết khi tổng số tiền thanh toán đã đạt đến một ngưỡng nhất định. Tuy nhiên, bạn cũng có thể muốn biết liệu các dịch vụ riêng lẻ có đang tăng lên một cách bất ngờ hay không – trước khi chúng có cơ hội ảnh hưởng đáng kể đến ngân sách của bạn. Đối với các trường hợp sử dụng phức tạp hơn như thế này, bạn nên tìm hiểu về Cloud Monitoring. Đây là một công cụGoogle Cloud dành cho dự án Firebase của bạn.
Cloud Monitoring hữu ích cho một số loại cảnh báo:
Nếu một tài nguyên mà dự án của bạn dựa vào không có sẵn (đối với cả Firebase và Google Cloud dịch vụ, nhưng ngay cả đối với các dịch vụ bên ngoài, như AWS)
Nếu các dịch vụ như Cloud Functions mất nhiều thời gian hơn dự kiến để phản hồi
Nếu bộ chứa Cloud Storage, phiên bản Realtime Database hoặc phiên bản Cloud Firestore của bạn đang từ chối quá nhiều yêu cầu (cho thấy của bạn có thể không chính xác).Firebase Security Rules
Nếu số lượng tài nguyên mà một số sản phẩm Firebase của bạn sử dụng đã tăng lên trên một ngưỡng nhất định
Cảnh báo được tạo thông qua Cloud Monitoring thường được gửi nhanh hơn so với email cảnh báo ngân sách đơn giản (thường được gửi mỗi ngày một lần). Cảnh báo có thể ở dạng tin nhắn SMS, tin nhắn trên kênh Slack, thông báo PagerDuty, webhook và nhiều dạng khác. Các lựa chọn này cho phép bạn gửi cảnh báo với mức độ hiển thị cao hơn và có thể thực hiện nhiều hành động hơn.
Sử dụng Cloud Monitoring
Để bắt đầu sử dụng Cloud Monitoring, bạn nên bắt đầu với Trình khám phá chỉ số. Công cụ này cho phép bạn tạo biểu đồ về các chỉ số tuỳ chỉnh trong dự án Firebase/Google Cloud và hình dung mức sử dụng của các chỉ số đó.
Cụ thể, bạn có thể xem các tài nguyên như Cloud Firestore, Realtime Database, hoặc phiên bản Cloud Function. Bạn có thể xem thông tin về việc sử dụng về các sản phẩm này (như số lần đọc tài liệu, số byte đã gửi hoặc số lần gọi hàm) sẽ ảnh hưởng đến việc thanh toán.
Sau khi bạn đã quen với việc hình dung mức sử dụng tài nguyên trong Trình khám phá chỉ số, bạn nên tạo một chính sách cảnh báo về các chỉ số mà bạn quan tâm nhất. Dưới đây là một số chính sách cảnh báo mẫu:
Nếu số lần đọc tài liệu trong khoảng thời gian 30 phút lớn hơn một giá trị cụ thể
Nếu mức sử dụng một tài nguyên cụ thể (như một lần gọi hàm) có vẻ đang tăng quá nhanh trong một khoảng thời gian nhất định
Tạo logic thanh toán bổ sung
Cảnh báo về ngân sách sẽ tự động gửi email khi ngân sách của bạn đạt đến một ngưỡng nhất định . Tuy nhiên, để có cảnh báo phức tạp hơn hoặc phản ứng theo phương thức lập trình đối với việc tăng mức chi tiêu, bạn có thể cân nhắc thiết lập logic tuỳ chỉnh bổ sung dựa trên Google Cloud Pub/Sub thông báo.
Ví dụ: bạn có thể gửi cảnh báo đến các kênh Slack hoặc qua tin nhắn văn bản, hoặc bạn có thể thực hiện các thay đổi theo phương thức lập trình đối với ứng dụng hoặc dự án của mình tuỳ thuộc vào mức chi tiêu.
Pub/Sub là một dịch vụ truyền thông báo cho phép các dịch vụ khác gửi thông báo – thường ở dạng dữ liệu JSON – theo cách không đồng bộ thông qua các kênh được gọi là chủ đề Pub/Sub. Bạn có thể thiết lập các dịch vụ được uỷ quyền, như Cloud Functions, để theo dõi thông báo trong các chủ đề này và hành động dựa trên dữ liệu một cách thích hợp.
Xin lưu ý rằng thông báo Pub/Sub về việc thanh toán được gửi khoảng 20 phút một lần, bất kể mức sử dụng thanh toán của bạn có thay đổi hay không và các thông báo này không có trạng thái (nghĩa là chúng không cung cấp bối cảnh về những gì đã xảy ra trước đó). Nếu muốn theo dõi mức chi tiêu tăng bất thường theo thời gian hoặc so sánh mức chi tiêu với chu kỳ trước, bạn sẽ cần tự quản lý dữ liệu cũ đó bằng một cơ sở dữ liệu như Cloud Firestore hoặc Realtime Database.
Sử dụng chủ đề Pub/Sub với Cloud Functions
Bạn có thể thiết lập một chủ đề Pub/Sub cho dữ liệu thanh toán của mình bằng cách truy cập vào ngân sách được liên kết với dự án Firebase trong bảng điều khiển Google Cloud (trong phần Thanh toán > Ngân sách và cảnh báo), sau đó nhấp vào hộp đánh dấu cho Kết nối chủ đề Pub/Sub với ngân sách này. Thao tác này sẽ tạo một Pub/Sub chủ đề mà bạn có thể theo dõi sau này. Để biết các bước chi tiết, hãy tham khảo tài liệu đầy đủ.
Sau khi tạo chủ đề thanh toán Pub/Sub, bạn có thể viết một Cloud Function để theo dõi chủ đề này và hành động dựa trên dữ liệu một cách thích hợp. Dữ liệu được gửi dưới dạng dữ liệu JSON và bao gồm thông tin hữu ích như số tiền bạn đã chi tiêu cho đến nay, số tiền ngân sách và ngày bắt đầu của chu kỳ thanh toán hiện tại.
Tài liệu Google Cloud có thông tin chi tiết đầy đủ về cách nhận dữ liệu này bằng Cloud Function. Tuy nhiên, nếu bạn đang sử dụng Cloud Functions for Firebase để triển khai các hàm, thì quy trình chung sẽ đơn giản hơn một chút (hãy xem tài liệu Firebase). Bạn cũng có thể tham khảo video này để xem hướng dẫn mẫu về quy trình.
Sau khi nhận được dữ liệu này, bạn có thể phản hồi theo một số cách. Dưới đây là một số lựa chọn:
Gửi cảnh báo đến các kênh Slack, kênh Discord hoặc gửi tin nhắn văn bản khi mức chi tiêu của bạn đạt đến một ngưỡng nhất định.
Phân tích mức chi tiêu của bạn so với dữ liệu cũ và cảnh báo cho bạn nếu có điều gì đó bất thường
Thay đổi ứng dụng của bạn thông qua Remote Config nếu mức thanh toán trở nên quá cao
Tắt hoàn toàn dự án Firebase bằng cách xoá dịch vụ thanh toán khỏi tài khoản của bạn theo phương thức lập trình