এই নিবন্ধ সিরিজের প্রথম অংশে, আমরা DigitalOcean-এর অ্যাপ প্ল্যাটফর্মে একটি সাধারণ রুবি অন রেল অ্যাপ্লিকেশন স্থাপন করেছি। AppSignal-এর ত্রুটি ড্যাশবোর্ডে কীভাবে সাধারণ ত্রুটিগুলি ট্র্যাক করা হয় এবং প্রদর্শিত হয় তা দেখে আমরা AppSignal-এ একটি Rails অ্যাপও যুক্ত করেছি৷
সিরিজের এই অংশে, আমরা অ্যাপসিগন্যাল ব্যবহার করে আপনার রুবি অন রেল অ্যাপ্লিকেশনের জন্য নিম্নলিখিতগুলি কীভাবে সেট আপ করতে হয় তা নিয়ে আলোচনা করব:
- কর্মক্ষমতা নিরীক্ষণ
- রেল ব্যাকগ্রাউন্ড জব মনিটরিং, সহ কিভাবে সাধারণ API কলগুলি নিরীক্ষণ করা যায়
- লগিং
- বিজ্ঞপ্তি সতর্কতা
আসুন এটিতে প্রবেশ করি!
অ্যাপসিগন্যাল ব্যবহার করে রেল অ্যাপ পারফরমেন্স মনিটরিং
যখন আপনার আপটাইম মনিটর দেখায় যে আপনার অ্যাপ চালু আছে, তখন সবকিছু ঠিক আছে বলে মনে করতে প্রলুব্ধ হতে পারে। কিন্তু, বাস্তবে, ধীর প্রক্রিয়া, অঅপ্টিমাইজ করা ডাটাবেস প্রশ্ন এবং দীর্ঘমেয়াদী পরিষেবা কলের আকারে সমস্যা তৈরি হতে পারে৷
এটি একটি অত্যন্ত গুরুত্বপূর্ণ বিষয় যখন আপনি বিবেচনা করেন যে ধীর-লোডিং ওয়েব পৃষ্ঠা এবং একটি কম ভিজিটর রূপান্তর হারের মধ্যে একটি সম্পর্ক রয়েছে৷ সংক্ষেপে, সেই ধীর গতির প্রক্রিয়াগুলি যদি চেক না করা হয় তবে আপনার অনেক খরচ হবে৷ কিন্তু Ruby on Rails অ্যাপে অনেকগুলো স্থানান্তরিত অংশের সাথে, গুরুত্বপূর্ণ প্রশ্নগুলি হল:আপনার কী সন্ধান করা উচিত এবং কোথায়?
সেখানেই অ্যাপসিগন্যাল কাজ করে। আপনার Rails অ্যাপের কর্মক্ষমতা ট্র্যাক রাখতে আপনি কীভাবে AppSignal ব্যবহার করতে পারেন তা দেখা যাক৷
ট্র্যাকিং রেসপন্স টাইম
ডিফল্ট ড্যাশবোর্ড থেকে, AppSignal দুটি গ্রাফ প্রদান করে যা আপনাকে আপনার Rails অ্যাপ কতটা ধীর (বা দ্রুত) চলছে তার একটি দ্রুত ওভারভিউ দিতে পারে:থ্রুপুট এবং প্রতিক্রিয়া সময় গ্রাফ।

- থ্রুপুট - এটি মূলত পরিমাপ করে যে আপনার অ্যাপ বর্তমানে প্রতি সেকেন্ডে কতগুলি অনুরোধ প্রক্রিয়া করছে (আপনার অ্যাপ সামগ্রিকভাবে প্রতি সেকেন্ডে কতগুলি অনুরোধ পরিচালনা করতে পারে তা নিয়ে বিভ্রান্ত হবেন না)। মৌলিক নিয়ম হল:প্রতি সেকেন্ডে যত বেশি অনুরোধ, তত ভালো। যাইহোক, যদি আপনার অ্যাপ সার্ভার প্রতি সেকেন্ডে অনেক বেশি অনুরোধ পরিচালনা করে, তাহলে এটি পরিচালনা করার জন্য আপনার সার্ভারের সংস্থানগুলিকে স্কেল করার সময় হতে পারে৷
- প্রতিক্রিয়া সময় - একটি ব্রাউজার প্রতিক্রিয়া মিলিসেকেন্ডে গড় সময় নেয়৷ একটি প্রতিক্রিয়া যত বেশি সময় নেয়, আপনার অ্যাপটি তত খারাপ চলছে। এখানে একটি ভাল নিয়ম হল যে আপনার রেল ওয়েব অ্যাপে যদি সাব-100 মিলিএস রেসপন্স টাইম থাকে, তাহলে আপনি এটিকে দ্রুত বিবেচনা করতে পারেন, যখন 300 মিলিএস+ রেসপন্স টাইমকে ধীর বলে বিবেচনা করা যেতে পারে।
এখন, ধরা যাক আমরা সাত দিনের উইন্ডোতে আমাদের অ্যাপের প্রতিক্রিয়ার সময় এবং থ্রুপুট ট্র্যাক করতে চাই। এটি করা খুবই সহজ — শুধু গ্রাফ-এ যান৷ পারফরমেন্স এর অধীনে সাব-মেনু বাম দিকের মেনুতে অবস্থিত, তারপর গ্রাফের উপরে টাইম ফিল্টার বোতামগুলি ব্যবহার করুন, যেমনটি নীচে দেখানো হয়েছে:

এটি দিয়ে, আপনি সহজেই দেখতে পারবেন যে আপনার অ্যাপটি অন্যদের তুলনায় কিছু দিন ধীর গতিতে চলে কিনা৷
৷এই দৃশ্যে থাকাকালীন, ইভেন্ট গ্রুপগুলি চেক করাও গুরুত্বপূর্ণ৷ গ্রাফ, প্রতিক্রিয়া সময় এর নিচে অবস্থিত এবং থ্রুপুট গ্রাফ:

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

ব্যয় নিয়ন্ত্রকের সূচক পদ্ধতিতে একটি N+1 প্রশ্ন হাইলাইট করা হয়েছে৷
যদি আমরা সমস্যা লিঙ্কে ক্লিক করে আরও খনন করি, তাহলে আমরা একটি ইস্যু বিশদ বিবরণ পেতে পারি এই মত পর্দা:

লক্ষ্য করুন কিভাবে অ্যাপসিগন্যাল সমস্যাটির একটি ব্যাখ্যা দেয়, এতে আরও বিস্তারিত ব্লগ পোস্টের একটি লিঙ্ক সহ আপনাকে কীভাবে এটি মোকাবেলা করতে হবে তা দেখায়৷
চলুন এগিয়ে চলুন এবং শিখি কিভাবে AppSignal আপনাকে ব্যাকগ্রাউন্ড জবগুলির সাথে সাহায্য করে।
অ্যাপসিগন্যালের মাধ্যমে রেলের পটভূমি কাজের ট্র্যাক রাখা
ব্যাকগ্রাউন্ড জব হল অনেক প্রোডাকশন রুবি অন রেল অ্যাপ্লিকেশনের একটি সাধারণ বৈশিষ্ট্য, যেখানে আপনি বেছে নিতে পারেন এমন বিভিন্ন কাজের সারি প্রক্রিয়াকরণ রত্ন এবং লাইব্রেরি।
AppSignal Sidekiq, Que, Delayed Job, Resque এবং অন্যান্য সহ বিভিন্ন ব্যাকগ্রাউন্ড জব প্রসেসিং লাইব্রেরি ট্র্যাকিং এবং পর্যবেক্ষণ সমর্থন করে৷
ধরা যাক আমরা এমন একটি বৈশিষ্ট্য চাই যেখানে ব্যবহারকারীরা তাদের ড্যাশবোর্ডে প্রতিদিনের মুদ্রা বিনিময় হার পান।
এটি কাজ করার জন্য, আমাদের এই ধরনের রেট প্রদানকারী একটি পরিষেবাতে একটি API কল প্রয়োজন (মুদ্রার হার আনতে আমরা এমন একটি ব্যবহার করব যার জন্য খুব বেশি অগ্রিম কনফিগারেশন বা অর্থপ্রদানের প্রয়োজন হয় না)। নিয়মিত বিরতিতে এই পরিষেবাতে কল করার জন্য আমাদের একটি ব্যাকগ্রাউন্ড জবও দরকার৷
ব্যাকগ্রাউন্ড প্রসেসিং রত্নটি আমরা এক্সপেনস ট্র্যাকার অ্যাপে ব্যবহার করব গুডজব, তবে আপনি যা খুশি তা ব্যবহার করতে পারবেন।
চলুন রেট আনার জন্য একটি ব্যাকগ্রাউন্ড কাজ তৈরি করি:
এবং তারপর প্রতি কয়েক মিনিটে এই কাজের জন্য একটি ক্রন চালানোর জন্য GoodJob সেট করুন (অথবা আপনি উপযুক্ত মনে করেন)। AppSignal স্বয়ংক্রিয়ভাবে পটভূমি পরিষেবার উপস্থিতি সনাক্ত করে এবং একটি নিফটি ফিল্টার অন্তর্ভুক্ত করে যাতে আপনি এটিকে ডিফল্ট ওয়েব ড্যাশবোর্ড থেকে আলাদা করতে পারেন:

খুব বেশি টুলিংয়ের প্রয়োজন ছাড়াই, AppSignal এপিআই কলগুলি সনাক্ত করবে এবং যে কোনও সমস্যা ট্র্যাক করবে:

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


সবচেয়ে গুরুত্বপূর্ণ সেটিংস যোগ করে আপনার আপটাইম মনিটর সম্পূর্ণ করুন:
- নাম - আপনার আপটাইম মনিটরকে একটি উপযুক্ত নাম দিন৷
- URL - আপটাইম রুটে সম্পূর্ণ URL প্রদান করুন। Rails 7.1 থেকে শুরু করে, ডিফল্ট আপটাইম রুট হল https://your-app-domain/up .
- অঞ্চল - অঞ্চলগুলি নির্বাচন করুন যেখানে আপনি আপটাইম পরীক্ষা করতে চান৷ ৷
- বিজ্ঞপ্তি - সতর্কতা পেতে বিজ্ঞপ্তি চ্যানেল/গুলি নির্বাচন করুন৷ ৷
এটি হয়ে গেলে, এগিয়ে যান এবং মনিটর তৈরি করুন!
AppSignal আপটাইম মনিটরের সাথে একটি জিনিস লক্ষ্য করা যায় যে যেহেতু পোলিং প্রায় প্রতি মিনিট বা তার পরে করা হয়, তাই আপনার পরিকল্পনার সীমাতে আঘাত করা খুব সহজ। তবে এটির একটি খুব ভাল সমাধান রয়েছে যা আপনি তাদের ডক্সে আরও পড়তে পারেন৷
৷অ্যাপসিগন্যাল কীভাবে লগিংয়ে সাহায্য করতে পারে সেদিকে এগিয়ে যাওয়ার আগে, আপটাইম মনিটরিং স্তরটি সম্পূর্ণ করার জন্য আরেকটি গুরুত্বপূর্ণ বৈশিষ্ট্য রয়েছে:বিনামূল্যে পাবলিক স্ট্যাটাস পেজ৷
একটি সর্বজনীন স্থিতি তৈরি করা-এ ক্লিক করুন৷ নীচে দেখানো হিসাবে পৃষ্ঠা লিঙ্ক:

তারপর নতুন স্থিতি পৃষ্ঠাতে ক্লিক করুন৷ বোতাম, আপনাকে এখানে নিয়ে আসছে:


এগিয়ে যান এবং সমস্ত প্রয়োজনীয় তথ্য পূরণ করুন. মনে রাখবেন যে আপনি যদি একটি কাস্টম ডোমেন ব্যবহার করেন, তাহলে আপনাকে cname.appsignal-status.com নির্দেশ করে একটি CNAME নির্দেশিকা যোগ করতে হবে আপনার কাস্টম ডোমেনের DNS সেটিংসে৷
অ্যাপসিগন্যাল দিয়ে লগিং করা
অ্যাপসিগন্যালে লগিং একটি অপেক্ষাকৃত নতুন বৈশিষ্ট্য, তবে এটি সময়োপযোগী এবং স্বাগত। AppSignal ব্যবহার করে, আপনাকে আলাদা পরিষেবা হিসাবে অ্যাপ্লিকেশন পর্যবেক্ষণ এবং লগিং চালাতে হবে না৷
লগিং শুরু করতে, নিশ্চিত করুন যে আপনি AppSignal রত্নটির সর্বশেষ সংস্করণটি চালাচ্ছেন৷ আপনার যদি রত্নটির একটি পুরানো সংস্করণ থাকে তবে এটির সাথে আপডেট করুন:
তারপর একটি নতুন ইনিশিয়ালাইজার তৈরি করুন এবং এটিকে এভাবে সম্পাদনা করুন:
এখন আপনি এইভাবে আপনার অ্যাপের লগগুলি অ্যাক্সেস করতে পারেন:

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

- মেট্রিক - আমার ক্ষেত্রে, আমি মেমরি ব্যবহারে আগ্রহী, কিন্তু আপনি আপনার ব্যবহারের ক্ষেত্রে নির্দিষ্ট অন্য কোনো মেট্রিক বেছে নিতে পারেন।
- ট্রিগার বিবরণ - এখানে, আপনি আপনার ট্রিগারের সাথে প্রাসঙ্গিক বিবরণ কনফিগার করবেন। আমার ক্ষেত্রে, হোস্ট মেমরি 200MB এর নিচে গেলে ট্রিগার ফায়ার হবে।
কাস্টম মেট্রিক্স
AppSignal আপনাকে কাস্টম মেট্রিক্স ক্যাপচার এবং ভিজ্যুয়ালাইজ করার জন্য টুল দেয়। এই বৈশিষ্ট্যটি একা একটি সম্পূর্ণ নিবন্ধের ওয়ারেন্টি দেয়। আপনি AppSignal এর সাথে কাস্টম মেট্রিক্স কিভাবে নিরীক্ষণ করবেন এবং AppSignal-এর ডক্সও পরীক্ষা করে দেখুন।
র্যাপিং আপ
এই নিবন্ধ সিরিজের এক অংশে, আমরা DigitalOcean-এ হোস্ট করা একটি Rails অ্যাপ সেট আপ করেছি এবং AppSignal ব্যবহার করে ত্রুটির জন্য এটি পর্যবেক্ষণ করেছি।
এই দ্বিতীয় এবং চূড়ান্ত অংশে, আমরা আপনার Rails অ্যাপের জন্য AppSignal-এর কিছু দুর্দান্ত বৈশিষ্ট্য দেখেছি, যার মধ্যে পারফরম্যান্স পর্যবেক্ষণ, আপটাইম পর্যবেক্ষণ, লগিং এবং আরও অনেক কিছু রয়েছে৷
অ্যাপসিগন্যালে আরও অনেক কিছু রয়েছে যা কার্যকরভাবে এই নিবন্ধ সিরিজের দ্বারা কভার করা যেতে পারে। আপনার Rails অ্যাপের জন্য এটি পরীক্ষা করার জন্য আমি আপনাকে অত্যন্ত উৎসাহিত করি৷
৷শুভ কোডিং!
পি.এস. আপনি যদি রুবি ম্যাজিক পোস্টগুলি প্রেস থেকে বের হওয়ার সাথে সাথে পড়তে চান তবে আমাদের রুবি ম্যাজিক নিউজলেটারে সাবস্ক্রাইব করুন এবং একটি পোস্ট মিস করবেন না!