Proste 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 w wydatkach.
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 działają dłużej niż oczekiwano, aby odpowiedzieć
Jeśli zasobnik Cloud Storage, instancja Realtime Database lub instancja Cloud Firestore odrzuca zbyt wiele żądań (co wskazuje, że 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ż proste 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 wskaźników w projekcie Firebase/Google Cloud oraz 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 wskaźników, które są dla Ciebie najważniejsze. Oto kilka przykładów reguł 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 są wysyłane automatycznie, gdy budżet osiągnie określone progi, ale w przypadku 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 – asynchronicznie 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 poprzedził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ć ten temat 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.
Pełne informacje o tym, jak odbierać te dane za pomocą funkcji Cloud, znajdziesz w dokumentacji Google Cloud. Jeśli jednak używasz Cloud Functions for Firebase do wdrażania funkcji, 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łanie alertów na kanały Slack, kanały Discord lub wiadomości tekstowych, gdy wydatki osiągną określony próg.
Analizowanie wydatków w porównaniu z danymi historycznymi i ostrzeganie, jeśli coś wydaje się nietypowe.
Wprowadzanie zmian w aplikacji za pomocą Remote Config jeśli poziom rozliczeń jest zbyt wysoki.
Całkowite wyłączenie projektu w Firebase przez programowe usunięcie usługi rozliczeniowej z konta.