Controlli dei costi

Questa pagina descrive come impostare limiti giornalieri e monitorare il tempo EECU in corso per controllare i costi di calcolo in Earth Engine.

Limitare il tempo di utilizzo giornaliero di EECU

Per controllare i costi di Earth Engine, puoi impostare un limite alla quantità di tempo EECU che il tuo progetto può consumare in un giorno aggiornando la seguente quota Cloud:

  • Earth Engine compute time (EECU-time) per day in seconds: una quota a livello di progetto che limita il tempo EECU aggregato di tutti gli utenti di un progetto.

Per ulteriori informazioni sulle quote di Earth Engine che puoi impostare, consulta Quote di Earth Engine.

Impostare un limite giornaliero

Puoi visualizzare e modificare le quote nella pagina Quote e limiti di sistema della console Google Cloud. Quando modifichi una quota, la modifica diventa effettiva dopo pochi minuti. Per impostare o aggiornare un limite giornaliero:

  1. Verifica di disporre delle autorizzazioni per modificare la quota del progetto nel progetto selezionato.
  2. Vai alla pagina Quote della console Google Cloud.
  3. Utilizza il filtro Metrica nella casella di ricerca Filtra per filtrare in base a earthengine.googleapis.com/daily_eecu_usage_time. Se non vedi la quota Earth Engine compute time (EECU-time) per day in seconds, verifica di aver abilitato l'API Earth Engine per il progetto selezionato.
  4. Fai clic su Modifica quota dal menu con tre puntini.
  5. Se la casella di controllo Nessun limite è selezionata, deselezionala.
  6. Inserisci il limite in secondi EECU che preferisci nel campo Nuovo valore. Fai clic su Invia richiesta.

Per ulteriori informazioni su come visualizzare e gestire le quote, consulta Visualizzare e gestire le quote.

Messaggi di errore restituiti

Dopo aver impostato un limite giornaliero, Earth Engine restituisce il seguente messaggio di errore quando lo superi:

Il tuo utilizzo ha superato la quota personalizzata per "earthengine.googleapis.com/daily_eecu_usage_time", che può essere modificata dal tuo amministratore nella console Google Cloud: https://console.cloud.google.com/quotas/?project=_.

Una volta superata la quota, le richieste di Earth Engine non andranno a buon fine fino al ripristino della quota il giorno successivo o all'aumento del limite da parte di un amministratore.

Monitoraggio e avvisi granulari

Se hai bisogno di controllare e monitorare i costi con una granularità più fine rispetto al limite giornaliero, le seguenti ricette richiedono una configurazione più complessa, ma consentono di inviare avvisi e annullare workload_tag e batch a livello di attività.

Queste ricette utilizzano il monitoraggio del tempo EECU in corso visualizzato per le richieste in esecuzione. Per ulteriori informazioni sulla reportistica in corso relativa al tempo EECU in Cloud Monitoring, consulta la guida Utilizzo di Monitoring.

Configura avvisi

Puoi configurare gli avvisi in Cloud Monitoring per ricevere un avviso quando una metrica raggiunge una determinata soglia. Il sistema di avvisi di Cloud Monitoring è molto flessibile. Abbiamo raccolto alcune delle nostre ricette preferite, ma puoi anche cucinare con configurazioni personalizzate adatte alle tue esigenze.

Ricetta: notifica chat per l'utilizzo di workload_tag

Questo esempio mostra come configurare una notifica di chat (ad es. un messaggio di Google Chat o Slack) se l'utilizzo di Compute Engine per un determinato workload_tag supera una soglia. Ciò potrebbe essere utile nel caso in cui tu abbia un insieme di attività di esportazione che creano dati per il tuo servizio di produzione e vuoi ricevere una notifica se consumano collettivamente più di una determinata quantità di tempo EECU.

  1. Visita la pagina Avvisi nella sezione Cloud Monitoring di Cloud Console.
  2. Scegli "Crea criterio" per configurare un nuovo criterio di avviso.
  3. Seleziona la metrica:
    • Secondi EECU in corso rappresenta il numero di secondi di calcolo in attesa (non ancora riusciti).
    • Per visualizzare la metrica, potrebbe essere necessario deselezionare il filtro "Attivo".
  4. Aggiungi un filtro:
    • Utilizza workload_tag == your_workload_tag_value per filtrare in base a un tag del carico di lavoro specifico.
    • Utilizza compute_type = batch o compute_type = online per filtrare in base a un tipo specifico di calcolo.
  5. Scegli un valore "Finestra mobile" appropriato. Se non lo sai, utilizza 5 min.
  6. Seleziona "Somma" dal menu "Funzione finestra mobile". Configurazione di una metrica per un avviso
  7. Scegli l'attivatore dell'avviso e assegnagli un nome.
  8. Seleziona i canali di notifica.
    • Per questa ricetta, scegliamo "Gestisci canali di notifica " dalla finestra modale, quindi"Aggiungi nuovo " per incollare l'ID spazio di Google Chat. Questo ID è disponibile nell'URL della pagina Gmail o Chat quando visualizzi la chat.
    • Se utilizzi Google Chat, devi anche digitare @Google Cloud Monitoring e selezionare l'app per aggiungere l'app Avvisi al tuo spazio (se la tua organizzazione lo consente).
  9. Scegli le etichette relative alle norme e alla gravità pertinenti.
  10. Scrivi un breve snippet di documentazione.
  11. Pubblica il nuovo criterio di avviso.

Una volta impostata, riceverai avvisi nel tuo spazio di chat ogni volta che la soglia viene superata per il tuo progetto.

Ricetta: ricevi avvisi via email per il tempo totale di esecuzione in corso

Segui la procedura per le notifiche della chat, ma apporta due modifiche:

  1. Salta il passaggio per aggiungere un filtro workload_tag, in modo da poter visualizzare tutti i valori.
  2. Quando selezioni un canale di notifica, anziché configurare un canale di chat, aggiungi il tuo indirizzo email.

Latenza e tempistica degli avvisi

Tieni presente che la propagazione dei report di monitoraggio avviene con un leggero ritardo, quindi non devi aspettarti notifiche istantanee.

Annullare le attività che richiedono molte risorse

Dato un limite, è possibile utilizzare l'API Earth Engine per controllare periodicamente l'elenco delle attività in attesa e richiedere l'annullamento di qualsiasi attività in esecuzione che superi il limite di secondi EECU.

Ricetta: esegui uno snippet di codice in un notebook o nella shell Python locale

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