Observability (software)
ডিস্ট্রিবিউটেড সিস্টেমে, পর্যবেক্ষণযোগ্যতা হল প্রোগ্রামগুলির কার্যকারিতা, মডিউলগুলির অভ্যন্তরীণ অবস্থা এবং উপাদানগুলির মধ্যে যোগাযোগ সম্পর্কে তথ্য সংগ্রহ করার ক্ষমতা। পর্যবেক্ষণযোগ্যতা উন্নত করতে, সফ্টওয়্যার ইঞ্জিনিয়াররা টেলিমেট্রি তথ্য সংগ্রহ করতে এবং এটি বিশ্লেষণ ও ব্যবহার করার জন্য সরঞ্জামগুলি সংগ্রহ করতে বিস্তৃত লগিং এবং ট্রেসিং কৌশল ব্যবহার করেন। পর্যবেক্ষণযোগ্যতা সাইট নির্ভরযোগ্যতা প্রকৌশলের ভিত্তি, কারণ এটি একটি পরিষেবা বিভ্রাট পরীক্ষা করার প্রথম পদক্ষেপ। পর্যবেক্ষণযোগ্যতার লক্ষ্যগুলির মধ্যে একটি হল কোনও সমস্যা ডিবাগ করার জন্য প্রয়োজনীয় পূর্বের জ্ঞানের পরিমাণ হ্রাস করা। ব্যুৎপত্তি, পরিভাষা এবং সংজ্ঞা এই শব্দটি নিয়ন্ত্রণ তত্ত্ব থেকে ধার করা হয়েছে, যেখানে একটি সিস্টেমের "পর্যবেক্ষণযোগ্যতা" পরিমাপ করে যে তার আউটপুট থেকে তার অবস্থা কতটা ভালভাবে নির্ধারণ করা যেতে পারে। একইভাবে, সফ্টওয়্যার পর্যবেক্ষণযোগ্যতা পরিমাপ করে যে প্রাপ্ত টেলিমেট্রি (মেট্রিক, লগ, ট্রেস, প্রোফাইলিং) থেকে একটি সিস্টেমের অবস্থা কতটা ভালভাবে বোঝা যায়। পর্যবেক্ষণযোগ্যতার সংজ্ঞা বিক্রেতার দ্বারা পরিবর্তিত হয়ঃ শব্দটিকে প্রায়শই এর সংখ্যা O11y হিসাবে উল্লেখ করা হয় (যেখানে 11 শব্দের প্রথম অক্ষর এবং শেষ অক্ষরের মধ্যে অক্ষরের সংখ্যাকে বোঝায়)। এটি অন্যান্য কম্পিউটার বিজ্ঞানের সংক্ষেপে যেমন i18n এবং L10n এবং k8s-এর অনুরূপ। পর্যবেক্ষণযোগ্যতা বনাম পর্যবেক্ষণযোগ্যতা এবং পর্যবেক্ষণ কখনও কখনও বিনিময়যোগ্যভাবে ব্যবহৃত হয়। টুলিং, বাণিজ্যিক অফার এবং অনুশীলনগুলি জটিলতার সাথে বিকশিত হওয়ার সাথে সাথে পুরানো থেকে নতুন সরঞ্জামগুলিকে আলাদা করার জন্য "পর্যবেক্ষণ" কে পর্যবেক্ষণযোগ্যতা হিসাবে পুনরায় ব্র্যান্ড করা হয়েছিল। শর্তাবলী সাধারণত বিপরীত হয় যে সিস্টেমগুলি টেলিমেট্রির পূর্বনির্ধারিত সেট ব্যবহার করে পর্যবেক্ষণ করা হয় এবং পর্যবেক্ষিত সিস্টেমগুলি পর্যবেক্ষণযোগ্য হতে পারে। মেজর এবং অন্যান্য। যে ইঞ্জিনিয়ারিং দলগুলির শুধুমাত্র পর্যবেক্ষণের সরঞ্জাম রয়েছে তারা বিশেষজ্ঞ পূর্বজ্ঞানের (জ্যেষ্ঠতা) উপর নির্ভর করে, যেখানে পর্যবেক্ষণের সরঞ্জাম রয়েছে এমন দলগুলি অনুসন্ধানমূলক বিশ্লেষণের (কৌতূহল) উপর নির্ভর করে। টেলিমেট্রি প্রকার পর্যবেক্ষণযোগ্যতা তিনটি প্রধান ধরনের টেলিমেট্রি তথ্যের উপর নির্ভর করেঃ মেট্রিক্স, লগ এবং ট্রেস। এগুলিকে প্রায়শই "পর্যবেক্ষণের স্তম্ভ" হিসাবে উল্লেখ করা হয়। মেট্রিক হল সময় পরিমাপের একটি বিন্দু (স্কেলার) যা কিছু সিস্টেম অবস্থার প্রতিনিধিত্ব করে। সাধারণ পরিমাপের উদাহরণগুলির মধ্যে রয়েছেঃ প্রতি সেকেন্ডে এইচটিটিপি অনুরোধের সংখ্যা; প্রশ্ন ব্যর্থতার মোট সংখ্যা; ডাটাবেসের আকার বাইটে; শেষ আবর্জনা সংগ্রহের পর থেকে সেকেন্ডে সময়। পর্যবেক্ষণ সরঞ্জামগুলি সাধারণত সতর্কতা নির্গত করার জন্য কনফিগার করা হয় যখন নির্দিষ্ট মেট্রিক মানগুলি নির্ধারিত সীমা অতিক্রম করে। স্বাভাবিক পরিচালন পরিস্থিতি এবং অভিজ্ঞতা সম্পর্কে জ্ঞানের উপর ভিত্তি করে সীমা নির্ধারণ করা হয়। মেট্রিক্স সাধারণত গ্রুপিং এবং অনুসন্ধানযোগ্যতার সুবিধার্থে ট্যাগ করা হয়। অ্যাপ্লিকেশন ডেভেলপাররা তাদের সফ্টওয়্যারটি প্রকাশের আগে কোন ধরনের মেট্রিক্স ব্যবহার করবে তা বেছে নেয়। ফলস্বরূপ, যখন পূর্বে অজানা কোনও সমস্যার সম্মুখীন হয়, তখন নতুন কোড না পাঠিয়ে নতুন মেট্রিক্স যোগ করা অসম্ভব। উপরন্তু, তাদের কার্ডিনালিটি দ্রুত টেলিমেট্রি ডেটা সংরক্ষণের আকারকে নিষিদ্ধভাবে ব্যয়বহুল করে তুলতে পারে। যেহেতু মেট্রিক্সগুলি কার্ডিনালিটি-সীমাবদ্ধ, তাই এগুলি প্রায়শই সামগ্রিক মানগুলি উপস্থাপন করতে ব্যবহৃত হয় (উদাহরণস্বরূপঃ গড় পৃষ্ঠা লোড সময়, বা অনুরোধ হারের 5-সেকেন্ড গড়)। বাহ্যিক প্রসঙ্গ ছাড়া, ঘটনা (যেমন ব্যবহারকারীর অনুরোধ) এবং স্বতন্ত্র মেট্রিক মানগুলির মধ্যে সম্পর্ক স্থাপন করা অসম্ভব। লগ লগ, বা লগ লাইন, সাধারণত মুক্ত-ফর্ম, কাঠামোগত পাঠ্য ব্লব যা মানুষের পাঠযোগ্য হওয়ার উদ্দেশ্যে করা হয়। মেশিন পার্সেবিলিটি সক্ষম করার জন্য আধুনিক লগিং কাঠামোগত। মেট্রিক্সের মতো, একজন অ্যাপ্লিকেশন ডেভেলপারকে অবশ্যই অ্যাপ্লিকেশনটিকে আগে থেকে "ইন্সট্রুমেন্ট" করতে হবে এবং বিভিন্ন লগিং তথ্যের প্রয়োজন হলে নতুন কোড পাঠাতে হবে। লগগুলিতে সাধারণত একটি টাইমস্ট্যাম্প এবং তীব্রতা স্তর অন্তর্ভুক্ত থাকে। একটি ইভেন্ট (যেমন একটি ব্যবহারকারীর অনুরোধ) একাধিক লগ লাইন জুড়ে বিভক্ত হতে পারে এবং সমবর্তী ইভেন্টগুলির লগগুলির সাথে ইন্টারওয়েভ হতে পারে। ট্রেস ডিস্ট্রিবিউটেড ট্রেস একটি ক্লাউড নেটিভ অ্যাপ্লিকেশন সাধারণত ডিস্ট্রিবিউটেড পরিষেবাগুলির সমন্বয়ে গঠিত যা একসাথে একটি একক অনুরোধ পূরণ করে। একটি ডিস্ট্রিবিউটেড ট্রেস হল বিচ্ছিন্ন ঘটনাগুলির একটি আন্তঃসম্পর্কিত সিরিজ (যাকে স্প্যানও বলা হয়) যা একক ব্যবহারকারীর অনুরোধের অগ্রগতি ট্র্যাক করে। একটি ট্রেস কোনও অনুরোধ পূরণের জন্য আন্তঃক্রিয়াশীল পরিষেবাগুলির মধ্যে কার্যকারণ এবং সাময়িক সম্পর্ক দেখায়। ট্রেস সহ একটি অ্যাপ্লিকেশন ইন্সট্রুমেন্ট করার অর্থ হল একটি ট্রেসিং ব্যাকএন্ডে স্প্যান তথ্য পাঠানো। ট্রেসিং ব্যাকএন্ড উপস্থাপনযোগ্য ট্রেস তৈরি করতে প্রাপ্ত স্প্যানগুলির সাথে সম্পর্কযুক্ত। একাধিক পরিষেবা অতিক্রম করার সময় একটি অনুরোধ অনুসরণ করতে সক্ষম হওয়ার জন্য, স্প্যানগুলিকে অনন্য শনাক্তকারী দিয়ে লেবেল করা হয় যা স্প্যানগুলির মধ্যে পিতামাতা-সন্তানের সম্পর্ক গড়ে তুলতে সক্ষম করে। স্প্যান তথ্য সাধারণত আউটবাউন্ড অনুরোধের এইচটিটিপি হেডারে ভাগ করা হয়। কন্টিনিউয়াস প্রোফাইলিং হল আরেকটি টেলিমেট্রি প্রকার যা একটি অ্যাপ্লিকেশন কীভাবে সম্পদ ব্যবহার করে তা সঠিকভাবে নির্ধারণ করতে ব্যবহৃত হয়। যন্ত্রপাতি একটি অ্যাপ্লিকেশন পর্যবেক্ষণ করতে সক্ষম হওয়ার জন্য, অ্যাপ্লিকেশনটির আচরণ সম্পর্কে টেলিমেট্রি সংগ্রহ বা রপ্তানি করা প্রয়োজন। যন্ত্রের অর্থ অ্যাপ্লিকেশনটির স্বাভাবিক ক্রিয়াকলাপের পাশাপাশি টেলিমেট্রি তৈরি করা। টেলিমেট্রি তারপর পরবর্তী বিশ্লেষণের জন্য একটি স্বাধীন ব্যাকএন্ড দ্বারা সংগ্রহ করা হয়। যন্ত্রপাতি স্বয়ংক্রিয় বা কাস্টম হতে পারে। স্বয়ংক্রিয় যন্ত্রপাতি কম্বল আচ্ছাদন এবং তাৎক্ষণিক মূল্য প্রদান করে; কাস্টম যন্ত্রপাতি উচ্চতর মূল্য নিয়ে আসে তবে যন্ত্রযুক্ত প্রয়োগের সাথে আরও ঘনিষ্ঠ সম্পৃক্ততার প্রয়োজন হয়। ইন্সট্রুমেন্টেশন নেটিভ হতে পারে-ইন-কোড করা (ইন্সট্রুমেন্টেড অ্যাপ্লিকেশনের কোড পরিবর্তন করা)-অথবা আউট-অফ-কোড (যেমন। সাইডকার, ইবিপিএফ)। উৎপাদনের নতুন বৈশিষ্ট্যগুলি কাস্টম ইন্সট্রুমেন্টেশনের সাথে একসাথে পাঠানোর মাধ্যমে যাচাই করা একটি অনুশীলন যাকে "পর্যবেক্ষণ-চালিত উন্নয়ন" বলা হয়। "পর্যবেক্ষণযোগ্যতার স্তম্ভ" মেট্রিক্স, লগ এবং ট্রেসগুলি সাধারণত পর্যবেক্ষণযোগ্যতার স্তম্ভ হিসাবে তালিকাভুক্ত করা হয়। মেজর এবং অন্যান্য। পর্যবেক্ষণযোগ্যতার স্তম্ভগুলি উচ্চ কার্ডিনালিটি, উচ্চ-মাত্রিকতা এবং অন্বেষণযোগ্যতা, যুক্তি দেয় যে রানবুক এবং ড্যাশবোর্ডগুলির খুব কম মূল্য রয়েছে কারণ "আধুনিক সিস্টেমগুলি খুব কমই একইভাবে দু 'বার ব্যর্থ হয়"। স্ব-পর্যবেক্ষণ একটি অনুশীলন যেখানে পর্যবেক্ষণযোগ্য স্ট্যাকগুলি একে অপরকে পর্যবেক্ষণ করে, যাতে অস্পষ্ট বিভ্রাটের ঝুঁকি হ্রাস করা যায়। পারস্পরিক ব্যর্থতা এড়াতে উচ্চ প্রাপ্যতা এবং অপ্রয়োজনীয়তা ছাড়াও স্ব-পর্যবেক্ষণ স্থাপন করা যেতে পারে। আরও দেখুন অ্যাপ্লিকেশন পারফরম্যান্স ম্যানেজমেন্ট (এপিএম) ওপেন টেলিমেট্রি (ওটেল) রিয়েল ইউজার মনিটরিং (আরইউএম) সিন্থেটিক মনিটরিং ডিভোপস সাইট রিলায়েবিলিটি ইঞ্জিনিয়ারিং (এসআরই) সোসিওটেকনিক্যাল সিস্টেম এক্সটার্নাল লিঙ্ক সিএনসিএফ অবজারভেবিলিটি টেকনিক্যাল অ্যাডভাইজারি গ্রুপ (টিএজি) গ্রন্থপঞ্জি রেফারেন্স ডিস্ট্রিবিউটেড কম্পিউটিং