इस पेज पर, हर दिन की सीमाएं सेट करने और ईईसीयू-टाइम की निगरानी करने का तरीका बताया गया है. इससे Earth Engine में कंप्यूटेशनल लागत को कंट्रोल करने में मदद मिलती है.
ईईसीयू-टाइम को रोज़ाना इस्तेमाल करने की सीमा तय करना
Earth Engine के इस्तेमाल पर होने वाले खर्च को कंट्रोल करने के लिए, यह तय किया जा सकता है कि आपका प्रोजेक्ट एक दिन में कितना ईईसीयू-टाइम इस्तेमाल कर सकता है. इसके लिए, आपको Cloud Quota को अपडेट करना होगा. इसके लिए, यह तरीका अपनाएं:
Earth Engine compute time (EECU-time) per day in seconds: यह प्रोजेक्ट-लेवल का कोटा है. इससे किसी प्रोजेक्ट में सभी उपयोगकर्ताओं के ईईसीयू-टाइम को सीमित किया जाता है.
Earth Engine के उन कोटा के बारे में ज़्यादा जानकारी के लिए जिन्हें सेट किया जा सकता है, Earth Engine के कोटा लेख पढ़ें.
रोज़ाना इस्तेमाल की सीमा सेट करना
Google Cloud Console के कोटा और सिस्टम की सीमाएं पेज पर जाकर, कोटा देखा और बदला जा सकता है. कोटा में बदलाव करने पर, यह बदलाव कुछ ही मिनटों में लागू हो जाता है. रोज़ाना इस्तेमाल की सीमा सेट करने या उसे अपडेट करने के लिए, यह तरीका अपनाएं:
- पुष्टि करें कि आपके पास चुने गए प्रोजेक्ट के लिए, प्रोजेक्ट के कोटे में बदलाव करने की अनुमतियां हैं.
- Google Cloud Console के कोटा पेज पर जाएं.
earthengine.googleapis.com/daily_eecu_usage_timeके लिए फ़िल्टर करने के लिए, फ़िल्टर खोज बॉक्स में मेट्रिक फ़िल्टर का इस्तेमाल करें. अगर आपकोEarth Engine compute time (EECU-time) per day in secondsकोटा नहीं दिखता है, तो पुष्टि करें कि आपने चुने गए प्रोजेक्ट के लिए Earth Engine API चालू किया हो.- तीन बिंदु वाले मेन्यू में जाकर, कोटा में बदलाव करें पर क्लिक करें.
- अगर अनलिमिटेड चेकबॉक्स चुना गया है, तो उसे हटाएं.
- नई वैल्यू फ़ील्ड में, ईईसीयू-सेकंड में वह सीमा डालें जो आपको चाहिए. अनुरोध भेजें पर क्लिक करें.
कोटा देखने और मैनेज करने के बारे में ज़्यादा जानने के लिए, कोटा देखना और मैनेज करना लेख पढ़ें.
गड़बड़ी के मैसेज वापस पाना
रोज़ाना इस्तेमाल की समयसीमा सेट करने के बाद, अगर उस सीमा से ज़्यादा डेटा डाउनलोड किया जाता है, तो Earth Engine यह गड़बड़ी का मैसेज दिखाता है:
आपने 'earthengine.googleapis.com/daily_eecu_usage_time' के लिए तय किए गए कस्टम कोटे से ज़्यादा इस्तेमाल किया है. इसे आपका एडमिन, Google Cloud console में जाकर बदल सकता है: https://console.cloud.google.com/quotas/?project=_.
कोटा खत्म होने के बाद, Earth Engine के अनुरोध तब तक पूरे नहीं किए जा सकेंगे, जब तक अगले दिन कोटा रीसेट नहीं हो जाता या एडमिन सीमा नहीं बढ़ा देता.
ज़्यादा बेहतर तरीके से मॉनिटर करना और सूचनाएं पाना
अगर आपको रोज़ की सीमा से ज़्यादा बारीकी से लागत को कंट्रोल और मॉनिटर करना है, तो यहां दी गई रेसिपी के लिए ज़्यादा सेटअप की ज़रूरत होती है. हालांकि, इससे workload_tag और बैच टास्क लेवल पर सूचनाएं पाने और रद्द करने की सुविधा मिलती है.
इन रेसिपी में, ईईसीयू-टाइम मॉनिटरिंग का इस्तेमाल किया जाता है. यह मॉनिटरिंग, अनुरोधों को पूरा करने के दौरान की जाती है. Cloud Monitoring में, ईईसीयू के इस्तेमाल की रिपोर्टिंग की प्रोसेस के बारे में ज़्यादा जानने के लिए, इस्तेमाल की निगरानी करना गाइड देखें.
सूचनाएं कॉन्फ़िगर करना
Cloud Monitoring में सूचनाएं कॉन्फ़िगर की जा सकती हैं. इससे किसी मेट्रिक के तय थ्रेशोल्ड तक पहुंचने पर, आपको सूचना मिलेगी. Cloud Monitoring का सूचना देने वाला सिस्टम बहुत लचीला है. हमने यहां अपनी कुछ पसंदीदा रेसिपी इकट्ठा की हैं. हालांकि, अपनी ज़रूरत के हिसाब से कॉन्फ़िगरेशन का इस्तेमाल करके, अपनी पसंद की रेसिपी भी बनाई जा सकती हैं.
रेसिपी: workload_tag के इस्तेमाल के लिए चैट की सूचना
इस उदाहरण में बताया गया है कि अगर किसी workload_tag के लिए Earth Engine के कंप्यूटिंग संसाधनों का इस्तेमाल, थ्रेशोल्ड से ज़्यादा हो जाता है, तो चैट की सूचना (जैसे, Google Chat मैसेज या Slack मैसेज) कैसे भेजी जाती है. यह तब काम का हो सकता है, जब आपके पास एक्सपोर्ट किए जाने वाले टास्क का कोई सेट हो. ये टास्क, आपकी प्रोडक्शन सेवा के लिए डेटा बनाते हैं. ऐसे में, अगर आपको यह सूचना चाहिए कि इन टास्क ने मिलकर, ईईसीयू के लिए तय की गई समयसीमा से ज़्यादा समय लिया है, तो यह सुविधा आपके लिए काम की हो सकती है.
- Cloud Console के Cloud Monitoring सेक्शन में, सूचनाएं पाने की सुविधा वाले पेज पर जाएं.
- नई सूचना देने वाली नीति को कॉन्फ़िगर करने के लिए, "नीति बनाएं" चुनें.
- मेट्रिक चुनें:
- ईईसीयू-सेकंड की मौजूदा संख्या से पता चलता है कि कंप्यूटिंग के कितने सेकंड अभी पूरे नहीं हुए हैं.
- मेट्रिक देखने के लिए, आपको "चालू है" फ़िल्टर से चुने गए का निशान हटाना पड़ सकता है.
- फ़िल्टर जोड़ें:
- किसी खास वर्कलोड टैग को फ़िल्टर करने के लिए,
workload_tag == your_workload_tag_valueका इस्तेमाल करें. - किसी खास तरह की गिनती के लिए,
compute_type = batchयाcompute_type = onlineका इस्तेमाल करें.
- किसी खास वर्कलोड टैग को फ़िल्टर करने के लिए,
- "रोलिंग विंडो" के लिए सही वैल्यू चुनें. अगर आपको पक्के तौर पर नहीं पता, तो
5 minका इस्तेमाल करें. - "रोलिंग विंडो फ़ंक्शन" मेन्यू से "Sum" चुनें.

- सूचना ट्रिगर करने की सुविधा चुनें और इसे कोई नाम दें.
- सूचना के चैनल चुनें.
- इस रेसिपी के लिए, हम मोडल विंडो से "सूचना चैनल मैनेज करें" को चुनेंगे. इसके बाद, "नया जोड़ें" को चुनकर, अपने Google Chat का स्पेस आईडी चिपकाएँगे. चैट देखते समय, Gmail या Chat पेज के यूआरएल में यह आईडी देखा जा सकता है.
- अगर Google Chat का इस्तेमाल किया जा रहा है, तो आपको
@Google Cloud Monitoringटाइप करके ऐप्लिकेशन चुनना होगा. इससे, Alerting ऐप्लिकेशन को अपने स्पेस में जोड़ा जा सकेगा. हालांकि, ऐसा तभी किया जा सकता है, जब आपके संगठन ने इसकी अनुमति दी हो.
- ज़रूरत के हिसाब से नीति और उल्लंघन के स्तर के लेबल चुनें.
- दस्तावेज़ का एक छोटा स्निपेट लिखो.
- सूचना पाने से जुड़ी नई नीति पब्लिश करें!
सीमा सेट करने के बाद, जब भी आपके प्रोजेक्ट के लिए तय की गई सीमा से ज़्यादा खर्च होगा, तब आपको अपने चैट स्पेस में सूचनाएं मिलेंगी.
रेसिपी: ईईसीयू-टाइम के कुल समय के लिए ईमेल सूचनाएं पाना
चैट की सूचनाओं के लिए दिए गए निर्देशों का पालन करें. हालांकि, इसमें दो बदलाव करें:
workload_tagफ़िल्टर जोड़ने का चरण छोड़ें, ताकि आपको सभी वैल्यू दिखें.- सूचना का चैनल चुनते समय, चैट चैनल कॉन्फ़िगर करने के बजाय अपना ईमेल पता जोड़ें.
सूचना मिलने में लगने वाला समय और सूचना मिलने का समय
ध्यान दें कि मॉनिटरिंग रिपोर्ट के अपडेट होने में कुछ समय लगता है. इसलिए, आपको तुरंत सूचनाएं नहीं मिलेंगी.
ज़्यादा संसाधन इस्तेमाल करने वाले टास्क रद्द करना
तय सीमा के हिसाब से, Earth Engine API का इस्तेमाल करके समय-समय पर, पूरे नहीं हुए टास्क की सूची देखी जा सकती है. साथ ही, ऐसे टास्क को रद्द करने का अनुरोध किया जा सकता है जो ईईसीयू-सेकंड की सीमा से ज़्यादा समय ले रहे हैं.
रेसिपी: किसी नोटबुक या लोकल 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