মিথুন ব্যবহার করে আপনার পরিষেবার জন্য সিন্থেটিক মনিটরিং টেস্ট লেখা

1. ভূমিকা

এই কোডল্যাবে, আমরা আপনার বিদ্যমান পরিষেবাগুলির জন্য লেখকের সিন্থেটিক মনিটরিং টেস্টের জন্য হেল্প মি রাইট বৈশিষ্ট্যটি ব্যবহার করার দিকে নজর দেব।

তুমি কি করবে...

  • আপনি Google ক্লাউড রানে একটি API স্থাপন করবেন, যা আমাদের পরিষেবার ভিত্তি হিসাবে কাজ করবে যা আমরা পরীক্ষা করব।
  • তারপরে আপনি একটি সিন্থেটিক মনিটর লিখবেন, যা ক্লাউড মনিটরিংয়ের একটি বৈশিষ্ট্য।
  • সিন্থেটিক মনিটর লিখতে আপনি হেল্প মি রাইট বৈশিষ্ট্যটি ব্যবহার করবেন।

যা শিখবেন...

  • সিন্থেটিক মনিটরিং কি।
  • সিন্থেটিক মনিটরিং-এ Gemini's Help me Write ফিচারটি কীভাবে ব্যবহার করবেন, পরীক্ষার ক্ষেত্রে লেখকের জন্য যা মূল পরিষেবা কার্যকারিতা যাচাই করবে।

আপনার যা লাগবে...

  • ক্রোম ওয়েব ব্রাউজার
  • একটি জিমেইল অ্যাকাউন্ট
  • বিলিং সক্ষম সহ একটি ক্লাউড প্রকল্প৷
  • আপনার ক্লাউড প্রজেক্টের জন্য জেমিনি কোড অ্যাসিস্ট সক্ষম করা হয়েছে

এই ল্যাবটি নতুনদের সহ সকল স্তরের বিকাশকারীদের লক্ষ্য করে। যদিও নমুনা অ্যাপ্লিকেশনটি পাইথন ভাষায়, তবে কী ঘটছে তা বোঝার জন্য আপনাকে পাইথন প্রোগ্রামিংয়ের সাথে পরিচিত হওয়ার দরকার নেই।

2. সেটআপ

আমরা এখন আমাদের Google ক্লাউড প্রকল্পে ক্লাউডের জন্য জেমিনি সক্ষম করব৷ নিচে দেওয়া ধাপগুলো অনুসরণ করুন:

  1. https://console.cloud.google.com- এ যান এবং নিশ্চিত করুন যে আপনি Google ক্লাউড প্রকল্পটি নির্বাচন করেছেন যেটির সাথে আপনি এই ল্যাবের জন্য কাজ করার পরিকল্পনা করছেন৷ আপনি উপরের ডানদিকে দেখতে পাচ্ছেন ওপেন মিথুন আইকনে ক্লিক করুন।

28f084ec1e159938.png

  1. ক্লাউড চ্যাট উইন্ডোর জন্য জেমিনি কনসোলের ডানদিকে খুলবে। নিচের মত Enable বাটনে ক্লিক করুন। আপনি যদি সক্ষম বোতামটি দেখতে না পান এবং পরিবর্তে একটি চ্যাট ইন্টারফেস দেখতে পান, তাহলে সম্ভবত আপনি ইতিমধ্যেই প্রকল্পের জন্য ক্লাউডের জন্য জেমিনি সক্ষম করেছেন এবং আপনি সরাসরি পরবর্তী ধাপে যেতে পারেন৷

e8df9adc4ea43a37.png

  1. একবার এটি সক্ষম হয়ে গেলে, আপনি ক্লাউডের জন্য জেমিনিকে একটি বা দুটি প্রশ্ন জিজ্ঞাসা করে পরীক্ষা করতে পারেন। কিছু নমুনা প্রশ্ন দেখানো হয়েছে কিন্তু আপনি নিম্নলিখিত ক্যোয়ারী চেষ্টা করতে পারেন What is Synthetic Monitoring?

9859ea86a8310cb.png

মেঘের জন্য মিথুন আপনার প্রশ্নের উত্তর দেবে। আপনি কিভাবে Google ক্লাউডে সিন্থেটিক মনিটর লিখতে পারেন তার উপর দেওয়া রেফারেন্স ডকুমেন্টেশনের তালিকাটি দেখুন।

আপনি ক্লিক করতে পারেন f68286b2b2ea5c0a.png ক্লাউড চ্যাট উইন্ডোর জন্য জেমিনি বন্ধ করতে উপরের ডান কোণায় আইকন।

3. Google ক্লাউড রানে একটি নমুনা ইনভেন্টরি API স্থাপন করুন৷

আমরা পরীক্ষার সাথে লেখার আগে, আমাদের একটি নমুনা API প্রয়োজন যা আমরা পরীক্ষা করতে পারি। এর জন্য, আমরা একটি সাধারণ ইনভেন্টরি API লিখব যা আমরা Google Cloud Run- এ স্থাপন করব।

আমরা ক্লাউড শেল IDE ব্যবহার করব, একটি সম্পূর্ণ-পরিচালিত কোড OSS- ভিত্তিক উন্নয়ন পরিবেশ। পরিবেশটি ক্লাউড কোড IDE এক্সটেনশনের সাথে আসে যা Google ক্লাউড পরিষেবাগুলির সাথে কাজকে দক্ষ করে তোলে৷ নিচে দেওয়া ধাপগুলো অনুসরণ করুন:

  1. ide.cloud.google.com এ যান। IDE প্রদর্শিত হতে কিছু সময় লাগতে পারে, তাই ধৈর্য ধরুন।
  2. ক্লাউড কোডে ক্লিক করুন - দেখানো হিসাবে নীচের স্ট্যাটাস বারে সাইন ইন বোতাম। নির্দেশিত হিসাবে প্লাগইন অনুমোদন করুন. আপনি যদি স্ট্যাটাস বারে "ক্লাউড কোড - কোনও প্রকল্প নেই" দেখতে পান, তাহলে সেটি নির্বাচন করুন এবং তারপরে আপনি যে প্রকল্পগুলির সাথে কাজ করার পরিকল্পনা করছেন তার তালিকা থেকে নির্দিষ্ট Google ক্লাউড প্রকল্পটি নির্বাচন করুন৷

6f5ce865fc7a3ef5.png

  1. দেখানো হিসাবে নীচের ডানদিকের কোণায় জেমিনি বোতামে ক্লিক করুন এবং শেষবারের মতো সঠিক Google ক্লাউড প্রকল্পটি নির্বাচন করুন৷ যদি আপনাকে Cloud AI Companion API সক্ষম করতে বলা হয়, অনুগ্রহ করে তা করুন এবং এগিয়ে যান।
  2. একবার আপনি আপনার Google ক্লাউড প্রকল্প নির্বাচন করার পরে, নিশ্চিত করুন যে আপনি স্ট্যাটাস বারে ক্লাউড কোড স্ট্যাটাস মেসেজে দেখতে পাচ্ছেন এবং নীচে দেখানো স্ট্যাটাস বারে আপনার ডানদিকে কোড অ্যাসিস্ট সক্ষম করা আছে:

709e6c8248ac7d88.png

  1. নীচের স্ট্যাটাস বারে Google ক্লাউড প্রকল্পের নামে ক্লিক করুন।

f151759c156c124e.png

  1. বিকল্পগুলির একটি তালিকা প্রদর্শিত হবে। নিচের তালিকা থেকে New Application এ ক্লিক করুন।

91ea9836f38b7f74.png

  1. ক্লাউড রান অ্যাপ্লিকেশন নির্বাচন করুন।
  2. পাইথন (ফ্লাস্ক) নির্বাচন করুন: ক্লাউড রান অ্যাপ্লিকেশন টেমপ্লেট।
  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. ক্লাউড রানে ইনভেন্টরি API মোতায়েন করার সময়। উপরের বামে মেনু আইকনের মাধ্যমে আমাদের ক্লাউড শেল IDE থেকে একটি নতুন টার্মিনাল সেশন চালু করতে হবে। মেনু আইকনে ক্লিক করুন এবং তারপরে টার্মিনাল → নিউ টার্মিনাল নীচে দেখানো হিসাবে ক্লিক করুন:

289173c68f1addb5.png

  1. টার্মিনাল সেশনে, নিম্নলিখিত কমান্ড দিন:
gcloud run deploy --source .
  1. উপরের কমান্ডটি মোতায়েন করার জন্য একটি region সম্পর্কে জিজ্ঞাসা করবে, অনুগ্রহ করে us-central1 নির্বাচন করুন। এটি unauthenticated invocations অনুমতি দেওয়ার জন্য জিজ্ঞাসা করবে, দয়া করে y বলে অনুমতি দিন।
  2. একবার পরিষেবাটি সফলভাবে স্থাপন করা হলে, এটি একটি পরিষেবা URL প্রদান করবে। নিচে যে নোট.

4. ইনভেন্টরি API পরীক্ষা করুন

আপনি এখন ইনভেন্টরি API পরীক্ষা করতে পারেন, ব্রাউজারটি চালু করে এবং নিম্নলিখিত শেষ পয়েন্টগুলিতে আঘাত করে:

SERVICE_URL/inventory

পরিষেবার নমুনা ডেটা অনুযায়ী এটি আপনাকে 3টি ইনভেন্টরি আইটেম ফেরত দেবে। নমুনা প্রতিক্রিয়া নীচে দেওয়া হল:

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

আমরা এখন নীচের URL এর মাধ্যমে একটি নির্দিষ্ট ইনভেন্টরি আইটেম পুনরুদ্ধার করতে পারি৷ এটি আপনাকে ইনভেন্টরি আইটেমটি ফেরত দেবে যার id মান 1 আছে।

SERVICE_URL/inventory/1

প্রতিক্রিয়া অনুরূপ হওয়া উচিত:

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

অবশেষে, আমরা একটি ইনভেন্টরি আইটেম পুনরুদ্ধার করার চেষ্টা করতে পারি যা বিদ্যমান নেই।

SERVICE_URL/inventory/200

এটি আপনাকে একটি ত্রুটির বার্তা দেবে কারণ 200 id মান সহ কোনও ইনভেন্টরি আইটেম নেই৷ প্রতিক্রিয়াটি নিম্নলিখিতগুলির মতো হওয়া উচিত:

{
  "error": "Item not found"
}

আমরা এখন জেমিনীর সাহায্যে ক্লাউড মনিটরিং-এ আমাদের সিন্থেটিক মনিটরিং টেস্ট লিখতে প্রস্তুত।

5. গুগল ক্লাউডে সিন্থেটিক মনিটরিং

ডকুমেন্টেশনে বলা হয়েছে, সিন্থেটিক মনিটর আপনাকে নির্ধারণ করতে দেয় আপনি কী পরীক্ষা করতে যাচ্ছেন এবং পরীক্ষার একটি ক্রম। উদাহরণস্বরূপ, আপনি আপনার অ্যাপ্লিকেশনের লগইন পৃষ্ঠা, আপনার ইকমার্স স্টোরের চেকআউট প্রক্রিয়া বা আপনার অ্যাপ্লিকেশন তৃতীয় পক্ষের পরিষেবাগুলিতে যে API কলগুলি করে তা পরীক্ষা করতে পারেন৷

আপনি যখন একটি সিন্থেটিক মনিটর তৈরি করেন, তখন আপনি একটি 2nd gen ক্লাউড ফাংশন স্থাপন করেন যা Cloud Run- এ নির্মিত। আপনার ফাংশন অবশ্যই Node.js-এ লিখতে হবে এবং ওপেন সোর্স সিনথেটিক্স SDK ফ্রেমওয়ার্কের উপর নির্ভর করতে হবে। ক্লাউড মনিটরিং এই কাঠামো বিতরণ এবং পরিচালনা করে।

ক্লাউড মনিটরিং নিম্নলিখিত ধরণের সিন্থেটিক মনিটর সমর্থন করে:

ক্লাউড মনিটরিং এই সিন্থেটিক মনিটরগুলি চালানোর সময় প্রচুর ভারী উত্তোলন করে। এটি এর জন্য দায়ী:

  • আপনার ক্লাউড ফাংশনের পর্যায়ক্রমিক সঞ্চালন।
  • প্রতিটি মৃত্যুদন্ডের ফলাফল সংগ্রহ এবং সংরক্ষণ করা:
  • সাফল্য এবং ব্যর্থতার তথ্য, যেমন ত্রুটি বার্তা, ত্রুটির ধরন এবং কোডের লাইন
  • মৃত্যুদন্ড কার্যকর করার সময়
  • লগ
  • মেট্রিক্স

আমরা জেমিনির সাহায্য নিতে যাচ্ছি এবং বিশেষ করে Help Me Write ফিচার যা আমাদের পরীক্ষার জন্য প্রাথমিক কোড প্রদান করবে, যাতে আমরা এটি পরীক্ষা করার জন্য ব্যবহার করতে পারি এবং এর উপরে অতিরিক্ত বৈশিষ্ট্যও তৈরি করতে পারি। চলুন শুরু করা যাক.

6. ইনভেন্টরি API পরীক্ষার ক্ষেত্রে আমাদের সিন্থেটিক মনিটর লেখা

আমরা এখন আমাদের সিন্থেটিক মনিটর লিখতে ক্লাউড কনসোলে যাচ্ছি।

ক্লাউড কনসোলে সিন্থেটিক মনিটরিং পৃষ্ঠায় যান। এটি নীচে দেখানো পৃষ্ঠাটি নিয়ে আসবে:

96bfce88f55442f3.png

উপরের পেজে CREATE SYNTHETIC MONITOR লিঙ্কে ক্লিক করুন। এটি নীচে দেখানো হিসাবে একটি কনফিগারেশন ফর্ম আনবে:

af4dde3e9e0a5a16.png

আমরা একটি নাম s1 প্রদান করেছি, কিন্তু আপনি অন্য কোনো নাম বেছে নিতে পারেন। উপরের স্ক্রিনে HELP ME CODE বোতামটি লক্ষ্য করুন। তাতে ক্লিক করুন।

এটি একটি পপআপ নিয়ে আসবে যেখানে আপনাকে প্রম্পট দিতে হবে যা পরীক্ষার ক্ষেত্রে বর্ণনা করে যা আপনি ইনভেন্টরি 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 মান প্রতিস্থাপন করা উচিত৷

একবার আপনি জেনারেট এ ক্লিক করলে, জেমিনি টেস্ট স্যুট কোড এবং নীচে দেখানো হিসাবে package.json ফাইল তৈরি করবে। আপনার জন্য জেনারেট করা কোডটি আপনি নীচের কোড থেকে আলাদা হতে পারে। package.json ফাইলে কোড এবং নির্ভরতা ফাইলগুলো দেখে নিন।

d19340c357f620bd.png

INSERT INTO Cloud FUNCTION- এ ক্লিক করুন। এটি আপনার জন্য প্রয়োজনীয় মানগুলি সহ একটি ক্লাউড ফাংশন তৈরির ফর্ম আনবে৷

d70e50624a09149a.png

APPLY FUNCTION- এ ক্লিক করুন এবং তারপর CREATE বাটনে ক্লিক করুন। আমরা এই উদাহরণে কোনো সতর্কতা চ্যানেল কনফিগারেশন নির্বাচন করিনি কিন্তু আপনি এটি নির্বাচন করতে স্বাধীন।

এটি পটভূমিতে Google ক্লাউড ফাংশন তৈরির প্রক্রিয়া শুরু করবে। এটি কয়েক মিনিট সময় নিতে পারে, তাই ধৈর্য ধরুন।

1b07702ea5ac5bdb.png

একবার ক্লাউড ফাংশন সফলভাবে স্থাপন করা হলে, ক্লাউড মনিটরিং আপনার জন্য সিন্থেটিক মনিটর আহ্বান করার কাজ শুরু করবে।

শুরুতে আপনি দেখতে পাবেন যে কোন আহ্বান নেই, যেমনটি নীচে দেখানো হয়েছে:

dac473269a289a3b.png

একবার নির্দিষ্ট রান হয়ে গেলে, আপনি বিভিন্ন মৃত্যুদন্ড দেখতে সক্ষম হবেন। নীচের স্ক্রীনটি দেখায় যে পরীক্ষাগুলি পাস হচ্ছে:

dc2d7dd98277fbcc.png

আপনি যদি সিন্থেটিক মনিটর নামের (যেমন s1) উপর ক্লিক করেন তবে এটি নীচে দেখানো বিভিন্ন এক্সিকিউশনগুলি দেখাবে:

8369a02b413d12cc.png

7. অভিনন্দন!

অভিনন্দন - আপনি Google ক্লাউড রানে একটি নমুনা API সফলভাবে স্থাপন করেছেন এবং পরিষেবাটির কার্যকারিতা যাচাই করতে সিন্থেটিক মনিটরিং পরীক্ষা লিখেছেন৷ প্রক্রিয়া চলাকালীন, আপনি টেস্ট স্যুটের কোড তৈরি করতে সাহায্য করার জন্য জেমিনি ব্যবহার করেছেন।

8. রেফারেন্স ডক্স