Kostenkontrollen

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 EECU-Zeit begrenzen

Um Ihre Earth Engine-Kosten besser zu kontrollieren, können Sie ein Limit für die 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 aggregierte 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 auf der Seite Kontingente und System limits in der Google Cloud Console ansehen und bearbeiten. Wenn Sie ein Kontingent anpassen, wird die Änderung innerhalb weniger Minuten wirksam. So legen Sie ein Tageslimit fest oder aktualisieren es:

  1. Prüfen Sie, ob Sie die Berechtigungen zum Ändern des Projektkontingents für das ausgewählte Projekt haben.
  2. Rufen Sie in der Google Cloud Console die Seite Kontingente auf.
  3. Verwenden Sie im Suchfeld Filter den Filter Messwert , um nach earthengine.googleapis.com/daily_eecu_usage_time zu filtern. Wenn das Kontingent Earth Engine compute time (EECU-time) per day in seconds nicht angezeigt wird, prüfen Sie , ob Sie die Earth Engine API für das ausgewählte Projekt aktiviert haben.
  4. Klicken Sie im Dreipunkt-Menü auf Kontingent bearbeiten.
  5. Wenn das Kästchen Unbegrenzt ausgewählt ist, heben Sie die Auswahl auf.
  6. Geben Sie im Feld Neuer Wert das gewünschte Limit in EECU-Sekunden ein. Klicken Sie auf Antrag einreichen.

Weitere Informationen zum Ansehen und Verwalten von Kontingenten finden Sie unter Kontingente ansehen und verwalten.

Zurückgegebene Fehlermeldungen

Nachdem Sie ein Tageslimit festgelegt haben, gibt Earth Engine die folgende Fehlermeldung zurück, wenn Sie es überschreiten:

Your usage exceeded the custom quota for 'earthengine.googleapis.com/daily_eecu_usage_time', which is adjustable by your administrator in the Google Cloud console: https://console.cloud.google.com/quotas/?project=_.

Sobald das Kontingent überschritten wurde, schlagen Earth Engine-Anfragen fehl, bis das Kontingent am nächsten Tag zurückgesetzt oder das Limit von einem Administrator erhöht wird.

Feingranulares Monitoring und Benachrichtigungen

Wenn Sie die Kosten genauer als mit dem Tages limit kontrollieren und überwachen möchten, ist für die folgenden Rezepte mehr Einrichtung erforderlich. Sie ermöglichen jedoch Benachrichtigungen und das Abbrechen auf workload_tag und Batch Aufgabenebene.

Diese Rezepte verwenden das Monitoring der laufenden EECU-Zeit, das für ausgeführte Anfragen angezeigt wird. Weitere Informationen zur Berichterstellung der laufenden EECU-Zeit in Cloud Monitoring finden Sie im Leitfaden zur Nutzung des Monitorings.

Benachrichtigungen konfigurieren

Sie können in Cloud Monitoring Benachrichtigungen konfigurieren, um gewarnt zu werden, wenn ein Messwert einen bestimmten Grenzwert erreicht. Das Benachrichtigungssystem von Cloud Monitoring ist sehr flexibel. Wir haben hier einige unserer Lieblingsrezepte zusammengestellt. Sie können aber auch benutzerdefinierte Konfigurationen verwenden, die Ihren Anforderungen entsprechen.

Rezept: Chatbenachrichtigung für die workload_tag-Nutzung

In diesem Beispiel wird gezeigt, wie Sie eine Chatbenachrichtigung (z.B. eine Google Chat Nachricht oder eine Slack-Nachricht) einrichten, wenn die Earth Engine-Rechennutzung für ein gegebenes workload_tag einen Grenzwert überschreitet. Das kann nützlich sein, wenn Sie eine Reihe von Exportaufgaben haben, die Daten für Ihren Produktionsdienst erstellen, und Sie benachrichtigt werden möchten, wenn sie zusammen mehr als eine bestimmte Menge an EECU-Zeit verbrauchen.

  1. Rufen Sie in der Cloud Console im Bereich „Cloud Monitoring“ die Seite „Benachrichtigungen“ auf.
  2. Wählen Sie „Richtlinie erstellen“ aus, um eine neue Benachrichtigungsrichtlinie zu konfigurieren.
  3. Wählen Sie den Messwert aus:
    • Laufende EECU-Sekunden gibt die Anzahl der ausstehenden (noch nicht abgeschlossenen) Rechensekunden an.
    • Möglicherweise müssen Sie die Auswahl des Filters „Aktiv“ aufheben, um den Messwert zu sehen.
  4. Fügen Sie einen Filter hinzu:
    • Verwenden Sie workload_tag == your_workload_tag_value, um nach einem bestimmten Workload-Tag zu filtern.
    • Verwenden Sie compute_type = batch oder compute_type = online, um nach einem bestimmten Berechnungstyp zu filtern.
  5. Wählen Sie einen geeigneten Wert für „Gleitendes Fenster“ aus. Wenn Sie sich nicht sicher sind, verwenden Sie 5 min.
  6. Wählen Sie im Menü „Funktion für gleitendes Fenster“ die Option „Summe“ aus. Konfiguration eines Messwerts für eine Benachrichtigung
  7. Wählen Sie den Auslöser für die Benachrichtigung aus und geben Sie ihm einen Namen.
  8. Wählen Sie die Benachrichtigungskanäle aus.
    • Für dieses Rezept wählen wir im modalen Fenster „Benachrichtigungskanäle verwalten“ und dann „Neu hinzufügen“ aus, um die Gruppenbereichs-ID Ihres Google Chat-Bereichs einzufügen. Diese ID finden Sie in der URL der Gmail- oder Chat-Seite, wenn Sie den Chat aufrufen.
    • Wenn Sie Google Chat verwenden, müssen Sie außerdem @Google Cloud Monitoring eingeben und die App auswählen, um die Benachrichtigungs-App Ihrem Gruppenbereich hinzuzufügen (sofern Ihre Organisation dies zulässt).
  9. Wählen Sie die entsprechenden Richtlinien- und Schweregradlabels aus.
  10. Verfassen Sie einen kurzen Dokumentationsabschnitt.
  11. Veröffentlichen Sie Ihre neue Benachrichtigungsrichtlinie.

Nach der Einrichtung erhalten Sie in Ihrem Chatbereich Benachrichtigungen, wenn der Grenzwert für Ihr Projekt überschritten wird.

Rezept: E‑Mail-Benachrichtigungen für die gesamte laufende EECU-Zeit erhalten

Folgen Sie dem Rezept für Chatbenachrichtigungen, nehmen Sie aber zwei Änderungen vor:

  1. Überspringen Sie den Schritt zum Hinzufügen eines workload_tag-Filters, damit Sie alle Werte sehen können.
  2. Wenn Sie einen Benachrichtigungskanal auswählen, fügen Sie anstelle der Konfiguration 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 keine sofortigen Benachrichtigungen erwarten.

Ressourcenintensive Aufgaben abbrechen

Bei einem Limit ist es möglich, die Earth Engine API zu verwenden, um regelmäßig die Liste der ausstehenden Aufgaben zu prüfen und das Abbrechen aller laufenden Aufgaben anzufordern, die das Limit für EECU-Sekunden ü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