কম্পিউটার

রুবি নিরীক্ষণের সবচেয়ে সহজ উপায়:স্বয়ংক্রিয় যন্ত্র

আপনার অ্যাপ্লিকেশনের কর্মক্ষমতার উপর একটি সঠিক পর্যবেক্ষণ ওভারভিউ সেট আপ করা একটি জটিল কাজ। সাধারণত, আপনাকে প্রথমে কি নিরীক্ষণ করতে হবে তা বের করতে হবে, তারপরে আপনার কোড যন্ত্র তৈরি করতে হবে এবং অবশেষে নির্গত সমস্ত ডেটা বোঝাতে হবে।

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

স্বয়ংক্রিয় ইন্সট্রুমেন্টেশন - হ্যান্ডসফ্রি APM সেটআপ

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

AppSignal-এর স্বয়ংক্রিয় ইন্সট্রুমেন্টেশনের সাহায্যে, আমরা যতটা সম্ভব ম্যানুয়াল কাজ সরিয়ে নিই। CLI এর মাধ্যমে কয়েকটি কমান্ড চালান, এবং আপনি সেট হয়ে যাবেন।

আমাদের মনিটরিং এজেন্ট আপনার পরিকাঠামোর বিভিন্ন অংশ শনাক্ত করে এবং স্বয়ংক্রিয়ভাবে এটিকে যন্ত্র তৈরি করে। এটি অ্যাপসিগন্যাল অ্যাপকে আপনার সবচেয়ে বেশি প্রয়োজন এমন গ্রাফ এবং ড্যাশবোর্ডগুলিকে হজম করতে, প্রক্রিয়া করতে, নিরীক্ষণ করতে এবং দেখাতে সক্ষম করে৷

এর মানে হল যে রুবির জন্য গ্রাফকিএল জেমের জন্য, অ্যাপসিগন্যাল প্রতিটি গ্রাফকিউএল অনুরোধের জন্য ইন্সট্রুমেন্ট করবে, যার অর্থ এটি অনুরোধের সমস্ত ইভেন্টের ব্রেকডাউন প্রদান করবে।

আউট-অফ-দ্য-বক্স ইন্সট্রুমেন্টেশন

আমরা অ্যাপসিগন্যাল সমর্থন করে এমন সমস্ত সরঞ্জামগুলির একটি তালিকা তৈরি করেছি৷ এটি বেশ বিস্তৃত:

৷ ৷ ৷ ৷ ৷
প্রকার সরঞ্জাম
ফ্রেমওয়ার্ক রেল
রেলের বৈশিষ্ট্যগুলিঅ্যাকশন মেইলার
রেলের বৈশিষ্ট্যগুলিঅ্যাকশন ক্যাবল
রেলের বৈশিষ্ট্যগুলিসক্রিয় রেকর্ড
রেলের বৈশিষ্ট্যগুলিসক্রিয় চাকরি
রেলের বৈশিষ্ট্যগুলিক্যাশিং
ActiveRecord এর মাধ্যমে সমর্থিত PostgreSQL, MySQL, SQLite, ইত্যাদি।
Heroku ইন্টিগ্রেশন Heroku PostgreSQL
ফ্রেমওয়ার্ক প্যাড্রিনো
ফ্রেমওয়ার্ক সিনাত্রা
রত্ন র্যাক
রত্ন ওয়েবমেশিন
ওয়েব সার্ভার পুমা
ওয়েব সার্ভার ইউনিকর্ন
ORM ডেটাম্যাপার
ORM সিক্যুয়েল
ORM MongoDB
API আঙ্গুর
API গ্রাফকিউএল
স্ট্যান্ডার্ড লাইব্রেরি নেট::HTTP
ব্যাকগ্রাউন্ড জব Que
ব্যাকগ্রাউন্ড জব Sidekiq
ব্যাকগ্রাউন্ড জব বিলম্বিত চাকরি
ব্যাকগ্রাউন্ড জব উত্তর
ব্যাকগ্রাউন্ড জব Shoryuken
রত্ন রেক

আমি যেমন বলেছি, তালিকাটি বেশ দীর্ঘ, তাই আমরা এই পোস্টের প্রতিটি টুলের মধ্যে ডুব দেব না।

ওয়েব ফ্রেমওয়ার্ক এবং APIs

AppSignal Ruby on Rails, Padrino, এবং Sinatra-এ ওয়েব রিকোয়েস্টের ইনস্ট্রুমেন্টেশন সমর্থন করে। Grape বা GraphQL রত্ন ব্যবহার করে APIগুলিও সমর্থিত৷

রুবি অন রেল

Rails এর জন্য AppSignal ইন্টিগ্রেশন অনুরোধে ব্যতিক্রম এবং কর্মক্ষমতা ট্র্যাক করে কাজ করে। একটি অনুরোধের সময় একটি নিয়ামকের মধ্যে একটি ত্রুটি ঘটলে AppSignal এটি রিপোর্ট করবে। পারফরম্যান্সের সমস্যাগুলি অনুরোধের সময়কালের উপর ভিত্তি করে এবং অ্যাপ্লিকেশনটির কোন অংশগুলি সবচেয়ে বেশি সময় নিয়েছিল তা বর্ণনা করে ইভেন্টগুলির একটি টাইমলাইন তৈরি করবে৷

ওয়েব সার্ভারের লোডব্যালেন্সারের মাধ্যমে Rails অ্যাপে HTTP অনুরোধ আসতে কতক্ষণ সময় লেগেছে তা ট্র্যাক করাও সম্ভব। যদি এটি ডিফল্টরূপে চালু না থাকে, অনুরোধ সারি সময় ট্র্যাকিং শিরোনাম সেট আপ করুন এবং AppSignal স্বয়ংক্রিয়ভাবে সারির সময় গ্রাফ করবে৷

গ্রাফকিউএল

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

যারা GraphQL কোয়েরি ডিবাগ করতে চান তাদের জন্য এটি দুর্দান্ত যেটি মনে হয় অনেক সময় নেয় এবং আপনি নিশ্চিত নন যে কোথায় স্লোডাউন ঘটতে পারে। এখানেও আমাদের অসঙ্গতি ট্রিগারগুলি সম্পর্কে ভুলবেন না - যখন ক্যোয়ারী সময় একটি নির্দিষ্ট থ্রেশহোল্ডে পৌঁছায় তখন সতর্ক করার জন্য এগুলি খুব কার্যকর হতে পারে৷

সিনাট্রা, প্যাড্রিনো এবং গ্রেপ

Sinatra, Padrino এবং Grape হল রুবির জন্য ওয়েব এবং API ফ্রেমওয়ার্ক যা বিভিন্ন উপায়ে একটি অ্যাপের অংশ হতে পারে। এগুলি হয় একটি স্বতন্ত্র অ্যাপ বা একটি বড় রেল অ্যাপে মাউন্ট করা হয়৷ একটি ওয়েব সার্ভারে অ্যাপটি কীভাবে মাউন্ট করা হয় তার উপর নির্ভর করে সিনাট্রা, প্যাড্রিনো এবং গ্রেপের জন্য কিছু ভিন্ন ইনস্টলেশন ধাপ প্রয়োজন।

একবার ইনস্টল হয়ে গেলে সিনাত্রা, প্যাড্রিনো, গ্রেপের অনুরোধগুলি সমস্ত উপকরণযুক্ত:ট্র্যাফিক এপিআই-এ আঘাত করলে ত্রুটি এবং কর্মক্ষমতা পরিমাপ রিপোর্ট করা হয়। কোন এন্ডপয়েন্ট কোন ত্রুটির সম্মুখীন হয়েছে তা সহজেই খুঁজে বের করার জন্য AppSignal-এ প্রতিটি (API) এন্ডপয়েন্টের নিজস্ব ক্রিয়া। Rails অ্যাপের মতো পারফরম্যান্স ব্রেকডাউন কী ডাটাবেস কোয়েরি বা অন্যান্য অংশ বা অ্যাপটি অন্যদের তুলনায় ধীর ছিল তার অন্তর্দৃষ্টি প্রদান করে।

ডাটাবেস

সক্রিয় রেকর্ড এবং অন্যান্য ORM

একটি অনুরোধ ডেটাবেস অনুসন্ধান করতে কতক্ষণ সময় নেয় তা দেখতে, একটি ঘটনার বিবরণ পৃষ্ঠা খুলুন। পৃষ্ঠার উপরে অনুরোধে রেকর্ড করা ইভেন্টের ধরন প্রতি গ্রুপে বিভক্ত করা হয়। এখানে আপনি দেখতে পাবেন মোট কত সময় কোন ধরনের অপারেশনে ব্যয় হয়েছে।

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

ইন্টিগ্রেশন আপনাকে ডেটাবেস কলের ট্রেসিং দেখায়, যাতে আপনি দেখতে পারেন কোন প্রশ্নটি আপনার মন্দ (বা প্রতিভা) এর মূল 😉

N+1 প্রশ্ন

উদ্বিগ্ন যে অনুরোধে N+1 প্রশ্ন হতে পারে এবং এটিই এটিকে ধীর করে দিচ্ছে? যদি আমরা N+1 ক্যোয়ারী শনাক্ত করি তাহলে শনাক্ত হওয়া ইভেন্টগুলির জন্য ইভেন্ট টাইমলাইনে একটি সতর্কতা উপস্থিত হবে৷

রেডিস

Redis ইন্টিগ্রেশনের সাথে, আপনি Redis-এ আপনার কলগুলি ইভেন্ট টাইমলাইনে দেখতে পাবেন:

এছাড়াও আপনি Redis-এ পাঠানো কমান্ডের নাম এবং Redis ইন্সট্যান্সের ঠিকানা দেখতে সক্ষম হবেন যেখানে প্রশ্ন করা হয়েছিল:

যারা রেডিস ক্যাশে দীর্ঘ চলমান কলগুলি ডিবাগ করতে চান তাদের জন্য এটি দুর্দান্ত খবর। এমনকি আপনি একটি অসংগতি ট্রিগার সেট করতে পারেন যাতে একটি অতি দীর্ঘ সময়ের জন্য চালিত অনুরোধগুলিতে একটি সতর্কতা পাঠাতে পারেন!

ব্যাকগ্রাউন্ড জবস

যখনই একটি ব্যাকগ্রাউন্ড জব Sidekiq-এর সাথে সারিবদ্ধ থাকে, বিলম্বিত::জব, রেস্ক, শোরিউকেন এবং Que AppSignal স্বয়ংক্রিয়ভাবে ত্রুটি এবং কর্মক্ষমতা পরিমাপের রিপোর্ট করবে৷ সমস্ত অ্যাক্টিভ জব অ্যাডাপ্টারগুলিও সমর্থিত, এবং কিছু ব্যাকগ্রাউন্ড জব লাইব্রেরি যেমন Sidekiq এবং Delayed::Job রিপোর্ট লাইব্রেরি থেকে আরও বেশি মেটাডেটা।

অ্যাকশন মেইলার দিয়ে ইমেল পাঠানো

যদি অ্যাকশন মেইলার ব্যবহার করে রেল মেইলাররা deliver_later এ সেট আপ করা হয় এগুলিকে সক্রিয় কাজের মাধ্যমেও রুট করা হবে এবং একই স্তরের ইন্সট্রুমেন্টেশনের উপর নির্ভর করতে পারে৷

ওয়েবসকেট

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

👋 আপনি যদি এটি পছন্দ করেন তবে আমাদের রুবি পারফরম্যান্স মনিটরিং চেকলিস্টে অন্যান্য রুবি (রেলগুলিতে) পারফরম্যান্স নিবন্ধগুলি দেখুন৷

অ্যাপসিগন্যাল ব্যবহার করে দেখুন:মনিটরিং করা সহজ এবং মিষ্টি 🍪

গত 7 বছরে, আমরা হাজার হাজার ডেভেলপারকে তাদের কোড স্বয়ংক্রিয়ভাবে যন্ত্র তৈরি করতে সাহায্য করেছি, এবং আমরাও আমাদের চেষ্টা করে দেখতে চাই। আপনি যখন তা করবেন, নির্দ্বিধায় যোগাযোগ করুন, আমরা আপনাকে স্ট্রুপওয়াফেলের একটি বিনামূল্যের বক্সও পাঠাব৷

পিএস আপনি যদি একটি দুর্দান্ত OSS প্রকল্পের মাধ্যমে বিশ্বকে সাহায্য করেন, আমরা আপনাকে একটি বিনামূল্যের AppSignal অ্যাকাউন্ট দিয়ে সাহায্য করি। আপনার মূল্যবান রক্ষণাবেক্ষণকারীদের কাছে শব্দটি ছড়িয়ে দিন!


  1. উইন্ডোজ 10 এ কিয়স্ক মোড ব্যবহার করার সবচেয়ে সহজ উপায়

  2. স্বয়ংক্রিয় ওয়ার্ডপ্রেস আপডেটগুলি পরিচালনা করার সর্বোত্তম উপায়

  3. Windows 10 ইনস্টল পরিষ্কার করার সবচেয়ে সহজ উপায়

  4. ইউআরএল ব্যবহার করে একটি পডকাস্ট যোগ করার সবচেয়ে সহজ উপায়