בדף הזה מוסבר איך להגדיר מגבלות יומיות ולעקוב אחרי זמן EECU בתהליך כדי לשלוט בעלויות החישוב ב-Earth Engine.
הגבלת זמן השימוש היומי ב-EECU
כדי לעזור לכם לשלוט בעלויות של Earth Engine, אתם יכולים להגדיר מגבלה על כמות הזמן ב-EECU שהפרויקט יכול לצרוך ביום. לשם כך, צריך לעדכן את מכסת Cloud הבאה:
-
Earth Engine compute time (EECU-time) per day in seconds: מכסה ברמת הפרויקט שמגבילה את הזמן המצטבר של כל המשתמשים בפרויקט ב-EECU.
מידע נוסף על מכסות Earth Engine שאפשר להגדיר זמין במאמר בנושא מכסות Earth Engine.
הגדרת מגבלה יומית
אפשר לראות ולערוך את המכסות בדף Quotas & System Limits במסוף Google Cloud. כשמשנים את המכסה, השינוי מתעדכן תוך כמה דקות. כדי להגדיר או לעדכן מגבלה יומית:
- מוודאים שיש לכם את ההרשאות לשינוי המכסות בפרויקט בפרויקט שבחרתם.
- נכנסים לדף Quotas במסוף Google Cloud.
- משתמשים במסנן Metric בתיבת החיפוש Filter כדי לסנן לפי
earthengine.googleapis.com/daily_eecu_usage_time. אם לא מופיסה מכסתEarth Engine compute time (EECU-time) per day in seconds, צריך לוודא שהפעלתם את Earth Engine API בפרויקט שבחרתם. - בתפריט האפשרויות הנוספות (3 נקודות), לוחצים על עריכת המכסה.
- אם תיבת הסימון ללא הגבלה מסומנת, מבטלים את הסימון שלה.
- בשדה New value, מזינים את המגבלה הרצויה ביחידות של שניות EECU. לוחצים על שליחת בקשה.
מידע נוסף על הצגה וניהול של מכסות זמין במאמר הצגה וניהול של מכסות.
הודעות השגיאה שמוחזרות
אחרי שמגדירים מגבלה יומית, אם חורגים ממנה, 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 זמין במדריך בנושא שימוש ב-Monitoring.
הגדרת התראות
אתם יכולים להגדיר התראות ב-Cloud Monitoring כדי לקבל אזהרה כשמדד מגיע לסף מסוים. מערכת ההתראות של Cloud Monitoring היא גמישה מאוד. ריכזנו כאן כמה מהמתכונים האהובים עלינו, אבל אתם יכולים להשתמש בהגדרות מותאמות אישית שמתאימות לצרכים שלכם.
מתכון: התראה בצ'אט על שימוש ב-workload_tag
בדוגמה הזו מוצג איך להגדיר התראה בצ'אט (למשל, הודעה ב-Google Chat או הודעה ב-Slack) אם השימוש ב-Earth Engine לצורך חישובים עבור workload_tag מסוים חורג מסף מסוים. האפשרות הזו יכולה להיות שימושית אם יש לכם קבוצה של משימות ייצוא שיוצרות נתונים לשירות הייצור שלכם, ואתם רוצים לקבל התראה אם הן צורכות ביחד יותר מכמות מסוימת של זמן EECU.
- נכנסים אל הדף Alerting בקטע Cloud Monitoring במסוף Cloud.
- בוחרים באפשרות 'יצירת מדיניות' כדי להגדיר מדיניות חדשה של התראות.
- בוחרים את המדד:
- EECU-seconds in progress מייצג את מספר שניות החישוב בהמתנה (שעדיין לא הסתיימו בהצלחה).
- יכול להיות שתצטרכו לבטל את הסימון של המסנן 'פעיל' כדי לראות את המדד.
- מוסיפים מסנן:
- משתמשים ב
workload_tag == your_workload_tag_valueכדי לסנן לפי תג ספציפי של עומס עבודה. - אפשר להשתמש ב-
compute_type = batchאו ב-compute_type = onlineכדי לסנן לפי סוג מסוים של חישוב.
- משתמשים ב
- בוחרים ערך מתאים ל'חלון נע'. אם לא בטוחים, משתמשים בערך
5 min. - בתפריט 'פונקציה אנליטית (חלון נע)', בוחרים באפשרות 'סכום'.

- בוחרים את הטריגר להתראה ונותנים לו שם.
- בוחרים את ערוצי ההתראות.
- במתכון הזה, נבחר באפשרות Manage Notification Channels (ניהול ערוצי התראות) בחלון המודאלי, ואז באפשרות Add New (הוספה של ערוץ חדש) כדי להדביק את מזהה המרחב ב-Google Chat. אפשר למצוא את המזהה הזה בכתובת ה-URL של דף Gmail או Chat כשמציגים את הצ'אט.
- אם אתם משתמשים ב-Google Chat, תצטרכו גם להקליד
@Google Cloud Monitoringולבחור את האפליקציה כדי להוסיף את אפליקציית ההתראות למרחב (אם הארגון שלכם מאפשר זאת).
- בוחרים את תוויות המדיניות והחומרה הרלוונטיות.
- תכתוב קטע קצר של תיעוד.
- מפרסמים את כללי מדיניות ההתראות החדשים.
אחרי שתגדירו את הסף, תקבלו התראות במרחב הצ'אט בכל פעם שהסף ייחצה בפרויקט.
מתכון: קבלת התראות באימייל על סך הזמן של שימוש ב-EECU שנמצא בתהליך
פועלים לפי ההוראות להגדרת התראות מ-Chat, אבל מבצעים שני שינויים:
- מדלגים על השלב של הוספת מסנן
workload_tagכדי לראות את כל הערכים. - כשבוחרים ערוץ התראות, במקום להגדיר ערוץ צ'אט, מוסיפים את כתובת האימייל.
זמן האחזור והתזמון של ההתראות
חשוב לזכור שיש עיכוב קל בהפצה של דוחות המעקב, ולכן לא כדאי לצפות לקבל התראות מיידיות.
ביטול משימות שצורכות הרבה משאבים
בהינתן מגבלה, אפשר להשתמש ב-Earth Engine API כדי לבדוק מעת לעת את רשימת המשימות שממתינות להפעלה ולבקש ביטול של כל משימה פעילה שחורגת ממגבלת שניות ה-EECU.
מתכון: הרצת קטע קוד במחברת או במעטפת 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