রাস্ট টেলিমেট্রি ক্লায়েন্ট লাইব্রেরি

টেলিমেট্রি ক্লায়েন্ট হলো এমন একটি অ্যাপ যা ডেটা সংগ্রহ কনফিগার করতে, মেট্রিক কনফিগারেশন পরিচালনা করতে এবং টেলিমেট্রি রিপোর্ট গ্রহণ করতে টেলিমেট্রি সার্ভিসের সাথে যোগাযোগ করে। ক্লায়েন্টরা সার্ভিসের সাথে যোগাযোগ করার জন্য libsdv_telemetry_rust_wrapper রাস্ট লাইব্রেরি ব্যবহার করে।

এপিআই পৃষ্ঠের সংক্ষিপ্ত বিবরণ

এপিআই ডকুমেন্টেশনের জন্য রাস্ট টেলিমেট্রি ক্লায়েন্ট লাইব্রেরির এপিআই রেফারেন্স দেখুন।

লাইব্রেরিটি অন্তর্নিহিত টেলিমেট্রি সার্ভিসের সাথে যোগাযোগের জন্য একটি রাস্ট ইন্টারফেস প্রদান করে। লাইব্রেরিটি নিম্নলিখিত ক্ষেত্রগুলির জন্য দায়ী:

  • পরিষেবা জীবনচক্র ব্যবস্থাপনা: টেলিমেট্রি পরিষেবার সংযোগ পরিচালনা করে।

    • প্রারম্ভিকীকরণ: একটি ব্লকিং কল ব্যবহার করে সার্ভিসের সাথে সংযোগ স্থাপন করে। সংযোগ স্থাপনের পর, আপনি সিস্টেমের অবস্থা এবং নতুন রিপোর্টের প্রাপ্যতা সম্পর্কে অ্যাসিঙ্ক্রোনাস নোটিফিকেশন পাওয়ার জন্য কলব্যাক রেজিস্টার করতে পারেন।
    • শাটডাউন: পরিষেবা থেকে সুষ্ঠুভাবে সংযোগ বিচ্ছিন্ন করার এবং এর সাথে যুক্ত সমস্ত রিসোর্স পরিষ্কার করার একটি উপায় প্রদান করে।
  • মেট্রিক্স কনফিগারেশন লাইফসাইকেল ম্যানেজমেন্ট: মেট্রিক্স কনফিগারেশনের লাইফসাইকেলের উপর নিয়ন্ত্রণ প্রদান করে।

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

    • বিজ্ঞপ্তি: যখনই কোনো নতুন মেট্রিক্স রিপোর্ট সংগ্রহের জন্য প্রস্তুত হয়, তখন একটি কলব্যাক ব্যবহার করে ক্লায়েন্টদের অ্যাসিঙ্ক্রোনাসভাবে অবহিত করে।
    • ডেটা অ্যাক্সেস: এর মাধ্যমে UUID ব্যবহার করে নির্দিষ্ট রিপোর্ট খুঁজে বের করা এবং উপলব্ধ সকল রিপোর্টের একটি তালিকা পাওয়ার পদ্ধতি রয়েছে।
  • অবস্থা ও ত্রুটি প্রতিবেদন: টেলিমেট্রি পরিষেবার স্বাস্থ্য ও অবস্থা সম্পর্কে অন্তর্দৃষ্টি প্রদান করে।

    • অ্যাসিঙ্ক্রোনাস স্ট্যাটাস আপডেট: ক্লায়েন্টরা একটি ডেডিকেটেড কলব্যাকের মাধ্যমে ত্রুটি এবং সতর্কতাসহ রিয়েল-টাইম স্ট্যাটাস আপডেট পায়। এটি আপনাকে শক্তিশালী ত্রুটি হ্যান্ডলিং বাস্তবায়ন করতে এবং সার্ভিসের অবস্থা নিরীক্ষণ করতে সাহায্য করে।

উদাহরণ ব্যবহার

সম্পূর্ণ জীবনচক্র প্রদর্শনকারী একটি পূর্ণাঙ্গ ও কম্পাইলযোগ্য অ্যাপের জন্য, নমুনা ক্লায়েন্ট ইমপ্লিমেন্টেশনটি দেখুন: samples/telemetry/client/rust/telemetry_client/telemetry_rust_c_client.rs

স্যাম্পল ক্লায়েন্টটি একটি কমান্ড-লাইন ইউটিলিটি যা সম্পূর্ণ লাইব্রেরি এপিআই-এর সাথে ইন্টারঅ্যাক্ট করে। এই স্যাম্পলটি দেখায় কিভাবে চ্যানেল ব্যবহার করে লাইব্রেরির কলব্যাক-ভিত্তিক ইন্টারফেসকে একটি অ্যাসিঙ্ক্রোনাস রাস্ট রানটাইম (টোকিও)-এর সাথে সংযুক্ত করা যায়।

ক্লায়েন্ট নিম্নলিখিত ক্রমানুসারে কার্যক্রমগুলো সম্পাদন করে:

  1. টেলিমেট্রি পরিষেবার সাথে একটি সংযোগ স্থাপন করে এবং স্ট্যাটাস আপডেট ও মেট্রিক্স রিপোর্ট নোটিফিকেশনের জন্য কলব্যাক নিবন্ধন করে।
  2. কমান্ড-লাইন আর্গুমেন্ট হিসেবে প্রদত্ত মেট্রিক্স কনফিগারেশন ফাইলগুলো পড়ে এবং তারপর সার্ভিসটিতে কনফিগারেশনগুলো যোগ ও সক্রিয় করে।
  3. সার্ভিস থেকে প্রাপ্ত অ্যাসিঙ্ক্রোনাস স্ট্যাটাস মেসেজ (ত্রুটি বা সতর্কতা) লগ করার জন্য একটি ব্যাকগ্রাউন্ড টাস্ক ব্যবহার করে।
  4. নিম্নলিখিত কাজগুলো সম্পাদনের মাধ্যমে ডেটা পুনরুদ্ধার চক্রটি পরিচালনা করে:
    • মেট্রিক্স রিপোর্ট প্রস্তুত হওয়ার বিজ্ঞপ্তির জন্য অপেক্ষা করে।
    • সম্পূর্ণ মেট্রিক্স রিপোর্টের ডেটা নিয়ে আসে।
    • ঐচ্ছিকভাবে রিপোর্টটি একটি বাইনারি প্রোটোকল বাফার ফাইল হিসেবে ডিস্কে লিখে রাখে।
  5. প্রথম মেট্রিক্স রিপোর্টটি তৈরি করার পর সার্ভিসটি থেকে মেট্রিক্স কনফিগারেশন মুছে ফেলে। উল্লেখ্য যে, এটি একটি ডেমো বাস্তবায়ন, এবং আপনার নিজস্ব ক্লায়েন্টরা যেকোনো সংখ্যক রিপোর্ট পেতে পারে।
  6. পরিষেবার সাথে সংযোগটি সুষ্ঠুভাবে বন্ধ করে দেয়।