Maliyet kontrolleri

Bu sayfada, Earth Engine'deki hesaplama maliyetlerini kontrol etmeye yardımcı olmak için günlük sınırların nasıl ayarlanacağı ve devam eden EECU süresinin nasıl izleneceği açıklanmaktadır.

Günlük EECU süresini sınırlama

Earth Engine maliyetlerinizi kontrol etmek için aşağıdaki Cloud kotasını güncelleyerek projenizin bir günde kullanmasına izin verilen EECU süresi miktarına sınır koyabilirsiniz:

  • Earth Engine compute time (EECU-time) per day in seconds: Bir projedeki tüm kullanıcıların toplam EECU süresini sınırlayan proje düzeyinde bir kota.

Ayarlayabileceğiniz Earth Engine kotaları hakkında daha fazla bilgi için Earth Engine kotaları başlıklı makaleyi inceleyin.

Günlük sınır belirleme

Kotaları Google Cloud Console'un Kotalar ve Sistem Sınırları sayfasında görüntüleyebilir ve düzenleyebilirsiniz. Bir kotayı ayarladığınızda değişiklik birkaç dakika içinde geçerlilik kazanır. Günlük sınır belirlemek veya güncellemek için aşağıdakileri yapın:

  1. Seçtiğiniz projede Proje kotasını değiştirme izinlerine sahip olduğunuzu doğrulayın.
  2. Google Cloud Console'un Kotalar sayfasına gidin.
  3. Filtre arama kutusundaki Metrik filtresini kullanarak earthengine.googleapis.com/daily_eecu_usage_time için filtreleme yapın. Earth Engine compute time (EECU-time) per day in seconds kotasını görmüyorsanız Earth Engine API'yi seçili proje için etkinleştirdiğinizi doğrulayın.
  4. Üç nokta menüsünden Kotayı düzenle'yi tıklayın.
  5. Sınırsız onay kutusu işaretliyse işareti kaldırın.
  6. Yeni değer alanına istediğiniz sınırı EECU-saniye cinsinden girin. İstek Gönder'i tıklayın.

Kotaları görüntüleme ve yönetme hakkında daha fazla bilgi için Kotaları görüntüleme ve yönetme başlıklı makaleyi inceleyin.

Döndürülen hata mesajları

Günlük sınır belirledikten sonra bu sınırı aştığınızda Earth Engine aşağıdaki hata mesajını döndürür:

Kullanımınız, Google Cloud Console'da yöneticiniz tarafından ayarlanabilen "earthengine.googleapis.com/daily_eecu_usage_time" için özel kotayı aştı: https://console.cloud.google.com/quotas/?project=_.

Kota aşıldığında, Earth Engine istekleri kota bir sonraki gün sıfırlanana veya sınır bir yönetici tarafından artırılana kadar başarısız olur.

Ayrıntılı izleme ve uyarılar

Maliyetleri günlük limitten daha ayrıntılı bir şekilde kontrol etmeniz ve izlemeniz gerekiyorsa aşağıdaki tarifler daha fazla kurulum gerektirir ancak workload_tag ve toplu görev düzeyinde uyarı ve iptal işlemlerine olanak tanır.

Bu tariflerde, devam eden EECU süresi izleme özelliği kullanılır. Bu özellik, çalışan istekler için gösterilir. Cloud Monitoring'de devam eden EECU süresi raporlama hakkında daha fazla bilgi için Kullanımı izleme kılavuzuna bakın.

Uyarıları yapılandırma

Bir metrik belirli bir eşiğe ulaştığında sizi uyarması için Cloud Monitoring'de uyarılar yapılandırabilirsiniz. Cloud Monitoring uyarı sistemi çok esnektir. En sevdiğimiz tariflerden bazılarını burada derledik. Ancak ihtiyaçlarınıza uygun özel yapılandırmalarla da yemek pişirebilirsiniz.

Tarif: workload_tag kullanımı için sohbet bildirimi

Bu örnekte, belirli bir workload_tag için Earth Engine işlem kullanımı bir eşiği aşarsa sohbet bildiriminin (ör. Google Chat mesajı veya Slack mesajı) nasıl bağlanacağı gösterilmektedir. Bu özellik, üretim hizmetiniz için veri oluşturan bir dizi dışa aktarma göreviniz varsa ve bu görevler toplu olarak belirli bir miktardan fazla EECU süresi tüketirse bildirim almak istiyorsanız yararlı olabilir.

  1. Cloud Console'un Cloud Monitoring bölümündeki Uyarılar sayfasına gidin.
  2. Yeni bir uyarı politikası yapılandırmak için "Politika oluştur"u seçin.
  3. Metriği seçin:
    • Devam eden EECU saniyeleri beklemede olan (henüz başarılı olmayan) işlem saniyelerinin sayısını gösterir.
    • Metriği görmek için "Etkin" filtresinin seçimini kaldırmanız gerekebilir.
  4. Filtre ekleme:
    • Belirli bir iş yükü etiketine göre filtrelemek için workload_tag == your_workload_tag_value simgesini kullanın.
    • Belirli bir hesaplama türüne göre filtrelemek için compute_type = batch veya compute_type = online simgesini kullanın.
  5. Uygun bir "Hareketli pencere" değeri seçin. Emin değilseniz 5 min kullanın.
  6. "Hareketli pencere işlevi" menüsünden "Toplam"ı seçin. Uyarı için metrik yapılandırma
  7. Uyarı tetikleyicisini seçin ve uyarıya bir ad verin.
  8. Bildirim kanallarını seçin.
    • Bu tarif için modal pencereden "Bildirim Kanallarını Yönet"i, ardından Google Chat'inizin alan kimliğini yapıştırmak için "Yeni Ekle"yi seçiyoruz. Bu kimlik, sohbeti görüntülerken Gmail veya Chat sayfasının URL'sinde bulunabilir.
    • Google Chat kullanıyorsanız @Google Cloud Monitoring yazıp uyarı uygulamasını alanınıza eklemek için uygulamayı seçmeniz de gerekir (kuruluşunuz izin veriyorsa).
  9. İlgili politika ve önem düzeyi etiketlerini seçin.
  10. Kısa bir doküman snippet'i yazın.
  11. Yeni uyarı politikanızı yayınlayın.

Ayarladıktan sonra, projenizin eşiği aşıldığında sohbet alanınızda uyarılar alırsınız.

Tarif: Toplam devam eden EECU süresi için e-posta uyarıları alma

Sohbet bildirimleriyle ilgili tarifi uygulayın ancak iki değişiklik yapın:

  1. Tüm değerleri görebilmek için workload_tag filtre ekleme adımını atlayın.
  2. Bildirim kanalı seçerken sohbet kanalı yapılandırmak yerine e-posta adresinizi ekleyin.

Uyarı gecikmesi ve zamanlaması

İzleme raporlarının yayılmasında küçük bir gecikme olduğunu ve anlık bildirimler almayacağınızı unutmayın.

Kaynak yoğun görevleri iptal etme

Bir sınır verildiğinde, bekleyen görevlerin listesini düzenli olarak kontrol etmek ve EECU saniye sınırını aşan çalışan görevlerin iptal edilmesini istemek için Earth Engine API'yi kullanabilirsiniz.

Tarif: Not defterinde veya yerel Python kabuğunda bir kod snippet'i çalıştırma

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