Alerty o budżecie to stosunkowo prosty sposób na otrzymywanie informacji o rozliczeniach, 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ściach Pub/Sub wraz z odpowiednią funkcją Cloud Function, aby utworzyć niestandardowe działanie 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 rozliczeniowych. Może Cię jednak interesować, czy poszczególne usługi nieoczekiwanie się rozwijają, 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 Twoim 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 StoragekoszRealtime Database, instancja lub Cloud Firestoreinstancja odrzuca zbyt wiele żądań (co wskazuje, że Firebase Security Rulesmoże być nieprawidłowy).
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ż podstawowe 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óra umożliwia tworzenie wykresów danych niestandardowych w projekcie 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 korzystaniu z 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 przekracza 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, ale w przypadku 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, takie jak 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 nie zawierają informacji o kontekście (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ć danymi historycznymi za pomocą bazy danych, np. Cloud Firestore, lub Realtime Database.
Używanie tematów Pub/Sub z Cloud Functions
Aby skonfigurować temat Pub/Sub dla danych rozliczeniowych, otwórz budżet powiązany z projektem Firebase w Google Cloud konsoli (w sekcji Rozliczenia > Budżety i alerty), a następnie kliknij pole wyboru Połącz z tym budżetem temat Pub/Sub. Spowoduje to utworzenie tematu Pub/Sub, którego możesz później słuchać. Szczegółowe instrukcje znajdziesz w pełnej dokumentacji.
Po utworzeniu Pub/Subtematu rozliczeniowego możesz napisać funkcję w Cloud Functions, 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 dokumentacji Google Cloud 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). Możesz też obejrzeć ten film, w którym pokazujemy, jak to zrobić.
Po otrzymaniu tych danych możesz na nie odpowiedzieć na kilka sposobów. Możliwości są następujące:
Wysyłaj alerty do kanałów Slack, kanałów Discord lub w wiadomościach tekstowych, gdy wydatki osiągną określony próg.
analizować Twoje wydatki w porównaniu z danymi historycznymi i powiadamiać Cię, jeśli coś wydaje się nietypowe;
Wprowadź zmiany w aplikacji za pomocą Remote Config, jeśli poziomy rozliczeń są zbyt wysokie.
Całkowicie wyłącz projekt w Firebase, programowo usuwając usługę płatności z konta.