Na tej stronie opisujemy, jak ustawiać limity dzienne i monitorować czas EECU w trakcie korzystania z Earth Engine, aby kontrolować koszty obliczeniowe.
Limit dziennego czasu EECU
Aby kontrolować koszty Earth Engine, możesz ustawić limit czasu EECU, który Twój projekt może wykorzystać w ciągu dnia. W tym celu zaktualizuj ten limit Cloud:
Earth Engine compute time (EECU-time) per day in seconds(Czas obliczeniowy Earth Engine (czas EECU) na dzień w sekundach): 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 Earth Engine quotas.
Ustawianie limitu dziennego
Limity możesz wyświetlać i edytować w konsoli Google Cloud na stronie Limity przydziału i limity systemu. Gdy dostosujesz limit, zmiana zacznie obowiązywać w ciągu kilku minut. Aby ustawić lub zaktualizować limit dzienny:
- Sprawdź, czy masz uprawnienia do zmiany limitu projektu w wybranym projekcie.
- Otwórz stronę Limity w konsoli Google Cloud.
- Użyj filtra Dane w polu wyszukiwania Filtr , aby odfiltrować
earthengine.googleapis.com/daily_eecu_usage_time. Jeśli nie widzisz limituEarth Engine compute time (EECU-time) per day in seconds(Czas obliczeniowy Earth Engine (czas EECU) na dzień w sekundach), sprawdź, czy masz włączony interfejs Earth Engine API w wybranym projekcie. - W menu z 3 kropkami kliknij Edytuj limit.
- Jeśli jest zaznaczone pole wyboru Bez ograniczeń, odznacz je.
- W polu Nowa wartość wpisz limit w sekundach EECU. Kliknij Prześlij wniosek.
Więcej informacji o wyświetlaniu limitów i zarządzaniu nimi znajdziesz w artykule Wyświetlanie limitów i zarządzanie nimi.
Zwracane komunikaty o błędach
Gdy ustawisz limit dzienny i go przekroczysz, Earth Engine zwróci ten komunikat o błędzie:
Twoje wykorzystanie przekroczyło limit niestandardowy dla „earthengine.googleapis.com/daily_eecu_usage_time”, który administrator może dostosować w konsoli Google Cloud: https://console.cloud.google.com/quotas/?project=_.
Po przekroczeniu limitu żądania Earth Engine będą kończyć się niepowodzeniem, dopóki limit nie zostanie zresetowany następnego dnia lub nie zostanie zwiększony 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, te instrukcje wymagają więcej konfiguracji, ale umożliwiają
wysyłanie alertów i anulowanie na poziomie
workload_tag i zadania
zbiorczego.
Te instrukcje korzystają z monitorowania czasu EECU w trakcie korzystania z usługi, które jest dostępne w przypadku uruchomionych żądań. Więcej informacji o raportowaniu czasu EECU w trakcie korzystania z usługi w Cloud Monitoring znajdziesz w przewodniku Monitorowanie wykorzystania.
Konfigurowanie alertów
W Cloud Monitoring możesz skonfigurować alerty, które będą Cię ostrzegać, gdy wartość wskaźnika osiągnie określony próg. System alertów Cloud Monitoring jest bardzo elastyczny. Zebraliśmy tu kilka naszych ulubionych instrukcji, ale możesz też korzystać z konfiguracji niestandardowych, które odpowiadają Twoim potrzebom.
Instrukcja: powiadomienie na czacie o wykorzystaniu 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 w przypadku danego
workload_tag przekroczy
próg. Może to być przydatne, jeśli masz zestaw zadań eksportu, które tworzą dane dla Twojej usługi produkcyjnej, i chcesz otrzymywać powiadomienia, gdy łącznie zużyją one więcej niż określoną ilość czasu EECU.
- Otwórz stronę Alerty page w sekcji Cloud Monitoring w konsoli Cloud.
- Aby skonfigurować nową zasadę tworzenia alertów, kliknij „Utwórz zasadę”.
- Wybierz wskaźnik:
- In-progress EECU-seconds (Sekundy EECU w trakcie korzystania z usługi) to liczba sekund obliczeniowych w trakcie korzystania z usługi (jeszcze nieudanych).
- Aby zobaczyć wskaźnik, może być konieczne odznaczenie filtra „Aktywne”.
- Dodaj filtr:
- Aby odfiltrować konkretny tag obciążenia, użyj
workload_tag == your_workload_tag_value. - Aby odfiltrować konkretny typ obliczeń, użyj
compute_type = batchlubcompute_type = online.
- Aby odfiltrować konkretny tag obciążenia, użyj
- Wybierz odpowiednią wartość „Okres kroczący”. Jeśli nie masz pewności, użyj
5 min. - W menu „Funkcja okresu kroczącego” wybierz „Suma”.

- Wybierz wyzwalacz alertu i nadaj mu nazwę.
- Wybierz kanały powiadomień.
- W przypadku tej instrukcji w oknie modalnym kliknij „Zarządzaj kanałami powiadomień”, a następnie „Dodaj nowy”, aby wkleić identyfikator pokoju w Google Chat. Ten identyfikator znajdziesz w adresie URL strony Gmaila lub czatu podczas wyświetlania czatu.
- Jeśli używasz Google Chat, musisz też wpisać
@Google Cloud Monitoringi wybrać aplikację, aby dodać aplikację Alerty do pokoju (jeśli Twoja organizacja na to zezwala).
- Wybierz odpowiednie etykiety zasad i ważności.
- Napisz krótki fragment dokumentacji.
- Opublikuj nową zasadę tworzenia alertów.
Po skonfigurowaniu będziesz otrzymywać alerty w pokoju czatu, gdy tylko próg zostanie przekroczony w Twoim projekcie.
Instrukcja: otrzymywanie alertów e-mail o łącznym czasie EECU w trakcie korzystania z usługi
Postępuj zgodnie z instrukcjami dotyczącymi powiadomień czatu, ale wprowadź 2 zmiany:
- Pomiń krok dodawania filtra
workload_tag, aby móc zobaczyć 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 Monitoring są przesyłane z niewielkim opóźnieniem, więc nie należy oczekiwać natychmiastowych powiadomień.
Anulowanie zadań wymagających dużej ilości zasobów
Mając limit, możesz użyć interfejsu Earth Engine API, aby okresowo sprawdzać listę zadań oczekujących i prosić o anulowanie każdego uruchomionego zadania, które przekracza limit sekund EECU.
Instrukcja: 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