Proste e-maile z alertami o budżecie to stosunkowo łatwy sposób na otrzymywanie aktualizacji dotyczących płatności, ale czasami możesz chcieć tworzyć bardziej zaawansowane alerty, które zawierają bardziej dostosowaną logikę. Oto 2 podejścia, które warto rozważyć:
Używaj Cloud Monitoring do tworzenia bardziej zaawansowanych i aktualnych alertów
Użyj powiadomienia o płatnościachPub/Sub wraz z odpowiednią funkcją w Cloud Functions, aby tworzyć niestandardowe działania w reakcji na zmiany w wydatkach.
Obie te techniki wymagają więcej pracy z Twojej strony, ale dają Ci możliwość dokładnego kontrolowania, jakie alerty otrzymujesz i jak na nie reagujesz.
Na tej stronie znajdziesz omówienie każdego z tych podejść.
Tworzenie bardziej zaawansowanych alertów za pomocą Cloud Monitoring
Proste e-maile z alertami dotyczącymi budżetu informują o osiągnięciu określonych progów rozliczeń. Może Cię jednak interesować, czy poszczególne usługi nieoczekiwanie rosną – zanim zdążą znacząco wpłynąć na Twój budżet. W bardziej zaawansowanych przypadkach użycia, takich jak ten, zalecamy zapoznanie się z Cloud Monitoring, czyli Google Cloud narzędziem dostępnym w projekcie w Firebase.
Cloud Monitoring przydaje się w przypadku kilku różnych typów alertów:
Jeśli zasób, na którym opiera się Twój projekt, jest niedostępny (dotyczy to zarówno usług Firebase, jak i Google Cloud, a nawet usług zewnętrznych, takich jak AWS),
Jeśli usługi takie jak Cloud Functions odpowiadają dłużej niż zwykle,
Jeśli Cloud StoragezasobnikCloud Storage, Realtime DatabaseinstancjaRealtime Database lub Cloud FirestoreinstancjaCloud Firestore odrzuca zbyt wiele żądań (co może wskazywać na nieprawidłową wartość parametru Firebase Security Rules).
Jeśli ilość zasobów wykorzystywanych przez niektóre usługi Firebase przekroczyła określony próg
Alerty utworzone za pomocą Cloud Monitoring są zwykle wysyłane szybciej niż proste e-maile z alertami o budżecie, które są zazwyczaj wysyłane raz dziennie. Alerty mogą przyjmować formę SMS-ów, wiadomości na kanale Slacka, powiadomień PagerDuty, webhooków i innych. Te opcje umożliwiają wysyłanie alertów o większej i bardziej przydatnej widoczności.
Jak korzystać z aplikacji Cloud Monitoring
Aby zacząć korzystać z Cloud Monitoring, zalecamy rozpoczęcie od Metrics Explorer, który umożliwia tworzenie wykresów wskaźników niestandardowych w projekcie w Firebase/Google Cloud i wizualizowanie ich wykorzystania.
Możesz na przykład sprawdzić zasoby takie jak instancje Cloud Firestore, Realtime Database lub Cloud Functions. Możesz wyświetlić informacje o używaniu tych usług (np. liczbę odczytów dokumentów, wysłanych bajtów lub wywołań funkcji), które mają wpływ na rozliczenia.
Gdy już będziesz w stanie wygodnie wizualizować wykorzystanie zasobów w Metrics Explorer, zalecamy utworzenie zasad tworzenia alertów dotyczących najważniejszych dla Ciebie wskaźników. Oto kilka przykładowych zasad alertów:
Jeśli liczba odczytów dokumentów w 30-minutowym okresie przekroczy określoną wartość
Jeśli użycie określonego zasobu (np. wywołanie funkcji) wydaje się zbyt szybko rosnąć w określonym przedziale czasu,
Tworzenie dodatkowej logiki rozliczeń
Alerty budżetowe automatycznie wysyłają e-maile, gdy budżet osiągnie określone progi. Jeśli jednak potrzebujesz bardziej zaawansowanych alertów lub automatycznych reakcji na wzrost wydatków, możesz skonfigurować dodatkową logikę niestandardową na podstawie komunikatów Google Cloud Pub/Sub.
Możesz na przykład wysyłać alerty na kanały Slacka lub SMS-em albo wprowadzać programowe zmiany w aplikacji lub projekcie w zależności od poziomu wydatków.
Pub/Sub to usługa przesyłania wiadomości, która umożliwia innym usługom wysyłanie wiadomości – zwykle w formie danych JSON – w sposób asynchroniczny za pomocą kanałów zwanych Pub/Sub tematami. Możesz skonfigurować autoryzowane usługi, np. Cloud Functions, aby nasłuchiwały wiadomości w tych tematach i odpowiednio reagowały na dane.
Pamiętaj, że Pub/Sub powiadomienia dotyczące rozliczeń są wysyłane mniej więcej co 20 minut niezależnie od tego, czy wykorzystanie rozliczeniowe uległo zmianie, i są bezstanowe (co oznacza, że nie podają informacji o tym, co było wcześniej). Jeśli chcesz śledzić nietypowe wzrosty wydatków w czasie lub porównywać wydatki z poprzednim cyklem, musisz samodzielnie zarządzać tymi danymi historycznymi za pomocą bazy danych, np. Cloud Firestore, lub Realtime Database.
Używanie tematów Pub/Sub w usłudze Cloud Functions
Możesz skonfigurować temat Pub/Sub dla danych rozliczeniowych, otwierając budżet powiązany z projektem w Firebase w Google Cloud konsoli (w sekcji Płatności > Budżety i alerty), a następnie klikając pole wyboru Połącz z tym budżetem temat Pub/Sub. Spowoduje to utworzenie tematu Pub/Sub, którego możesz później posłuchać. Szczegółowe instrukcje znajdziesz w pełnej dokumentacji.
Po utworzeniu Pub/Sub tematu związanego z płatnościami możesz napisać funkcję Cloud, która będzie nasłuchiwać tego tematu i odpowiednio reagować na dane. Dane są wysyłane w formacie JSON i zawierają przydatne informacje, takie jak kwota wydana do tej pory, kwota budżetu i data rozpoczęcia bieżącego cyklu rozliczeniowego.
W Google Cloud dokumentacji znajdziesz szczegółowe informacje o tym, jak otrzymywać te dane za pomocą funkcji w Cloud Functions. Jeśli jednak do wdrażania funkcji używasz Cloud Functions for Firebase, ogólny proces jest nieco prostszy (zapoznaj się z dokumentacją Firebase). Przykładowy proces znajdziesz w tym filmie.
Po otrzymaniu tych danych możesz na nie odpowiedzieć na kilka sposobów. Możliwości są następujące:
Wysyłanie alertów na kanały Slack, kanały Discord lub wysyłanie wiadomości tekstowych, gdy wydatki osiągną określony próg.
analizowanie Twoich wydatków w porównaniu z danymi historycznymi i powiadamianie Cię, jeśli coś wydaje się nietypowe;
Wprowadzanie zmian w aplikacjiRemote Config, jeśli poziom płatności jest zbyt wysoki
całkowite wyłączenie projektu w Firebase przez programowe usunięcie usługi rozliczeniowej z konta;