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

1. परिचय

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

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

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

आपको यह जानकारी मिलेगी...

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

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

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

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

2. सेटअप

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

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

28f084ec1e159938.png

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

e8df9adc4ea43a37.png

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

9859ea86a8310cb.png

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

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

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

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

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

  1. ide.cloud.google.com पर जाएं. आईडीई दिखने में कुछ समय लग सकता है. इसलिए, कृपया इंतज़ार करें.
  2. नीचे दिए गए स्टेटस बार में, Cloud Code - Sign in बटन पर क्लिक करें. निर्देशों के मुताबिक, प्लगिन को अनुमति दें. अगर आपको स्टेटस बार में "Cloud Code - no project" दिखता है, तो उसे चुनें. इसके बाद, प्रोजेक्ट की सूची में से वह 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 से नया टर्मिनल सेशन लॉन्च करना होगा. मेन्यू आइकॉन पर क्लिक करें. इसके बाद, नीचे दिए गए तरीके से टर्मिनल → नया टर्मिनल पर क्लिक करें:

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
  }
]

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

SERVICE_URL/inventory/1

जवाब इस तरह का होना चाहिए:

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

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

SERVICE_URL/inventory/200

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

{
  "error": "Item not found"
}

अब हम Gemini की मदद से, Cloud Monitoring में सिंथेटिक मॉनिटरिंग टेस्ट लिख सकते हैं.

5. Google Cloud में सिंथेटिक मॉनिटरिंग

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

सिंथेटिक मॉनिटर बनाते समय, आपको दूसरी जनरेशन का Cloud Functions डिप्लॉय करना होता है. यह Cloud Run पर बनाया गया है. आपका फ़ंक्शन Node.js में लिखा होना चाहिए और यह ओपन सोर्स Synthetics SDK फ़्रेमवर्क पर आधारित होना चाहिए. Cloud Monitoring, इस फ़्रेमवर्क को डिस्ट्रिब्यूट और मैनेज करता है.

Cloud Monitoring में, इस तरह की सिंथेटिक मॉनिटरिंग की जा सकती है:

इन सिंथेटिक मॉनिटर को लागू करने के दौरान, Cloud Monitoring कई मुश्किल काम करता है. यह कुकी इन कामों के लिए ज़िम्मेदार होती है:

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

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

6. इन्वेंट्री एपीआई के टेस्ट केस के लिए सिंथेटिक मॉनिटर लिखना

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

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

96bfce88f55442f3.png

ऊपर दिए गए पेज में, सिंथेटिक मॉनिटर बनाएं लिंक पर क्लिक करें. इससे नीचे दिखाया गया कॉन्फ़िगरेशन फ़ॉर्म खुल जाएगा:

af4dde3e9e0a5a16.png

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

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

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". 

ध्यान दें कि हमने तीन टेस्ट केस दिए हैं. आपको SERVICE_URL वैल्यू को अपनी सेवा के लिए, Cloud Run Service के असल नाम से बदलना होगा.

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

d19340c357f620bd.png

INSERT INTO CLOUD FUNCTION पर क्लिक करें. इससे Cloud Functions बनाने का फ़ॉर्म खुल जाएगा. इसमें आपके लिए ज़रूरी वैल्यू पहले से भरी होंगी.

d70e50624a09149a.png

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

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

1b07702ea5ac5bdb.png

Cloud Function को डिप्लॉय करने के बाद, Cloud Monitoring आपके लिए सिंथेटिक मॉनिटर को शुरू करने का काम शुरू कर देगा.

शुरुआत में आपको दिखेगा कि कोई भी इनवोकेशन नहीं है. जैसा कि यहां दिखाया गया है:

dac473269a289a3b.png

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

dc2d7dd98277fbcc.png

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

8369a02b413d12cc.png

7. बधाई हो!

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

8. रेफ़रंस दस्तावेज़