लागत कंट्रोल

सूचनाएं कॉन्फ़िगर करना

Earth Engine के संसाधनों के इस्तेमाल और लागत को कंट्रोल करने के लिए, क्लाउड मॉनिटरिंग में अलर्ट कॉन्फ़िगर किए जा सकते हैं. इससे, किसी मेट्रिक के किसी तय थ्रेशोल्ड तक पहुंचने पर आपको चेतावनी मिलती है.

क्लाउड मॉनिटरिंग से जुड़ी सूचना देने वाला सिस्टम, बहुत आसान है. हमने यहां अपनी कुछ पसंदीदा रेसिपी इकट्ठा की हैं. हालांकि, अपनी ज़रूरतों के हिसाब से कस्टम कॉन्फ़िगरेशन आज़माएं.

तरीका: workload_tag के इस्तेमाल के लिए, चैट की सूचना

इस उदाहरण में, किसी workload_tag के लिए Earth Engine के कंप्यूट इस्तेमाल की सीमा से ज़्यादा होने पर, चैट सूचना (जैसे, Google Chat मैसेज या Slack मैसेज) को वायर अप करने का तरीका बताया गया है. यह तब काम का हो सकता है, जब आपके पास एक्सपोर्ट टास्क का एक सेट हो, जो आपकी प्रोडक्शन सेवा के लिए डेटा बनाता हो. साथ ही, आपको यह सूचना चाहिए कि ये टास्क एक साथ तय सीमा से ज़्यादा ईईसीयू-टाइम का इस्तेमाल करते हैं या नहीं.

  1. Cloud Console के क्लाउड मॉनिटरिंग सेक्शन में, सूचना देने वाले पेज पर जाएं.
  2. सूचना देने की नई नीति कॉन्फ़िगर करने के लिए, "नीति बनाएं" चुनें.
  3. मेट्रिक चुनें:
    • EECU में लगने वाले सेकंड, उन सेकंड की संख्या दिखाता है जो अब तक प्रोसेस नहीं हुए हैं.
    • मेट्रिक देखने के लिए, आपको "चालू" फ़िल्टर से चुने हुए का निशान हटाना पड़ सकता है.
  4. फ़िल्टर जोड़ें:
    • किसी खास वर्कलोड टैग को फ़िल्टर करने के लिए, workload_tag == your_workload_tag_value का इस्तेमाल करें.
    • किसी खास तरह के कैलकुलेशन को फ़िल्टर करने के लिए, compute_type = batch या compute_type = online का इस्तेमाल करें.
  5. "रोलिंग विंडो" की सही वैल्यू चुनें. अगर आपको पक्के तौर पर नहीं पता है, तो 5 min का इस्तेमाल करें.
  6. "रोलिंग विंडो फ़ंक्शन" मेन्यू से, "योग" चुनें. सूचना के लिए मेट्रिक का कॉन्फ़िगरेशन
  7. सूचना ट्रिगर चुनें और उसे कोई नाम दें.
  8. सूचना के चैनल चुनें.
    • इस रेसिपी के लिए, हम मॉडल विंडो से "सूचना चैनल मैनेज करें" चुनेंगे. इसके बाद, Google Chat के स्पेस आईडी को चिपकाने के लिए, "नया जोड़ें" चुनेंगे. चैट देखते समय, यह आईडी Gmail या Chat पेज के यूआरएल में दिखता है.
    • Google Chat का इस्तेमाल करने पर, आपको @Google Cloud Monitoring टाइप करना होगा. इसके बाद, अपने Space में सूचना देने वाला ऐप्लिकेशन जोड़ने के लिए, ऐप्लिकेशन चुनना होगा. हालांकि, ऐसा तब ही किया जा सकता है, जब आपके संगठन ने अनुमति दी हो.
  9. नीति और गंभीरता के लेबल चुनें.
  10. दस्तावेज़ का छोटा स्निपेट लिखें.
  11. सूचना देने की नई नीति पब्लिश करें!

थ्रेशोल्ड सेट करने के बाद, जब भी आपके प्रोजेक्ट के लिए थ्रेशोल्ड से ज़्यादा ट्रैफ़िक आएगा, तब आपको चैट स्पेस में सूचनाएं मिलेंगी.

तरीका: ईईसीयू के दौरान कुल समय के लिए ईमेल सूचनाएं पाना

चैट की सूचनाओं के लिए दिया गया तरीका अपनाएं, लेकिन दो बदलाव करें:

  1. workload_tag फ़िल्टर जोड़ने का चरण छोड़ें, ताकि आपको सभी वैल्यू दिखें.
  2. सूचना पाने के लिए चैनल चुनते समय, चैट चैनल को कॉन्फ़िगर करने के बजाय, अपना ईमेल पता जोड़ें.

सूचना मिलने में लगने वाला समय और समय

ध्यान दें कि मॉनिटरिंग रिपोर्ट को प्रोपेगेट होने में थोड़ी देरी होती है. इसलिए, आपको तुरंत सूचनाएं मिलने की उम्मीद नहीं करनी चाहिए.

ज़्यादा रिसॉर्स लेने वाले टास्क रद्द करना

तय सीमा के हिसाब से, 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