การควบคุมค่าใช้จ่าย

หน้านี้อธิบายวิธีตั้งค่าขีดจำกัดการใช้งานต่อวันและตรวจสอบเวลา EECU ที่กำลังดำเนินการเพื่อช่วยควบคุมค่าใช้จ่ายในการคำนวณใน Earth Engine

จำกัดเวลา EECU ต่อวัน

หากต้องการช่วยควบคุมค่าใช้จ่ายของ Earth Engine คุณสามารถกำหนดขีดจำกัดจำนวน เวลา EECU ที่โปรเจ็กต์ของคุณได้รับอนุญาตให้ใช้ใน 1 วันได้โดยการอัปเดต โควต้า Cloud ต่อไปนี้

  • Earth Engine compute time (EECU-time) per day in seconds: โควต้าระดับโปรเจ็กต์ ที่จำกัดเวลา EECU รวมของผู้ใช้ทั้งหมดในโปรเจ็กต์

ดูข้อมูลเพิ่มเติมเกี่ยวกับโควต้า Earth Engine ที่คุณตั้งค่าได้ที่โควต้า Earth Engine

เรียกใช้การค้นหาที่เกินขีดจำกัดโควต้าเป็นครั้งคราว

ตั้งขีดจำกัดการใช้งานต่อวัน

คุณดูและแก้ไขโควต้าได้ในหน้าโควต้าและขีดจำกัดของระบบในคอนโซล Google Cloud เมื่อปรับโควต้า การเปลี่ยนแปลงจะมีผลภายในไม่กี่นาที หากต้องการตั้งค่าหรืออัปเดตขีดจำกัดการใช้งานต่อวัน ให้ทำดังนี้

  1. ตรวจสอบว่าคุณมีสิทธิ์ในการเปลี่ยนโควต้าของโปรเจ็กต์ ในโปรเจ็กต์ที่เลือก
  2. ไปที่หน้าโควต้า ของคอนโซล Google Cloud
  3. ใช้ตัวกรองเมตริกในช่องค้นหาตัวกรองเพื่อกรอง earthengine.googleapis.com/daily_eecu_usage_time หากไม่เห็นEarth Engine compute time (EECU-time) per day in secondsโควต้า ให้ยืนยัน ว่าคุณได้เปิดใช้ Earth Engine API สำหรับโปรเจ็กต์ที่เลือกแล้ว
  4. คลิกแก้ไขโควต้าจากเมนู 3 จุด
  5. หากเลือกช่องทําเครื่องหมายไม่จํากัดไว้ ให้ยกเลิกการเลือก
  6. ป้อนขีดจํากัดในหน่วย EECU-วินาทีที่ต้องการในช่องค่าใหม่ คลิกส่งคำขอ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการดูและจัดการโควต้าได้ที่ดูและจัดการโควต้า

ข้อความแสดงข้อผิดพลาดที่ส่งคืน

หลังจากตั้งค่าขีดจำกัดรายวันแล้ว Earth Engine จะแสดงข้อความแสดงข้อผิดพลาดต่อไปนี้ เมื่อคุณใช้เกินขีดจำกัด

การใช้งานของคุณเกินโควต้าที่กำหนดเองสำหรับ 'earthengine.googleapis.com/daily_eecu_usage_time' ซึ่งผู้ดูแลระบบของคุณปรับได้ใน Google Cloud Console ที่ https://console.cloud.google.com/quotas/?project=_

เมื่อใช้โควต้าเกินแล้ว คำขอ Earth Engine จะล้มเหลวจนกว่าจะมีการรีเซ็ตโควต้าในวันถัดไปหรือผู้ดูแลระบบเพิ่มขีดจำกัด

การตรวจสอบและการแจ้งเตือนแบบละเอียด

หากต้องการควบคุมและตรวจสอบค่าใช้จ่ายในระดับที่ละเอียดกว่าขีดจำกัดรายวัน สูตรต่อไปนี้ต้องมีการตั้งค่าเพิ่มเติม แต่จะช่วยให้คุณตั้งค่าการแจ้งเตือนและการยกเลิกได้ที่ระดับworkload_tagและระดับงานแบบกลุ่ม

สูตรเหล่านี้ใช้การตรวจสอบเวลา EECU ที่กำลังดำเนินการซึ่งแสดงสำหรับ คำขอที่กำลังทำงาน ดูข้อมูลเพิ่มเติมเกี่ยวกับ การรายงานเวลา EECU ที่ดำเนินการอยู่ ใน Cloud Monitoring ได้ที่คู่มือการตรวจสอบ การใช้งาน

กำหนดค่าการแจ้งเตือน

คุณสามารถกำหนดค่าการแจ้งเตือนใน Cloud Monitoring เพื่อเตือนเมื่อเมตริกถึง เกณฑ์ที่กำหนด ระบบการแจ้งเตือนของ Cloud Monitoring มีความยืดหยุ่นสูง เราได้รวบรวมสูตรอาหารที่เราชื่นชอบไว้ที่นี่ แต่คุณสามารถใช้การกำหนดค่าที่กำหนดเองซึ่งเหมาะกับความต้องการของคุณได้

สูตร: การแจ้งเตือนของแชทสำหรับการใช้งาน workload_tag

ตัวอย่างนี้แสดงวิธีเชื่อมต่อการแจ้งเตือนทางแชท (เช่น ข้อความ Google Chat หรือข้อความ Slack) หากการใช้งานการคำนวณของ Earth Engine สำหรับworkload_tag ที่กำหนดเกิน เกณฑ์ ซึ่งอาจมีประโยชน์ในกรณีที่คุณมีชุดงานส่งออก ที่สร้างข้อมูลสำหรับบริการที่ใช้งานจริง และต้องการรับการแจ้งเตือนหาก งานเหล่านั้นใช้เวลา EECU รวมกันมากกว่าจำนวนหนึ่ง

  1. ไปที่หน้าการแจ้งเตือนในส่วน Cloud Monitoring ของ Cloud Console
  2. เลือก "สร้างนโยบาย" เพื่อกำหนดค่านโยบายการแจ้งเตือนใหม่
  3. เลือกเมตริก
    • EECU-วินาทีที่ดำเนินการอยู่ แสดงจำนวนวินาทีการประมวลผลที่รอดำเนินการ (ยังไม่สำเร็จ)
    • คุณอาจต้องยกเลิกการเลือกตัวกรอง "ใช้งานอยู่" เพื่อดูเมตริก
  4. เพิ่มตัวกรองโดยทำดังนี้
    • ใช้ workload_tag == your_workload_tag_value เพื่อกรองแท็กภาระงานที่เฉพาะเจาะจง
    • ใช้ compute_type = batch หรือ compute_type = online เพื่อกรองการคำนวณประเภทใดประเภทหนึ่ง
  5. เลือกค่า "กรอบเวลาแบบเลื่อน" ที่เหมาะสม หากไม่แน่ใจ ให้ใช้ 5 min
  6. เลือก "Sum" จากเมนู "ฟังก์ชันหน้าต่างกลิ้ง" การกำหนดค่า
เมตริกสำหรับการแจ้งเตือน
  7. เลือกทริกเกอร์การแจ้งเตือนและตั้งชื่อ
  8. เลือกช่องทางการแจ้งเตือน
    • สำหรับสูตรนี้ เราจะเลือก "จัดการแชแนลการแจ้งเตือน" จาก หน้าต่างโมดอล จากนั้นเลือก "เพิ่มใหม่" เพื่อวางรหัสพื้นที่ทำงานของ Google Chat โดยรหัสนี้อยู่ใน URL ของหน้า Gmail หรือ Chat เมื่อดูแชท
    • หากใช้ Google Chat คุณจะต้องพิมพ์ @Google Cloud Monitoring แล้วเลือกแอปเพื่อเพิ่มแอปการแจ้งเตือนลงในพื้นที่ (หากองค์กรอนุญาต)
  9. เลือกป้ายกำกับนโยบายและความรุนแรงที่เกี่ยวข้อง
  10. เขียนข้อมูลโค้ดเอกสารสั้นๆ
  11. เผยแพร่นโยบายการแจ้งเตือนใหม่

เมื่อตั้งค่าแล้ว คุณจะได้รับการแจ้งเตือนในพื้นที่แชททุกครั้งที่โปรเจ็กต์มีค่าเกินเกณฑ์

สูตร: รับการแจ้งเตือนทางอีเมลสำหรับเวลา EECU ที่ดำเนินการอยู่ทั้งหมด

ทำตามสูตรสำหรับการแจ้งเตือนของแชท แต่ให้ทำการเปลี่ยนแปลง 2 อย่างดังนี้

  1. ข้ามขั้นตอนการเพิ่มworkload_tagตัวกรองเพื่อให้คุณเห็นค่าทั้งหมด
  2. เมื่อเลือกช่องทางการแจ้งเตือน ให้เพิ่มอีเมลแทนการกำหนดค่าช่องทางแชท

เวลาในการตอบสนองและการกำหนดเวลาของการแจ้งเตือน

โปรดทราบว่าการเผยแพร่รายงานการตรวจสอบอาจมีความล่าช้าเล็กน้อย ดังนั้นคุณ จึงไม่ควรคาดหวังว่าจะได้รับการแจ้งเตือนทันที

ยกเลิกงานที่ใช้ทรัพยากรมาก

เมื่อมีโควต้า คุณจะใช้ Earth Engine API เพื่อตรวจสอบรายการงานที่รอดำเนินการเป็นระยะๆ และขอยกเลิกงานที่กำลังทำงานอยู่ซึ่งเกินขีดจำกัด EECU-วินาทีได้

สูตร: เรียกใช้ข้อมูลโค้ดใน Notebook หรือเชลล์ Python ในเครื่อง

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