কম্পিউটার টিউটোরিয়াল

Ruby on Rails-এ AppSignal ট্রেসিং-এর সমগ্র গাইড: পারফরম্যান্স ও নির্ভরযোগ্যতা বাড়ান

এই গাইডে, আমরা AppSignal ব্যবহার করে একটি Ruby on Rails অ্যাপ্লিকেশনে পারফরম্যান্স বটলनेक ডিটেক্ট, ডায়গনোজ, এবং রিমুভ করব এবং প্রপার ট্রেসিং ইমপ্লিমেন্ট করব। ট্রেসিং সেটআপ থেকে এরর ক্যাপচার এবং লগিং পর্যন্ত — আমরা সব কভার করব।

আমরা নিশ্চিত করব আমাদের অ্যাপ্লিকেশন সবচেয়ে ভারী লোডের নিচেও কখনও চলে না চলে, স্মুথলি চলে!

তবে প্রথমে, দ্রুত চर्चা করি ট্রেসিং কী এবং এর বেনিফিটস।

ট্রেসিং কী?

ট্রেসিং হলো একটি রিকোয়েস্ট এবং অপারেশনকে একটি অ্যাপ্লিকেশনের মাধ্যমে ফলো করার প্রসেস। Ruby অ্যাপ্লিকেশনে, ট্রেসিং এক্সিকিউশন ফ্লো ক্যাপচার করে, berbagai কম্পোনেন্টের পারফরম্যান্সে গভীর ইনসাইট প্রদান করে।

ট্রেসিং-এর সুবিধা

ট্রেসিং-এর বেশ কিছু সুবিধা রয়েছে, যার মধ্যে:

  1. পারফরম্যান্স অপ্টিমাইজেশন: ট্রেসিং অ্যাপ্লিকেশনের স্লো পার্টস শনাক্ত করে যেগুলো পারফরম্যান্স উন্নতির প্রয়োজন।
  2. বेहতর ডিবাগিং: ডিটেইলড ট্রেস আপনাকে দ্রুত কোড ইস্যু পিনপয়েন্ট করতে এবং তাদের কারণ নির্ধারণ করতে দেয়।
  3. উন্নত নির্ভরযোগ্যতা: ট্রেসিং অ্যাপ্লিকেশন বিহেভিয়র ট্র্যাক করে, আরও নির্ভরযোগ্য এবং কার্যকর সিস্টেম অপারেশন নিশ্চিত করে।

একটি দৃশ্য: আমাদের ল্যাগিং Rails অ্যাপ

মান लीজिए এটি ব্ল্যাক ফ্রাইডে, বছরের সবচেয়ে বড় শপিং দিন। আপনার Rails-ভিত্তিক ই-কমার্স প্ল্যাটফর্ম হাজার হাজার আগ্রহী কাস্টমার দিয়ে গুলজার, তাদের কার্ট পণ্য দিয়ে ভরা, চেকআউট করার জন্য প্রস্তুত। সবকিছু সাদা দেখাচ্ছে — যতক্ষণ না সিস্টেম ল্যাগিং শুরু করে।

ট্রানজ্যাকশন ফেল করছে। অ্যাব্যান্ডনড কার্ট স্কাইরকেট করছে। প্যানিক ছড়াচ্ছে। এটি প্রতিটি ডেভেলপারর স্বপ্নভংগ। কিন্তু কি হয় যদি আপনার হাতে একটি গোপন অস্ত্র থাকে? একটি টুল যা কেবল রিয়েল-টাইমে ইস্যু আপনাকে সতর্ক করে না, বরং আপনার অ্যাপ্লিকেশনের হৃদয়ে গভীরে ডুব করে, প্রতিটি রিকোয়েস্ট, প্রতিটি ডাটাবেস কোয়েরি, এবং প্রতিটি ব্যাকগ্রাউন্ড জব ট্রেস করে? এন্টার AppSignal।

AppSignal ব্যবহার করে Ruby on Rails অ্যাপের জন্য ট্রেসিং সেটআপ কীভাবে করবেন

AppSignal ব্যবহার করে ট্রেসিং-এর শক্তি প্রদর্শন করার জন্য, আমি একটি স্যাম্পল Rails ই-কমার্স প্রজেক্ট তৈরি করেছি যা আমরা AppSignal-এর সাথে ইন্টিগ্রেট করতে পারি। এটি আপনাকে ফার্স্টহ্যান্ড দেখাবে কীভাবে ট্রেসিং এই সমস্যাগুলো শনাক্ত এবং সমাধান করতে পারে।

পূর্বশর্ত

  • Ruby ভার্সন: AppSignal Ruby 2.5 এবং তার উপরে কম্প্যাটিবল।
  • AppSignal অ্যাকাউন্ট: AppSignal-এ একটি অ্যাকাউন্ট তৈরি করুন (ফ্রি ট্রায়াল উপলব্ধ)।

এখন আপনি আপনার Ruby অ্যাপ্লিকেশনে AppSignal ব্যবহার করে ট্রেসিং সেটআপ করার জন্য প্রস্তুত।

স্টেপ ১: AppSignal জেম ইনস্টল করুন

এখানে জেমটি:


সহজে bundle install রান করুন:



স্টেপ ২: AppSignal ইনিশিয়ালাইজ করুন

AppSignal ইনস্টলেশন কমান্ড রান করুন প্রয়োজনীয় কনফিগারেশন ফাইল সেটআপ করার জন্য।


আপনার টার্মিনালের প্রম্পট ফলো করুন। আপনি একটি কনফিগ ফাইল বা এনভায়রনমেন্ট ভেরিয়েবল বেছে নিতে পারেন AppSignal আপনার অ্যাপে কনফিগার করার জন্য। আমরা কনফিগ ফাইল অপশন বেছে নেব।

এই কমান্ড আপনার কনফিগ ডিরেক্টরিতে একটি appsignal.yml কনফিগারেশন ফাইল জেনারেট করবে। এই ফাইলটি আপনার AppSignal পুশ API কী এবং কিছু বেসিক কনফিগারেশন সেটিংস সহ প্রি-ফিল্ড থাকবে।

স্টেপ ৩: AppSignal কনফিগার করুন

config/appsignal.yml সঠিকভাবে আপনার এনভায়রনমেন্টের জন্য কনফিগার করা হয়েছে নিশ্চিত করুন। এই ফাইলটি বিভিন্ন এনভায়রনমেন্টের (ডেভেলপমেন্ট, টেস্ট, প্রোডাকশন) জন্য কনফিগারেশন সেটিংস ধারণ করে। কম ভ্যালু প্রদানকারী অ্যাকশনগুলো ইগনোর করুন।

এবং তদা! আপনি সেটআপ হয়ে গেছেন:

Ruby on Rails-এ AppSignal ট্রেসিং-এর সমগ্র গাইড: পারফরম্যান্স ও নির্ভরযোগ্যতা বাড়ান

আমাদের Ruby on Rails অ্যাপ্লিকেশন ইনস্ট্রুমেন্ট করা

AppSignal আমাদের Rails অ্যাপ্লিকেশনের বেশ কিছু কী কম্পোনেন্ট অটোমেটিক্যালি ইনস্ট্রুমেন্ট করতে পারে, যেমন ডাটাবেস কোয়েরি এবং ওয়েব রিকোয়েস্ট। আমরা কাস্টম ইনস্ট্রুমেন্টেশনও যোগ করতে পারি আমাদের অ্যাপ্লিকেশনের নির্দিষ্ট অংশ ট্রেস করতে।

কাস্টম Rails ইনস্ট্রুমেন্টেশন

আমাদের কোডের নির্দিষ্ট অংশ ইনস্ট্রুমেন্ট করতে, আমরা কয়েক লাইন কোডকে Appsignal.instrument মেথড দিয়ে র‍্যাপ করব। এই মেথডটি কোডের নির্দিষ্ট ব্লক ট্রেস করতে ব্যবহার করা যেতে পারে, যেমন কন্ট্রোলার অ্যাকশন বা ব্যাকগ্রাউন্ড জবের আরও জটিল অংশ।


এই এন্ডপয়েন্টে রিকোয়েস্ট পাঠালে একটি N+1 কোয়েরি রিপোর্ট হবে।

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

এই কেসে ফিক্স হলো সব অর্ডার কোয়েরি ইগার্লি লোড করা — সহজে এই কোডটি রিপ্লেস করুন:


নিচের কোডটির সাথে:



AppSignal-র সাথে Ruby এরর কलेক্ট এবং রিপোর্ট করা

AppSignal আপনাকে Appsignal.set_error মেথড ব্যবহার করে অ্যাপ্লিকেশন এরর ক্যাপচার এবং রিপোর্ট করতে দেয়।

অর্ডার কন্ট্রোলার ইন্ডেক্স অ্যাকশনে এরর ক্যাপচার এবং রিপোর্ট করার একটি উদাহরণ:


এই উদাহরণে, আমরা একটি নির্দিষ্ট কন্ট্রোলার অ্যাকশনে কাস্টম এরর হ্যান্ডলিং প্রদর্শন করেছি। তবে, মনে রাখা গুরুত্বপূর্ণ যে AppSignal ডিফল্টভাবেই এরর রিপোর্ট করে, তাই Appsignal.set_error ব্যবহার করে এক্সপ্লিসিট এরর রিপোর্টিং সাধারণত প্রয়োজন নয়।

সব কন্ট্রোলার অ্যাকশনের জন্য কনসিস্টেন্ট এবং সেন্ট্রালাইজড এরর হ্যান্ডলিং নিশ্চিত করার জন্য, কন্ট্রোলার লেভেলে rescue_from ব্যবহার করা রিকমেন্ডেড। এই পদ্ধতিটি নিশ্চিত করে যে আপনার কন্ট্রোলার অ্যাকশনে যেকোনো আনহ্যান্ডলড এক্সেপশন সঠিকভাবে রিপোর্ট এবং ম্যানেজ করা হচ্ছে।

এখানে কীভাবে আপনি এটি ইমপ্লিমেন্ট করতে পারেন তার একটি উদাহরণ:


Error > Issue list ট্যাবে, আমরা সব এররগুলোর তালিকা, প্রতিটি ইস্যুর স্ট্যাটাস, এবং কতক্ষণ আগে এররটি ঘটেছিল তা দেখতে পাই:

Ruby on Rails-এ AppSignal ট্রেসিং-এর সমগ্র গাইড: পারফরম্যান্স ও নির্ভরযোগ্যতা বাড়ান

RuntimeError-এ ক্লিক করলে, আমরা এরর লগ এবং যে কোড লাইনটি এই এররটি ট্রিগার করছে সেটি দেখতে পাই:

Ruby on Rails-এ AppSignal ট্রেসিং-এর সমগ্র গাইড: পারফরম্যান্স ও নির্ভরযোগ্যতা বাড়ান

র‍্যাপ আপ করার আগে কিছু আরও অ্যাডভান্সড ট্রেসিং টেকনিকের ওপর আলোচনা করি।

অ্যাডভান্সড ট্রেসিং টেকনিক

আমরা আমাদের ই-কমার্স অ্যাপের অর্ডার এন্ডপয়েন্টে কিছু অ্যাডভান্সড ট্রেসিং টেকনিক ইমপ্লিমেন্ট করব।

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

হাই ট্রাফিক ইউজ কেস

হাই-থ্রুপুট এনভায়রনমেন্টে, প্রতিটি রিকোয়েস্টের জন্য ট্রেস ডেটা কलेक्ट করা উল্লেখযোগ্য ওভারহেড সৃষ্টি করতে পারে। স্যাম্পলিং এটিকে কমিয়ে দেয় শুধু রিকোয়েস্টের একটি সাবসেটের জন্য ট্রেস ডেটা কलेक्ट করে।

ট্রানজ্যাকশনে মেটাডেটা যোগ করা

আপনি ট্যাগ এবং স্যাম্পল ডেটা ব্যবহার করে এরর এবং পারফরম্যান্স ইস্যুতে এক্সট্রা কন্টেক্সট দিতে পারেন। এটি olyan ইনফরমেশন যোগ করতে সাহায্য করতে পারে যা ইতিমধ্যে রিকোয়েস্ট, সেশন, বা এনভায়রনমেন্ট প্যারামিটারের অংশ নয়। কীভাবে অডিশনাল মেটাডেটা পাস এবং অ্যাড করবেন সেটি সম্পর্কে আরো পড়ুন।

অ্যাসিনক্রোনাস প্রসেসিং

অ্যাসিনক্রোনাস প্রসেসিং একটি সাধারণ টেকনিক যা রিকোয়েস্ট-রেসপONSE সাইকলের মধ্যে পারফর্ম করা যাবে না এমন টাইম-কনসামিং টাস্ক হ্যান্ডল করতে ব্যবহার করা হয়, যেমন ইমেইল পাঠানো, ব্যাকগ্রাউন্ড জব প্রসেস করা, এবং বড় ডেটা ইমপোর্ট হ্যান্ডল করা। Ruby on Rails অ্যাপ্লিকেশন সাধারণত ব্যাকগ্রাউন্ড জব লাইব্রেরি যেমন Sidekiq, Resque, বা Delayed Job ব্যবহার করে এই টাস্কগুলো ম্যানেজ করতে।

AppSignal Active Job, DelayedJob, Shoryuken, Sidekiq, এবং Que-এর মতো লাইব্রেরির সাথে সিমলেসলি ইন্টিগ্রেট করে আপনার ব্যাকগ্রাউন্ড জবের পারফরম্যান্স এবং এররসে ইনসাইট প্রদান করতে।

সিকিউরিটি বিবেচনা

সিকিউরিটি যেকোনো প্রোডাকশন-রেডি অ্যাপ্লিকেশনের জন্য অত্যন্ত গুরুত্বপূর্ণ। আমাদের নিশ্চিত করতে হবে যে সেনসিটিভ ডেটা ট্রেস ডেটায় অন্তর্ভুক্ত নয় যাতে ইউজার প্রাইভেসি বজায় থাকে। ফিল্টার প্যারামিটারের ভ্যালুগুলো AppSignal-এ ট্রান্সমিট করার সময় [FILTERED]-এর সাথে রিপ্লেস করা হবে।

চলুন config/appsignal.yml মডিফাই করি কিছু সেনসিটিভ রিকোয়েস্ট প্যারামিটার ইনক্লুড করতে যা মাস্কিং প্রয়োজন।


আপনি যদি Rails filter_parameters কনফিগ অপশন ব্যবহার করেন, AppSignal তার কনফিগ Rails-এর কনফিগের সাথে মার্জ করবে, তাই দুবার কনফিগার করার প্রয়োজন নেই।

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

উপসংহার

আমরা দেখেছি যে AppSignal ব্যবহার করে একটি Ruby অ্যাপের জন্য ট্রেসিং সেটআপ করা জড়িত ট্রেসিং ফান্ডামেন্টাল বোঝা, আপনার অ্যাপ্লিকেশন প্রস্তুত করা, এবং একটি ধাপে ধাপে সেটআপ প্রসেস ফলো করা। অ্যাডভান্সড মেথড এবং ডিবাগিং টেকনিক তারপর ট্রেসিং এনহান্স করতে ব্যবহার করা যেতে পারে।

ডেভেলপমেন্ট এবং মেইনটেনেন্স সাইকেলে নিয়মিত ট্রেসিং অ্যাপ্লাই করলে উচ্চতর পারফরম্যান্স এবং নির্ভরযোগ্যতা নিয়ে আসে। আজই AppSignal দিয়ে শুরু করুন আপনার Ruby অ্যাপ্লিকেশনে এনহান্সড মনিটরিং এবং গভীর পারফরম্যান্স ইনসাইটের জন্য।

হ্যাপি কোডিং!

Ruby on Rails-এ AppSignal ট্রেসিং-এর সমগ্র গাইড: পারফরম্যান্স ও নির্ভরযোগ্যতা বাড়ান

Daniel Amah

আমাদের অতিথি লেখক Daniel একজন প্রিন্সিপাল সফটওয়্যার ইঞ্জিনিয়ার এবং টেকনিক্যাল ফাউন্ডার যাদের এক দশক 이상의 অভিজ্ঞতা রয়েছে স্কেলেবল ওয়েব এবং মোবাইল প্ল্যাটফর্ম বিল্ড করতে Ruby on Rails, React, এবং AI-পাওয়ার্ড আর্কিটেকচার ব্যবহার করে। তিনি Taskclan-এর স্রষ্টা এবং প্রায়শই ইঞ্জিনিয়ারিং লিডারশিপ, ডেভেলপার ওয়ার্কফ্লো, এবং স্টার্টআপ এক্সিকিউশন নিয়ে Medium এবং LinkedIn-এ লেখেন।

Daniel Amah-এর সকল আর্টিকেল


  1. Byebug এবং Pow দিয়ে রেলসে রিমোট ডিবাগিং: একটি স্টেপ-বাই-স্টেপ গাইড

  2. রেডিস দিয়ে হাই-পারফরম্যান্স টেক্সট র‍্যাঙ্কার বানান: ধাপে ধাপে গাইড

  3. HTML DOM Storage length প্রপার্টি

  4. HTML <marquee> ট্যাগ