Podstawowe e-maile z alertami dotyczącymi budżetu to stosunkowo łatwy sposób na otrzymywanie informacji o rozliczeniach, ale czasami możesz chcieć utworzyć bardziej zaawansowane alerty, które będą zawierać bardziej spersonalizowaną logikę. Oto 2 podejścia, które warto rozważyć:
Użyj Cloud Monitoring, aby tworzyć bardziej zaawansowane i aktualne alerty.
Użyj powiadomienia rozliczeniowego Pub/Sub wraz z odpowiednią funkcją Cloud, aby utworzyć niestandardowe działanie w odpowiedzi na zmiany wydatków.
Obie te metody wymagają więcej pracy, 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żesz jednak chcieć wiedzieć, czy poszczególne usługi nieoczekiwanie się rozwijają – zanim zdążą znacząco wpłynąć na Twój budżet. W przypadku bardziej zaawansowanych zastosowań, takich jak ten, zalecamy zapoznanie się z Cloud Monitoring, czyli Google Cloud narzędziem dostępnym w Twoim projekcie w Firebase.
Cloud Monitoring jest przydatny w przypadku kilku różnych typów alertów:
Jeśli zasób, na którym opiera się Twój projekt, jest niedostępny (zarówno w przypadku usług Firebase i Google Cloud usług, jak i usług zewnętrznych, np. AWS).
Jeśli usługi takie jak Cloud Functions odpowiadają dłużej niż oczekiwano .
Jeśli zasobnik Cloud Storage, instancja Realtime Database lub instancja Cloud Firestore odrzuca zbyt wiele żądań (co wskazuje, że reguły Firebase Security Rules mogą być nieprawidłowe).
Jeśli ilość zasobów używanych 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 dotyczącymi budżetu, które są zazwyczaj wysyłane raz dziennie. Alerty mogą mieć postać wiadomości SMS, wiadomości na kanale Slack, powiadomień PagerDuty, webhooków i innych. Te opcje umożliwiają wysyłanie alertów z większą i bardziej przydatną widocznością.
Korzystanie z Cloud Monitoring
Aby rozpocząć korzystanie z Cloud Monitoring, zalecamy rozpoczęcie od Metrics Explorer, który umożliwia tworzenie wykresów niestandardowych danych w projekcie Firebase/Google Cloud i wizualizowanie ich wykorzystania.
Możesz w szczególności sprawdzić zasoby takie jak Cloud Firestore, Realtime Database, lub instancje Cloud Functions. Możesz wyświetlić informacje o wykorzystaniu tych usług (np. liczbę odczytów dokumentów, wysłanych bajtów lub wywołań funkcji), które będą miały wpływ na Twoje rozliczenia.
Gdy już będziesz mieć pewność, że możesz wizualizować wykorzystanie zasobów w Metrics Explorer, zalecamy utworzenie zasady tworzenia alertów dotyczącej danych, które są dla Ciebie najważniejsze. Oto kilka przykładów zasad alertów:
Jeśli liczba odczytów dokumentów w 30-minutowym okresie jest większa niż określona wartość.
Jeśli wykorzystanie określonego zasobu (np. wywołania funkcji) wydaje się zbyt szybko rosnąć w określonym przedziale czasu.
Tworzenie dodatkowej logiki rozliczeniowej
Alerty dotyczące budżetu automatycznie wysyłają e-maile, gdy budżet osiągnie określone progi. Jeśli jednak chcesz korzystać z bardziej zaawansowanych alertów lub programowych reakcji na wzrost wydatków, możesz skonfigurować dodatkową logikę niestandardową opartą na Google Cloud Pub/Sub wiadomościach.
Możesz na przykład wysyłać alerty na kanały Slack lub w wiadomościach tekstowych 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 postaci danych JSON – w sposób asynchroniczny za pomocą kanałów znanych jako tematy Pub/Sub. 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 rozliczeń się zmieniło, i są bezstanowe (co oznacza, że nie zawierają kontekstu dotyczącego tego, co je poprzedzało). Jeśli chcesz śledzić nietypowe wzrosty wydatków w czasie lub porównywać wydatki z poprzednim cyklem, musisz samodzielnie zarządzać tymi historycznymi danymi za pomocą bazy danych, takiej jak Cloud Firestore lub Realtime Database.
Korzystanie z tematów Pub/Sub z Cloud Functions
Aby skonfigurować temat Pub/Sub dla danych rozliczeniowych, otwórz budżet powiązany z projektem w Firebase w konsoli Google Cloud (w sekcji Rozliczenia > Budżety i alerty), a następnie kliknij pole wyboru Połącz temat Pub/Sub z tym budżetem. Spowoduje to utworzenie Pub/Sub tematu, którego możesz później nasłuchiwać. Szczegółowe instrukcje znajdziesz w pełnej dokumentacji.
Po utworzeniu tematu rozliczeniowego Pub/Sub możesz napisać funkcję Cloud, która będzie nasłuchiwać temat rozliczeniowy i odpowiednio reagować na dane. Dane są wysyłane w formacie JSON i zawierają przydatne informacje, takie jak dotychczasowe wydatki, kwota budżetu i data rozpoczęcia bieżącego cyklu rozliczeniowego.
Więcej informacji o tym, jak odbierać te dane za pomocą funkcji Cloud, znajdziesz w dokumentacji Google Cloud. 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 opis procesu znajdziesz też w tym filmie.
Po otrzymaniu tych danych możesz na nie reagować na wiele różnych sposobów. Możliwości są następujące:
Wysyłaj alerty na kanały Slack, kanały Discord lub w wiadomościach tekstowych, gdy wydatki osiągną określony próg.
Analizuj wydatki w porównaniu z danymi historycznymi i ostrzegaj, jeśli coś wydaje się nietypowe.
Wprowadzaj zmiany w aplikacji za pomocą Remote Config jeśli poziom rozliczeń jest zbyt wysoki.
Całkowicie wyłącz projekt w Firebase, programowo usuwając usługę rozliczeniową z konta.