Auf dieser Seite wird beschrieben, wie Sie Tageslimits festlegen und die laufende EECU-Zeit überwachen, um die Rechenkosten in Earth Engine zu kontrollieren.
Tägliche Zeitbegrenzung für die Gerätenutzung festlegen
Um Ihre Earth Engine-Kosten besser im Blick zu behalten, können Sie ein Limit für die Menge an EECU-Zeit festlegen, die Ihr Projekt an einem Tag verbrauchen darf. Dazu müssen Sie das folgende Cloud-Kontingent aktualisieren:
Earth Engine compute time (EECU-time) per day in seconds
: Ein Kontingent auf Projektebene, das die gesamte EECU-Zeit aller Nutzer in einem Projekt begrenzt.
Weitere Informationen zu den Earth Engine-Kontingenten, die Sie festlegen können, finden Sie unter Earth Engine-Kontingente.
Tageslimit festlegen
Sie können Kontingente in der Google Cloud Console auf der Seite Kontingente und Systemlimits ansehen und bearbeiten. Wenn Sie ein Kontingent anpassen, wird die Änderung innerhalb weniger Minuten wirksam. So legen Sie ein Tageslimit fest oder aktualisieren es:
- Prüfen Sie, ob Sie die Berechtigungen zum Ändern des Projektkontingents für das ausgewählte Projekt haben.
- Rufen Sie in der Google Cloud Console die Seite Kontingente auf.
- Verwenden Sie im Suchfeld Filter den Filter Messwert, um nach
earthengine.googleapis.com/daily_eecu_usage_time
zu filtern. Wenn dasEarth Engine compute time (EECU-time) per day in seconds
-Kontingent nicht angezeigt wird, prüfen Sie, ob Sie die Earth Engine API für das ausgewählte Projekt aktiviert haben. - Klicken Sie im Dreipunkt-Menü auf Kontingent bearbeiten.
- Wenn das Kästchen Unbegrenzt ausgewählt ist, entfernen Sie das Häkchen.
- Geben Sie das gewünschte Limit in EECU-Sekunden in das Feld Neuer Wert ein. Klicken Sie auf Antrag einreichen.
Weitere Informationen zum Aufrufen und Verwalten von Kontingenten finden Sie unter Kontingente aufrufen und verwalten.
Zurückgegebene Fehlermeldungen
Wenn Sie ein Tageslimit festgelegt haben und es überschreiten, gibt Earth Engine die folgende Fehlermeldung zurück:
Ihre Nutzung hat das benutzerdefinierte Kontingent für „earthengine.googleapis.com/daily_eecu_usage_time“ überschritten. Dieses Kontingent kann von Ihrem Administrator in der Google Cloud Console angepasst werden: https://console.cloud.google.com/quotas/?project=_.
Sobald das Kontingent überschritten ist, schlagen Earth Engine-Anfragen fehl, bis das Kontingent am nächsten Tag zurückgesetzt oder das Limit von einem Administrator erhöht wird.
Detailliertes Monitoring und Benachrichtigungen
Wenn Sie die Kosten detaillierter als mit dem Tageslimit kontrollieren und überwachen möchten, ist für die folgenden Anleitungen mehr Einrichtung erforderlich. Sie ermöglichen jedoch Benachrichtigungen und das Abbrechen auf workload_tag
- und Batch-Aufgabenebene.
In diesen Rezepten wird die laufende EECU-Zeitüberwachung verwendet, die für laufende Anfragen angezeigt wird. Weitere Informationen zur Berichterstellung für laufende EECU-Zeit in Cloud Monitoring finden Sie in der Anleitung Monitoring-Nutzung.
Benachrichtigungen konfigurieren
Sie können in Cloud Monitoring Benachrichtigungen konfigurieren, um gewarnt zu werden, wenn ein Messwert einen bestimmten Grenzwert erreicht. Das Cloud Monitoring-Benachrichtigungssystem ist sehr flexibel. Wir haben hier einige unserer Lieblingsrezepte zusammengestellt. Sie können aber auch mit benutzerdefinierten Konfigurationen kochen, die Ihren Anforderungen entsprechen.
Rezept: Chatbenachrichtigung für die Nutzung von workload_tag
In diesem Beispiel wird gezeigt, wie Sie eine Chatbenachrichtigung (z.B. eine Google Chat- oder Slack-Nachricht) einrichten, wenn die Earth Engine-Rechennutzung für ein bestimmtes workload_tag
einen Schwellenwert überschreitet. Das kann nützlich sein, wenn Sie eine Reihe von Exportaufgaben haben, mit denen Daten für Ihren Produktionsdienst erstellt werden, und Sie benachrichtigt werden möchten, wenn sie zusammen mehr als eine bestimmte Menge an EECU-Zeit verbrauchen.
- Rufen Sie in der Cloud Console im Bereich „Cloud Monitoring“ die Seite Benachrichtigungen auf.
- Wählen Sie „Richtlinie erstellen“ aus, um eine neue Benachrichtigungsrichtlinie zu konfigurieren.
- Wählen Sie den Messwert aus:
- Laufende EECU-Sekunden gibt die Anzahl der ausstehenden (noch nicht erfolgreichen) Compute-Sekunden an.
- Möglicherweise müssen Sie den Filter „Aktiv“ deaktivieren, um den Messwert zu sehen.
- Filter hinzufügen:
- Verwenden Sie
workload_tag == your_workload_tag_value
, um nach einem bestimmten Arbeitslast-Tag zu filtern. - Mit
compute_type = batch
odercompute_type = online
können Sie nach einem bestimmten Berechnungstyp filtern.
- Verwenden Sie
- Wählen Sie einen geeigneten Wert für „Gleitendes Fenster“ aus. Wenn Sie sich nicht sicher sind, verwenden Sie
5 min
. - Wählen Sie im Menü „Funktion der rollierenden Fenster“ die Option „Summe“ aus.
- Wählen Sie den Auslöser für die Benachrichtigung aus und geben Sie einen Namen an.
- Wählen Sie die Benachrichtigungskanäle aus.
- Für dieses Rezept wählen wir im Modalfenster „Benachrichtigungskanäle verwalten“ und dann „Neu hinzufügen“ aus, um die Gruppenbereich-ID Ihres Google Chat-Gruppenbereichs einzufügen. Diese ID finden Sie in der URL der Gmail- oder Chat-Seite, wenn Sie sich den Chat ansehen.
- Wenn Sie Google Chat verwenden, müssen Sie außerdem
@Google Cloud Monitoring
eingeben und die App auswählen, um die Benachrichtigungs-App Ihrem Arbeitsbereich hinzuzufügen (sofern Ihre Organisation dies zulässt).
- Wählen Sie die entsprechenden Richtlinien- und Schweregrad-Labels aus.
- Schreiben Sie einen kurzen Dokumentationsausschnitt.
- Veröffentlichen Sie Ihre neue Benachrichtigungsrichtlinie.
Sobald Sie den Schwellenwert festgelegt haben, erhalten Sie in Ihrem Arbeitsbereich Benachrichtigungen, wenn er für Ihr Projekt überschritten wird.
Rezept: E‑Mail-Benachrichtigungen für die gesamte EECU-Zeit erhalten
Folgen Sie der Anleitung für Chatbenachrichtigungen, nehmen Sie aber zwei Änderungen vor:
- Überspringen Sie den Schritt zum Hinzufügen eines
workload_tag
-Filters, damit alle Werte angezeigt werden. - Wenn Sie einen Benachrichtigungskanal auswählen, fügen Sie anstelle eines Chatkanals Ihre E‑Mail-Adresse hinzu.
Latenz und Timing von Benachrichtigungen
Beachten Sie, dass es bei der Weitergabe von Monitoring-Berichten zu einer leichten Verzögerung kommt. Sie sollten also nicht mit sofortigen Benachrichtigungen rechnen.
Ressourcenintensive Aufgaben abbrechen
Bei einem Limit ist es möglich, mit der Earth Engine API die Liste der ausstehenden Aufgaben regelmäßig zu prüfen und die Abbrechen-Anfrage für alle laufenden Aufgaben zu stellen, die das EECU-Sekunden-Limit überschreiten.
Rezept: Code-Snippet in einem Notebook oder einer lokalen Python-Shell ausführen
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