کنترل هزینه، کنترل هزینه

این صفحه نحوه تنظیم محدودیت های روزانه و نظارت بر زمان EECU در حال پیشرفت را برای کمک به کنترل هزینه های محاسباتی در Earth Engine توضیح می دهد.

زمان EECU روزانه را محدود کنید

برای کمک به کنترل هزینه‌های Earth Engine خود، می‌توانید با به‌روزرسانی سهمیه ابری زیر، محدودیتی برای مدت زمان EECU که پروژه شما مجاز است در یک روز مصرف کند تعیین کنید:

  • 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. از منوی سه نقطه روی Edit quota کلیک کنید.
  5. اگر کادر انتخاب نامحدود انتخاب شده است، آن را از حالت انتخاب خارج کنید.
  6. در قسمت New value حد مورد نظر خود را در EECU-secons وارد کنید. روی ارسال درخواست کلیک کنید.

برای اطلاعات بیشتر درباره مشاهده و مدیریت سهمیه ها، مشاهده و مدیریت سهمیه ها را ببینید.

پیام های خطا برگردانده شد

پس از تعیین محدودیت روزانه، Earth Engine پیغام خطای زیر را در صورت تجاوز از آن برمی‌گرداند:

میزان استفاده شما از سهمیه سفارشی «earthengine.googleapis.com/daily_eecu_usage_time» فراتر رفته است که توسط سرپرست شما در کنسول Google Cloud قابل تنظیم است: https://console.cloud.google.com/quotas/?project=_.

پس از فراتر رفتن از سهمیه، درخواست‌های Earth Engine تا زمانی که سهمیه روز بعد بازنشانی شود یا محدودیت توسط سرپرست افزایش یابد، ناموفق خواهند بود.

نظارت و هشدار دقیق

اگر نیاز به کنترل و نظارت بر هزینه‌ها با دانه‌بندی دقیق‌تر از حد مجاز روزانه دارید، دستور العمل‌های زیر به تنظیم بیشتری نیاز دارند، اما هشدار و لغو را در سطح workload_tag ​​و دسته‌ای کار فعال می‌کنند.

این دستور العمل ها از نظارت در حال پیشرفت در زمان EECU استفاده می کنند که برای اجرای درخواست ها ظاهر شده است. برای اطلاعات بیشتر در مورد گزارش در حال پیشرفت زمان EECU در Cloud Monitoring به راهنمای استفاده از مانیتورینگ مراجعه کنید.

هشدارها را پیکربندی کنید

می‌توانید هشدارها را در Cloud Monitoring پیکربندی کنید تا وقتی معیاری به آستانه خاصی رسید به شما هشدار دهند. سیستم هشدار Cloud Monitoring بسیار انعطاف پذیر است. ما تعدادی از دستور العمل های مورد علاقه خود را در اینجا جمع آوری کرده ایم، اما می توانید با تنظیمات سفارشی مطابق با نیازهای خود آشپزی کنید.

دستور غذا: اعلان چت برای استفاده از workload_tag

این مثال نشان می‌دهد که چگونه می‌توان یک اعلان گپ (مثلاً یک پیام گپ Google یا یک پیام Slack) را در صورتی که میزان استفاده محاسبه‌شده توسط Earth Engine برای یک workload_tag ​​معین از یک آستانه فراتر رفت، سیم‌کشی کرد. این می‌تواند در مواردی مفید باشد که شما مجموعه‌ای از وظایف صادراتی دارید که داده‌هایی را برای خدمات تولیدی شما ایجاد می‌کنند، و می‌خواهید در صورتی که مجموعاً بیش از مقدار مشخصی از زمان EECU مصرف می‌کنند به شما اطلاع داده شود.

  1. از صفحه هشدار در بخش Cloud Monitoring در کنسول Cloud دیدن کنید.
  2. برای پیکربندی یک خط مشی هشدار جدید، "ایجاد خط مشی" را انتخاب کنید.
  3. متریک را انتخاب کنید:
    • ثانیه های EECU در حال پیشرفت تعداد ثانیه های محاسباتی معلق (هنوز موفقیت آمیز) را نشان می دهد.
    • ممکن است لازم باشد فیلتر «فعال» را لغو انتخاب کنید تا متریک را ببینید.
  4. افزودن فیلتر:
    • از workload_tag == your_workload_tag_value برای فیلتر کردن یک برچسب بار کاری خاص استفاده کنید.
    • از compute_type = batch یا compute_type = online برای فیلتر کردن نوع خاصی از محاسبات استفاده کنید.
  5. مقدار مناسب "Rolling window" را انتخاب کنید. اگر مطمئن نیستید، 5 min استفاده کنید.
  6. "Sum" را از منوی "Rolling window function" انتخاب کنید. پیکربندی a متریک برای هشدار
  7. ماشه هشدار را انتخاب کنید و نامی برای آن بگذارید.
  8. کانال های اطلاع رسانی را انتخاب کنید.
    • برای این دستور غذا، «مدیریت کانال‌های اعلان» را از پنجره مدال انتخاب می‌کنیم، سپس «افزودن جدید» را برای جای‌گذاری در Space ID چت Google خود انتخاب می‌کنیم. این شناسه را می توان در URL صفحه Gmail یا Chat هنگام مشاهده چت پیدا کرد.
    • اگر از Google Chat استفاده می کنید، باید @Google Cloud Monitoring نیز تایپ کنید و برنامه را برای افزودن برنامه Alerting به Space خود انتخاب کنید (اگر سازمان شما اجازه می دهد).
  9. برچسب های خط مشی و شدت مربوطه را انتخاب کنید.
  10. یک قطعه مستند کوتاه بنویسید.
  11. خط مشی هشدار جدید خود را منتشر کنید!

پس از تنظیم، هر زمان که از آستانه پروژه شما فراتر رفت، هشدارهایی در فضای چت خود دریافت خواهید کرد.

دستور العمل: دریافت هشدارهای ایمیل برای کل در حال پیشرفت زمان EECU

دستورالعمل اعلان‌های چت را دنبال کنید، اما دو تغییر ایجاد کنید:

  1. از مرحله افزودن فیلتر workload_tag ​​بگذرید تا بتوانید همه مقادیر را ببینید.
  2. هنگام انتخاب یک کانال اعلان، به جای پیکربندی کانال چت، به جای آن آدرس ایمیل خود را اضافه کنید.

تأخیر هشدار و زمان

توجه داشته باشید که انتشار گزارش های مانیتورینگ با تأخیر اندکی مواجه است، بنابراین نباید انتظار اعلان های آنی را داشته باشید.

وظایف سنگین منابع را لغو کنید

با توجه به محدودیت، می‌توان از Earth Engine API برای بررسی دوره‌ای فهرست کارهای معلق و درخواست لغو برای هر کار در حال اجرا که از محدودیت EECU-ثانیه فراتر می‌رود، استفاده کرد.

دستور غذا: یک قطعه کد را در یک نوت بوک یا پوسته محلی پایتون اجرا کنید

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