Thiết lập cảnh báo và logic thanh toán nâng cao

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 có thể có những lúc bạn muốn tạo các cảnh báo phức tạp hơn có chứa nhiều logic tuỳ chỉnh hơn. Sau đây là 2 cách bạn có thể cân nhắc:

  • Sử dụng Cloud Monitoring để tạo cảnh báo tinh vi và kịp thời hơn

  • Sử dụng thông báo thanh toán Pub/Sub cùng với 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 nỗ lực hơn, nhưng chúng cho phép bạn kiểm soát chính xác loại cảnh báo mà bạn nhận được 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 tiếp cận 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 sẽ cho bạn biết khi tổng số tiền thanh toán của bạ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 những 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 có sẵn cho dự án Firebase của bạn.

Cloud Monitoring hữu ích cho nhiều 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ả dịch vụ Firebase và Google Cloud, nhưng ngay cả đối với các dịch vụ bên ngoài, chẳng hạn 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 vùng 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 Firebase Security Rules của bạn có thể không chính xác).

  • Nếu 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à hữu ích hơn.

Sử dụng Cloud Monitoring

Để bắt đầu với Cloud Monitoring, bạn nên bắt đầu bằng 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 các phiên bản Cloud Functions. Bạn có thể xem thông tin sử dụng về các sản phẩm này (chẳng hạn 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 của bạ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 cho những chỉ số mà bạn quan tâm nhất. Sau đây là một số ví dụ về chính sách cảnh báo:

  • 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ể (chẳng hạn như lệnh gọi hàm) có vẻ tăng quá nhanh trong một khoảng thời gian nhất định

Tạo thêm logic thanh toán

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 số ngưỡng nhất định, nhưng để có cảnh báo tinh vi hơn hoặc phản ứng theo chương 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 thêm logic tuỳ chỉnh dựa trên thông báo Google Cloud Pub/Sub.

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 chương 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, chẳng hạ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 lưu giữ 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 đột biến 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 trong quá khứ đó bằng cách sử dụng cơ sở dữ liệu như Cloud Firestore hoặc Realtime Database.

Sử dụng các 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 bằng cách truy cập vào ngân sách liên kết với dự án Firebase của bạn trong bảng điều khiển Google Cloud (trong mục 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 một chủ đề Pub/Sub với ngân sách này. Thao tác này sẽ tạo một chủ đề Pub/Sub mà bạn có thể theo dõi sau. Để 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 cho phù hợp. Dữ liệu được gửi dưới dạng dữ liệu JSON và bao gồm những 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 chu kỳ thanh toán hiện tại.

Tài liệu về Google Cloud có đầy đủ thông tin chi tiết về cách nhận dữ liệu này bằng Cloud Functions. 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 của 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 nhiều cách. Dưới đây là một số tùy chọn: