Na tej stronie opisujemy, jak ustawiać limity dzienne i monitorować postęp wykorzystania czasu EECU, aby kontrolować koszty obliczeniowe w Earth Engine.
Ograniczanie dziennego czasu korzystania z EECU
Aby kontrolować koszty Earth Engine, możesz ustawić limit czasu EECU, który Twój projekt może wykorzystać w ciągu dnia, aktualizując ten limit Cloud Quota:
Earth Engine compute time (EECU-time) per day in seconds
: limit na poziomie projektu, który ogranicza łączny czas EECU wszystkich użytkowników w projekcie.
Więcej informacji o limitach Earth Engine, które możesz ustawić, znajdziesz w artykule Limity Earth Engine.
Ustawianie limitu dziennego
Limity przydziału możesz wyświetlać i edytować na stronie Limity przydziału i limity systemu w konsoli Google Cloud. Gdy dostosujesz limit, zmiana zostanie wprowadzona w ciągu kilku minut. Aby ustawić lub zaktualizować limit dzienny, wykonaj te czynności:
- Sprawdź, czy w wybranym projekcie masz uprawnienia do zmiany limitu projektu.
- Otwórz stronę Limity w konsoli Google Cloud.
- Użyj filtra Metryka w polu wyszukiwania Filtr, aby filtrować
earthengine.googleapis.com/daily_eecu_usage_time
. Jeśli nie widzisz limituEarth Engine compute time (EECU-time) per day in seconds
, sprawdź, czy w wybranym projekcie masz włączony interfejs Earth Engine API. - W menu z 3 kropkami kliknij Edytuj limit.
- Jeśli pole wyboru Bez ograniczeń jest zaznaczone, odznacz je.
- W polu Nowa wartość wpisz limit w sekundach EECU, o który chcesz poprosić. Kliknij Prześlij prośbę.
Więcej informacji o wyświetlaniu limitów i zarządzaniu nimi znajdziesz w artykule Wyświetlanie limitów i zarządzanie nimi.
Zwrócone komunikaty o błędach
Po ustawieniu dziennego limitu Earth Engine zwraca ten komunikat o błędzie, gdy go przekroczysz:
Wykorzystanie przekroczyło limit niestandardowy dla usługi „earthengine.googleapis.com/daily_eecu_usage_time”, który może dostosować administrator w konsoli Google Cloud: https://console.cloud.google.com/quotas/?project=_.
Po przekroczeniu limitu żądania Earth Engine będą odrzucane do momentu zresetowania limitu następnego dnia lub zwiększenia go przez administratora.
Szczegółowe monitorowanie i alerty
Jeśli chcesz kontrolować i monitorować koszty z większą dokładnością niż w przypadku limitu dziennego, poniższe przepisy wymagają więcej konfiguracji, ale umożliwiają wysyłanie alertów i anulowanie na poziomie workload_tag
i zadań wsadowych.
Te przepisy korzystają z monitorowania czasu EECU w trakcie realizacji, które jest dostępne w przypadku trwających żądań. Więcej informacji o raportowaniu czasu EECU w trakcie przetwarzania w usłudze Cloud Monitoring znajdziesz w przewodniku Monitorowanie wykorzystania.
Skonfiguruj alerty
W Cloud Monitoring możesz skonfigurować alerty, które będą Cię ostrzegać, gdy wskaźnik osiągnie określony próg. System alertów Cloud Monitoring jest bardzo elastyczny. Zebraliśmy tu kilka naszych ulubionych przepisów, ale możesz też korzystać z własnych konfiguracji, które odpowiadają Twoim potrzebom.
Przepis: powiadomienie na czacie o użyciu workload_tag
Ten przykład pokazuje, jak skonfigurować powiadomienie na czacie (np. wiadomość w Google Chat lub Slacku), jeśli wykorzystanie mocy obliczeniowej Earth Engine dla danego workload_tag
przekroczy próg. Może to być przydatne, jeśli masz zestaw zadań eksportowania, które tworzą dane dla usługi produkcyjnej, i chcesz otrzymywać powiadomienia, gdy łącznie zużyją one więcej niż określoną ilość czasu EECU.
- Otwórz stronę Alerty w sekcji Cloud Monitoring w konsoli Google Cloud.
- Aby skonfigurować nową zasadę tworzenia alertów, kliknij „Utwórz zasadę”.
- Wybierz rodzaj danych:
- Sekundy EECU w trakcie przetwarzania to liczba sekund obliczeniowych w stanie oczekiwania (jeszcze nie zakończonych).
- Aby zobaczyć dane, może być konieczne odznaczenie filtra „Aktywne”.
- Dodaj filtr:
- Użyj
workload_tag == your_workload_tag_value
, aby filtrować według konkretnego tagu obciążenia. - Użyj
compute_type = batch
lubcompute_type = online
, aby filtrować według określonego typu obliczeń.
- Użyj
- Wybierz odpowiednią wartość „Okna ruchomego”. Jeśli nie masz pewności, użyj
5 min
. - W menu „Funkcja okna ruchomego” wybierz „Suma”.
- Wybierz wyzwalacz alertu i nadaj mu nazwę.
- Wybierz kanały powiadomień.
- W przypadku tego przepisu w oknie modalnym wybierz „Zarządzaj kanałami powiadomień”, a potem „Dodaj nowe”, aby wkleić identyfikator pokoju w Google Chat. Ten identyfikator znajdziesz w adresie URL strony Gmaila lub Google Chat, gdy wyświetlasz czat.
- Jeśli korzystasz z Google Chat, musisz też wpisać
@Google Cloud Monitoring
i wybrać aplikację, aby dodać aplikację Alerting do przestrzeni (jeśli Twoja organizacja na to zezwala).
- Wybierz odpowiednie zasady i etykiety wagi.
- Napisz krótki fragment dokumentacji.
- Opublikuj nową zasadę tworzenia alertów.
Po ustawieniu progu będziesz otrzymywać alerty w przestrzeni czatu za każdym razem, gdy zostanie on przekroczony w Twoim projekcie.
Przepis: otrzymywanie alertów e-mail o łącznym czasie trwania EECU
Postępuj zgodnie z instrukcjami dotyczącymi powiadomień na czacie, ale wprowadź 2 zmiany:
- Pomiń krok dodawania
workload_tag
filtra, aby wyświetlić wszystkie wartości. - Podczas wybierania kanału powiadomień zamiast konfigurować kanał czatu dodaj swój adres e-mail.
Opóźnienie i czas alertu
Pamiętaj, że raporty monitorowania są przesyłane z niewielkim opóźnieniem, więc nie spodziewaj się natychmiastowych powiadomień.
Anulowanie zadań wymagających dużej ilości zasobów
Po określeniu limitu możesz użyć interfejsu Earth Engine API, aby okresowo sprawdzać listę zadań oczekujących i żądać anulowania wszystkich zadań, które przekraczają limit sekund EECU.
Przepis: uruchamianie fragmentu kodu w notatniku lub lokalnej powłoce Pythona
eecu_seconds_limit = 50 * 60 * 60 # 50 hours
print("Watching for operations to cancel...")
while(True):
for op in ee.data.listOperations():
if op['metadata']['state'] == 'RUNNING':
if op['metadata'].get('batchEecuUsageSeconds', 0) > eecu_seconds_limit:
print(f"Cancelling operation {op['name']}")
ee.data.cancelOperation(op['name'])
time.sleep(10) # 10 seconds