Gemini का इस्तेमाल करके, अपनी सेवाओं के लिए सिंथेटिक मॉनिटरिंग टेस्ट लिखना

1. परिचय

इस कोडलैब में, हम आपकी मौजूदा सेवाओं के लिए सिंथेटिक मॉनिटरिंग टेस्ट करने के लिए, लिखने में मेरी मदद करो सुविधा का इस्तेमाल करेंगे.

आपको क्या करना होगा...

  • आपको Google Cloud Run के लिए एक एपीआई डिप्लॉय करना होगा. यह हमारी सेवा के आधार के तौर पर काम करेगा, जिसकी हम जांच करेंगे.
  • इसके बाद, आपको एक सिंथेटिक मॉनिटर लिखना होगा, जो क्लाउड मॉनिटरिंग की एक सुविधा है.
  • सिंथेटिक मॉनिटर लिखने के लिए, आपको 'लिखने में मेरी मदद करो' सुविधा का इस्तेमाल करना होगा.

आपको इनके बारे में जानकारी मिलेगी...

  • सिंथेटिक मॉनिटरिंग की सुविधा क्या है.
  • सिंथेटिक मॉनिटरिंग में Gemini की 'लिखने में मेरी मदद करो' सुविधा इस्तेमाल करने का तरीका. इससे ऐसे टेस्ट केस तैयार किए जा सकेंगे जिनसे सेवा के मुख्य फ़ंक्शन की पुष्टि की जा सकेगी.

आपको इन चीज़ों की ज़रूरत होगी...

  • Chrome वेब ब्राउज़र
  • Gmail खाता
  • ऐसा क्लाउड प्रोजेक्ट जिसमें बिलिंग की सुविधा चालू हो
  • आपके Cloud प्रोजेक्ट के लिए, Gemini Code Assist की सुविधा चालू कर दी गई है

यह लैब सभी लेवल के डेवलपर के लिए है. इनमें नए उपयोगकर्ता भी शामिल हैं. ऐप्लिकेशन का सैंपल Python भाषा में है, लेकिन आपको इसे समझने के लिए Python प्रोग्रामिंग के बारे में जानने की ज़रूरत नहीं है.

2. सेटअप

अब हम अपने Google Cloud प्रोजेक्ट में, Gemini for Cloud की सुविधा को चालू कर देंगे. इसके लिए, यहां दिया गया तरीका अपनाएं:

  1. https://console.cloud.google.com पर जाएं और पक्का करें कि आपने वह Google Cloud प्रोजेक्ट चुना हो जिसके साथ आपको इस लैब के लिए काम करना है. सबसे ऊपर दाईं ओर दिख रहे, Gemini खोलें के आइकॉन पर क्लिक करें.

28f084ec1e159938.png

  1. Gemini for Cloud की चैट विंडो, कंसोल की दाईं ओर खुलेगी. नीचे दिखाए गए तरीके से, 'चालू करें' बटन पर क्लिक करें. अगर आपको चालू करें बटन नहीं दिखता है और आपको इसके बजाय Chat का इंटरफ़ेस दिखता है, तो हो सकता है कि आपने प्रोजेक्ट के लिए Gemini for Cloud की सेवा पहले ही चालू कर ली हो. ऐसे में सीधे अगले चरण पर जाया जा सकता है.

e8df9adc4ea43a37.png

  1. इसके चालू होने के बाद, Gemini से Cloud के लिए एक या दो क्वेरी पूछकर इसे आज़माया जा सकता है. सैंपल के तौर पर कुछ क्वेरी दिखाई गई हैं, लेकिन आपके पास नीचे दी गई क्वेरी What is Synthetic Monitoring? को आज़माने का विकल्प है

9859ea86a8310cb.png

Gemini for Cloud आपके सवाल के जवाब के साथ आपको जवाब देगा. Google Cloud में सिंथेटिक मॉनिटर लिखने का तरीका जानने के लिए, दिए गए दस्तावेज़ों की सूची देखें.

सबसे ऊपर दाएं कोने में मौजूद f68286b2b2ea5c0a.png आइकॉन पर क्लिक करके, Gemini for Cloud की चैट विंडो को बंद किया जा सकता है.

3. Google Cloud Run पर Inventory API का सैंपल डिप्लॉय करना है

जांच के बारे में लिखने से पहले, हमें एक सैंपल एपीआई की ज़रूरत होगी, जिसकी जांच हम कर सकते हैं. इसके लिए, हम एक आसान इन्वेंट्री एपीआई बनाएंगे, जिसे हम Google Cloud Run पर डिप्लॉय करेंगे.

हम Cloud Shell IDE का इस्तेमाल करेंगे. यह पूरी तरह से मैनेज किया गया कोड OSS पर आधारित डेवलपमेंट एनवायरमेंट है. पर्यावरण को बेहतर बनाने के लिए, Cloud Code IDE एक्सटेंशन की मदद ली जाती है. इससे Google Cloud की सेवाओं के साथ बेहतर तरीके से काम किया जा सकता है. इसके लिए, यहां दिया गया तरीका अपनाएं:

  1. ide.cloud.google.com पर जाएं. IDE को दिखने में कुछ समय लग सकता है, इसलिए कृपया थोड़ा इंतज़ार करें.
  2. सबसे नीचे स्टेटस बार में, दिखाए गए तरीके से Cloud कोड - साइन इन करें बटन पर क्लिक करें. निर्देश के अनुसार प्लग इन को अनुमति दें. अगर आपको स्टेटस बार में "Cloud Code - कोई प्रोजेक्ट नहीं है" दिखता है, तो उसे चुनें. इसके बाद, उन प्रोजेक्ट की सूची में से Google Cloud प्रोजेक्ट चुनें जिन पर आपको काम करना है.

6f5ce865fc7a3ef5.png

  1. स्क्रीन पर सबसे नीचे दाएं कोने में मौजूद, Gemini बटन पर क्लिक करें. इसके बाद, आखिरी बार सही Google Cloud प्रोजेक्ट चुनें. अगर आपसे Cloud AI Companion API को चालू करने के लिए कहा गया है, तो कृपया इसे चालू करें और आगे बढ़ें.
  2. Google Cloud प्रोजेक्ट चुनने के बाद, यह पक्का करें कि आपको स्टेटस बार के Cloud Code स्थिति मैसेज में यह जानकारी दिख रही हो. साथ ही, यह भी दिख रहा हो कि आपने कोड असिस्ट को चालू किया है. यह स्टेटस बार में दाईं ओर मौजूद स्टेटस बार में दिखता है:

709e6c8248ac7d88.png

  1. नीचे दिए गए स्टेटस बार में, Google Cloud प्रोजेक्ट के नाम पर क्लिक करें.

f151759c156c124e.png

  1. विकल्पों की एक सूची दिखेगी. नीचे दी गई सूची में, नया ऐप्लिकेशन पर क्लिक करें.

91ea9836f38b7f74.png

  1. Cloud Run ऐप्लिकेशन चुनें.
  2. Python (Flask): Cloud Run ऐप्लिकेशन टेंप्लेट चुनें.
  3. नए ऐप्लिकेशन को अपनी पसंदीदा जगह पर सेव करें.
  4. एक सूचना पुष्टि करती है कि आपका ऐप्लिकेशन बना दिया गया है और एक नई विंडो खुलती है, जिसमें आपका ऐप्लिकेशन लोड हो जाता है, जैसा कि नीचे दिखाया गया है. README.md फ़ाइल खुली है. फ़िलहाल, उस व्यू को बंद किया जा सकता है.

ed250f23b0e4fee8.png

  1. एक्सप्लोरर में, app.py फ़ाइल पर जाएं और इसे नीचे दी गई सामग्री से बदलें:
from flask import Flask, jsonify, request

app = Flask(__name__)

inventory = [
    {
        'id': 1,
        'name': 'Item 1',
        'quantity': 10
    },
    {
        'id': 2,
        'name': 'Item 2',
        'quantity': 20
    },
    {
        'id': 3,
        'name': 'Item 3',
        'quantity': 30
    }
]

@app.route('/inventory', methods=['GET'])
def get_inventory():
    return jsonify(inventory)

@app.route('/inventory/<int:id>', methods=['GET'])
def get_inventory_item(id):
    for item in inventory:
        if item['id'] == id:
            return jsonify(item)
    return jsonify({'error': 'Item not found'}), 404

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=8080)
  1. इन्वेंट्री एपीआई को Cloud Run पर डिप्लॉय करें. हमें सबसे ऊपर बाईं ओर मौजूद मेन्यू आइकॉन के ज़रिए, Cloud Shell IDE से नया टर्मिनल सेशन लॉन्च करना होगा. मेन्यू आइकॉन पर क्लिक करें. इसके बाद, Terminal → New Terminal पर क्लिक करें, जैसा कि नीचे दिखाया गया है:

289173c68f1addb5.png

  1. टर्मिनल सत्र में, नीचे दिए गए निर्देश दें:
gcloud run deploy --source .
  1. ऊपर दिए गए निर्देश में, डिप्लॉय करने के लिए region के बारे में पूछा जाएगा. कृपया us-central1 को चुनें. इसमें unauthenticated invocations की अनुमति देने के लिए कहा जाएगा. कृपया y बोलकर इसकी अनुमति दें.
  2. सेवा लागू होने के बाद, आपको सेवा का यूआरएल मिलेगा. इसे लिखो.

4. Inventory API को आज़माना

अब ब्राउज़र लॉन्च करके और इन एंडपॉइंट को दबाकर, Inventory API को टेस्ट किया जा सकता है:

SERVICE_URL/inventory

इससे आपको सेवा में मौजूद सैंपल डेटा के मुताबिक, तीन इन्वेंट्री आइटम मिलेंगे. सैंपल के तौर पर यहां दिया गया जवाब देखें:

[
  {
    "id": 1,
    "name": "Item 1",
    "quantity": 10
  },
  {
    "id": 2,
    "name": "Item 2",
    "quantity": 20
  },
  {
    "id": 3,
    "name": "Item 3",
    "quantity": 30
  }
]

अब हम नीचे दिए गए यूआरएल की मदद से, किसी इन्वेंट्री आइटम को वापस ला सकते हैं. इससे आपको वह इन्वेंट्री आइटम मिलेगा जिसकी वैल्यू 1 id है.

SERVICE_URL/inventory/1

जवाब इसके जैसा होना चाहिए:

{
  "id": 1,
  "name": "Item 1",
  "quantity": 10
}

आखिर में, हम उस इन्वेंट्री आइटम को वापस लाने की कोशिश कर सकते हैं जो मौजूद नहीं है.

SERVICE_URL/inventory/200

इससे आपको गड़बड़ी का मैसेज मिलेगा, क्योंकि किसी भी इन्वेंट्री आइटम की वैल्यू id नहीं है. रिस्पॉन्स इससे मिलता-जुलता होना चाहिए:

{
  "error": "Item not found"
}

अब हम Gemini की मदद से, क्लाउड मॉनिटरिंग में सिंथेटिक मॉनिटरिंग की सुविधा वाले टेस्ट लिखने के लिए तैयार हैं.

5. Google Cloud में एआई की मदद से निगरानी करना

जैसा कि दस्तावेज़ों में बताया गया है, सिंथेटिक मॉनिटर आपको यह तय करने की सुविधा देते हैं कि किस चीज़ की जांच की जाएगी. साथ ही, जांच का क्रम भी तय किया जा सकता है. उदाहरण के लिए, अपने ऐप्लिकेशन के लॉगिन पेज, ई-कॉमर्स स्टोर की चेकआउट प्रोसेस या तीसरे पक्ष की सेवाओं को अपने ऐप्लिकेशन की ओर से किए जाने वाले एपीआई कॉल की जांच की जा सकती है.

सिंथेटिक मॉनिटर बनाने पर, 2nd gen Cloud Function डिप्लॉय किया जाता है, जो Cloud Run पर बना होता है. आपका फ़ंक्शन Node.js में लिखा जाना चाहिए और ओपन सोर्स सिंथेटिक SDK फ़्रेमवर्क पर निर्भर होना चाहिए. क्लाउड मॉनिटरिंग, इस फ़्रेमवर्क को डिस्ट्रिब्यूट और मैनेज करता है.

क्लाउड मॉनिटरिंग, इस तरह के सिंथेटिक मॉनिटर के साथ काम करता है:

  • कस्टम या मोका-आधारित सिंथेटिक मॉनिटर, आपको पूरी तरह से कॉन्फ़िगर किए जा सकने वाले, एक ही मकसद के लिए बने Cloud Function डिप्लॉय करने देते हैं.
  • ब्रोकन-लिंक चेकर की मदद से, पहले से कॉन्फ़िगर किए गए Cloud फ़ंक्शन को डिप्लॉय करने से पहले, विकल्प तय किए जा सकते हैं. जैसे, ऑरिजिन यूआरआई, जांच किए गए लिंक की संख्या, और दोबारा की गई कोशिशों की संख्या.

इन सिंथेटिक मॉनिटर का इस्तेमाल करते समय, क्लाउड मॉनिटरिंग की सुविधा काफ़ी काम करती है. यह इन बातों के लिए ज़िम्मेदार है:

  • समय-समय पर आपके Cloud फ़ंक्शन को एक्ज़ीक्यूट करना.
  • हर एक्ज़ीक्यूशन के नतीजों को इकट्ठा और सेव करना:
  • सफलता और विफलता की जानकारी, जैसे कि गड़बड़ी का मैसेज, गड़बड़ी का टाइप, और कोड की लाइन
  • एक्ज़ीक्यूशन का समय
  • लॉग
  • मेट्रिक

हम Gemini और खास तौर पर Help Me Write की सुविधा की मदद लेंगे, जो हमें टेस्ट के लिए शुरुआती कोड देगी. इससे हम टेस्ट करने के लिए, इसका इस्तेमाल कर सकेंगे और इसके साथ अन्य सुविधाएं भी तैयार कर सकेंगे. चलिए, शुरू करते हैं.

6. Inventory API Test Cases के लिए हमारा सिंथेटिक मॉनिटर लिखना

अब हम सिंथेटिक मॉनिटर करने के लिए, Cloud Console पर जाएंगे.

Cloud Console में सिंथेटिक मॉनिटरिंग पेज पर जाएं. इससे वह पेज सामने आ जाएगा, जैसा कि नीचे दिखाया गया है:

96bfce88f55442f3.png

ऊपर दिए गए पेज में, एआई की मदद से निगरानी करने की सुविधा बनाएं लिंक पर क्लिक करें. इससे एक कॉन्फ़िगरेशन फ़ॉर्म दिखेगा, जैसा कि नीचे दिखाया गया है:

af4dde3e9e0a5a16.png

हमने एक नाम s1 उपलब्ध कराया है, लेकिन आप कोई भी दूसरा नाम चुन सकते हैं. ऊपर दी गई स्क्रीन में 'मुझे कोड भेजें' बटन पर ध्यान दें. उस पर क्लिक करें.

इससे एक पॉप-अप दिखेगा, जहां आपको उन टेस्ट केस की जानकारी देने वाला प्रॉम्प्ट देना होगा जिन्हें आपको लागू करना है. इससे यह पक्का किया जा सकेगा कि Inventory API ठीक से काम कर रहा है.

a13e78db15b37dd3.png

प्रॉम्प्ट एडिट बॉक्स में, नीचे दिए गए प्रॉम्प्ट जैसे प्रॉम्प्ट का इस्तेमाल करें:

Help me write Node.js based synthetic test script with the assert module that performs the following tests:
1. A GET operation on SERVICE_URL/inventory. The http response code returned should be 200. 
2. A GET operation on SERVICE_URL/inventory/1. The http response code returned should be 200. The response data is JSON format. It should be a single object with attributes as follows: "id" value should be 1, "name" value should be "Item 1" and "quantity" value should be 10.
3. A GET operation on SERVICE_URL/inventory/200. The https response code returned should be 404. The response data is in JSON format. It should be a single object with attributes as follows: "error" value should be "Item not found". 

ध्यान दें कि हमने 3 टेस्ट केस उपलब्ध कराए हैं और आपको अपनी सेवा के लिए Service_URL वैल्यू को Cloud Run Service के असली नाम से बदलना चाहिए.

GENERATE पर क्लिक करने के बाद, Gemini, टेस्ट सुइट कोड और package.json फ़ाइल भी जनरेट करेगा. इसका तरीका नीचे बताया गया है. आपके लिए जनरेट किया गया कोड, नीचे दिए गए कोड से अलग हो सकता है. package.json फ़ाइल में मौजूद कोड और डिपेंडेंसी फ़ाइलें देखें.

d19340c357f620bd.png

क्लाउड फ़ंक्शन में शामिल करें पर क्लिक करें. इससे आपको Cloud Function बनाने वाला एक फ़ॉर्म दिखेगा. इसमें आपके लिए ज़रूरी वैल्यू अपने-आप भरी जाएगी.

d70e50624a09149a.png

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

इससे बैकग्राउंड में Google Cloud फ़ंक्शन बनाने की प्रोसेस शुरू हो जाएगी. इसमें कुछ मिनट लग सकते हैं, इसलिए थोड़ा इंतज़ार करें.

1b07702ea5ac5bdb.png

Cloud फ़ंक्शन डिप्लॉय हो जाने के बाद, क्लाउड मॉनिटरिंग की सुविधा सिंथेटिक मॉनिटर को शुरू करने का काम शुरू कर देगी.

शुरुआत में आपको दिखेगा कि कोई न्योता नहीं है, जैसा कि नीचे दिखाया गया है:

dac473269a289a3b.png

एक बार खास तौर पर प्रोसेस हो जाने के बाद, आपको अलग-अलग लागू किए जाने की जानकारी दिखेगी. नीचे दी गई स्क्रीन से पता चलता है कि टेस्ट पास हो रहे हैं:

dc2d7dd98277fbcc.png

सिंथेटिक मॉनिटर नाम (जैसे, s1) पर क्लिक करने पर, आपको अलग-अलग प्रोसेस लागू करने के बारे में जानकारी मिलेगी, जैसा कि नीचे दिखाया गया है:

8369a02b413d12cc.png

7. बधाई हो!

बधाई हो - आपने Google Cloud Run पर एपीआई का एक नमूना डिप्लॉय कर लिया है. साथ ही, सेवा के काम करने के तरीके की पुष्टि करने के लिए सिंथेटिक मॉनिटरिंग टेस्ट लिखे हैं. इस प्रोसेस के दौरान, आपने टेस्ट सुइट का कोड जनरेट करने के लिए Gemini का इस्तेमाल किया.

8. रेफ़रंस के लिए दस्तावेज़