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

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

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

AppSignal আপনাকে আপনার ইচ্ছামতো অ্যাপ মেট্রিক্স এবং ড্যাশবোর্ড কাস্টমাইজ করতে দেয়। এই গাইডে, আমরা AppSignal-এর কাস্টম মেট্রিক্স সম্পর্কে সব কিছু শিখব, যার মধ্যে রয়েছে:

  • কাস্টম মেট্রিক্স কী
  • আপনি সেট আপ করতে পারেন এমন কাস্টম মেট্রিক্সের বিভিন্ন টাইপ
  • গ্রাফ ভিজ্যুয়ালাইজেশন কাস্টমাইজ করার পদ্ধতি
  • ইফেক্টিভ অ্যালার্ট সেট আপ করার পদ্ধতি

এবং আরও!

তবে ডাইভ ইন করার আগে, আপনাকে এই টিউটোরিয়াল ফলো করার জন্য কয়েকটি জিনিস দরকার।

পূর্বশর্ত

  • একটি AppSignal অ্যাকাউন্ট: আপনার যদি নেই, ৩০-দিনের ফ্রি ট্রায়ালের জন্য সাইন আপ করুন।
  • একটি Ruby অ্যাপ্লিকেশন: এই অ্যাপ যেকোনো সাপোর্টেড Ruby ফ্রেমওয়ার্কের উপর ভিত্তি করে হতে পারে, যেমন Rails, Sinatra, বা শুধু প্লেইন Ruby। এছাড়া, এটি একটি প্রোডাকশন বা ডেভেলপমেন্ট অ্যাপ হতে পারে। আপনি যদি নিজের অ্যাপ স্পিন আপ করতে না চান, এই টিউটোরিয়ালে আমরা যে উদাহরণ Sinatra অ্যাপ ব্যবহার করব তার কোড ক্লোন করুন।

নোট: আপনি যদি এই টিউটোরিয়াল ফলো করতে আপনার নিজের অ্যাপ ব্যবহার করেন, নিশ্চিত করুন আপনার অ্যাপ লেটেস্ট AppSignal Ruby জেম ব্যবহার করতে কনফিগার করা আছে, কারণ এই টিউটোরিয়ালে ব্যবহৃত উদাহরণগুলো এই ধরে।

কাস্টম মেট্রিক্স কী?

আপনার অ্যাপের এরর রেট, থ্রুপুট, এবং পারফরম্যান্স মাপার পাশাপাশি, আপনি আপনার নিজস্ব অ্যাপের জন্য স্পেসিফিক্যালি টেইলর করা কাস্টম ডেটা মাপতে আগ্রহী হতে পারেন। উদাহরণস্বরূপ, আপনি আগ্রহী হতে পারেন কোনো নির্দিষ্ট টাইম পিরিয়ডে কত ভিজিটর আপনার অ্যাপে সাইন আপ করল, আপনার অ্যাপের ওয়েবসকেট লেয়ার কীভাবে পারফর্ম করছে, এবং тако vidare।

যেরকম কাস্টমাইজড কেসের জন্য, আপনি AppSignal-এ স্ট্যান্ডার্ড মেজারিং টুল খুঁজে পাওয়া কঠিন হতে পারে। বরং, আপনাকে একটি কাস্টম মেট্রিক ব্যবহার করতে হবে। কাস্টম মেট্রিক্স হলো আপনি ডিফল্ট موارد পাশাপাশি ডিফাইন করা অতিরিক্ত মেট্রিক্স আপনার অ্যাপ কীভাবে চলে সেটি সম্পর্কে গভীর কনটেক্সটের জন্য।

পরবর্তী, চলুন শিখি কীভাবে আমাদের প্রথম কাস্টম মেট্রিক সেট আপ করব।

কাস্টম মেট্রিক্স সেট আপ করা

আপনি আপনার অ্যাপ্লিকেশনের почти যেকোনো ইউজ কেসের জন্য একটি কাস্টম মেট্রিক সেট আপ করতে পারেন। একটি সিম্পল উদাহরণ দিয়ে শুরু করি যাতে আপনি বুঝতে পারেন সবকিছু কীভাবে ফিট হয়।

প্রথম ধাপ হলো একটি কাস্টম মেট্রিক ডিফাইন করা যা AppSignal-এ ট্র্যাক হবে। আপনি উপলব্ধ বিভিন্ন মেট্রিক টাইপ ব্যবহার করে একটি কাস্টম মেট্রিক ডিফাইন করতে পারেন:

  • Gauges (গেজ)
  • Counters (কাউন্টার)
  • Distributions (ডিস্ট্রিবিউশন)

গেজ (Gauge) কাস্টম মেট্রিক

AppSignal-এ, একটি গেজ কাস্টম মেট্রিক সময়ের সাথে সাথে বৃদ্ধি এবং হ্রাস পাওয়া মেট্রিক মাপার জন্য উপযোগী।

চলুন আমাদের উদাহরণ Sinatra অ্যাপে মোট পোস্টের সংখ্যা মাপার জন্য একটি সিম্পল গেজ কাস্টম মেট্রিক সেট আপ করি:


উপরের কোডে দেখানো হয়েছে, আমরা Appsignal::Helpers::Metrics মডিউল ব্যবহার করি এবং set_gauge মেথড কল করি, যা তিনটি আর্গুমেন্ট এক্সেপ্ট করে:

  • key: কাস্টম মেট্রিকের নাম। উদাহরণে, এটি হবে all_posts।
  • value - যে মেট্রিক বা "জিনিস"টি মাপা হবে। উপরের উদাহরণে, এটি সহজে মোট পোস্ট কাউন্ট।
  • tags - অতিরিক্ত এবং অপশনাল মেটাডেটা যা একটি কাস্টম মেট্রিকের সাথে যোগ করা যেতে পারে এবং যা আপনি যেভাবেই চান ডেটা লেবেল করার জন্য উপযোগী। উদাহরণস্বরূপ, আমরা সহজে posts_count মেট্রিকটি এনভায়রনমেন্টের জন্য একাউন্ট করতে ট্যাগ করতে পারি, নিচে দেখানো অনুযায়ী:

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

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

তাহলে কাস্টম মেট্রিকটি প্রদর্শিত করতে আপনাকে কী করতে হবে? আপনাকে একটি ড্যাশবোর্ড যোগ করতে হবে। একটি নতুন ড্যাশবোর্ড তৈরি করার সাথে শুরু করুন:

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

তব আপনার নতুন ড্যাশবোর্ডকে একটি বর্ণনামূলক tiêuরশি এবং ডেসক্রিপশন দিন:

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

কাস্টম ড্যাশবোর্ড যোগ হলে, আপনাকে কাস্টম মেট্রিকের জন্য একটি গ্রাফ যোগ করতে হবে:

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

নতুন গ্রাফ ডিফাইন করুন:

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

নতুন গ্রাফ সেট আপ করার জন্য ফিল্ডগুলোকে ব্রেকডাউন:

  • ক. Title (শিরোনাম) - নতুন গ্রাফের জন্য একটি বর্ণনামূলক শিরোনাম লিখুন।
  • খ. Description (বিবরণ) - এটি অপশনাল, কিন্তু আপনি নতুন গ্রাফের জন্য একটি বিবরণ লিখতে পারেন।
  • গ. Metrics (মেট্রিক্স) - এখানেই আপনি সেই মেট্রিক ডিফাইন করবেন যা নতুন গ্রাফ দ্বারা মাপা এবং প্রদর্শিত হবে। এটি কাস্টম মেট্রিকের নাম, বা set_gauge মেথডে ডিফাইন করা প্রথম আর্গুমেন্ট: all_posts। এই সেকশনে, আপনি ট্যাগও ডিফাইন করতে পারেন (উদাহরণস্বরূপ, ট্যাগ environment ও ইনক্লুড করা আছে)।
  • ঘ. Graph display (গ্রাফ ডিসপ্লে) - এখানেই আপনি আপনার নতুন গ্রাফের জন্য গ্রাফ ডিসপ্লে টাইপ বেছে নেবেন।
  • ঙ. Legend label (লেজেন্ড লেবেল) - আপনি এখানে চার্ট লেজেন্ডের জন্য লেবেল কাস্টমাইজ করতে পারেন।
  • চ. Data format (ডেটা ফরম্যাট) - গ্রাফ ডিসপ্লে জন্য ব্যবহার করা ডেটা টাইপ ডিফাইন করুন। আপনি নম্বর, পারসেন্টেজ, থ্রুপুট (রিকোয়েস্ট/মিনিট বা আওয়ার), ডিউরেশন (মিলিসেকেন্ডে), বা ফাইল সাইজ (বাইটে) থেকে বেছে নিতে পারেন।

নতুন গ্রাফের প্রপার্টিগুলো সঠিকভাবে ডিফাইন করলে, আপনাকে কাস্টম মেট্রিকের জন্য একটি গ্রাফ পেতে পারবেন। এটি নিচে দেখানোর মতোঃ

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

আগামী, চলুন পরবর্তী কাস্টম মেট্রিক টাইপ দেখি: কাউন্টার।

কাউন্টার (Counter) কাস্টম মেট্রিক

একটি কাউন্টার কাস্টম মেট্রিক একটি ইভেন্ট কতবার ঘটেছে সেটি মাপার জন্য চমৎকার। উদাহরণ অ্যাপ্লিকেশন ব্যবহার করে, আমরা একটি কাউন্টার মেট্রিক অ্যাপ্লাই করতে পারি হোম (রুট) পেজ কতবার ভিজিট করা হয়েছে সেটি মাপার জন্য।

শুরুতে, রুট মেথড এডিট করুন নিচে দেখানো কোড ইনক্লুড করতে:


এখানে, আমরা AppSignal-এর increment_counter মেথড ব্যবহার করি এবং প্রথম আর্গুমেন্ট হিসেবে visits_count পাস করি। ইনক্রিমেন্ট স্টেপ হলো ইন্টিজার ১, যা দ্বিতীয় আর্গুমেন্ট হিসেবে পাস করা হয়েছে। আপনি থার্ড আর্গুমেন্ট হিসেবে একটি tags হ্যাশও পাস করতে পারেন, কিন্তু আমরা সেটি ওই রেখে দিচ্ছি (যেহেতু এটি পূর্বের সেকশনে কভার করা হয়েছে)।

এখন গেজ মেট্রিক টাইপের জন্য আউটলাইন করা ধাপগুলো ফলো করুন। এই কাউন্টার মেট্রিকের জন্য একটি কাস্টম গ্রাফ যোগ করুন যাতে আপনাকে নিচের মতো একটি গ্রাফ मिलে:

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

চলুন গেয়ার চেঞ্জ করি ডিস্ট্রিবিউশন কাস্টম মেট্রিকের দিকে।

ডিস্ট্রিবিউশন (Distribution) কাস্টম মেট্রিক

AppSignal ডিস্ট্রিবিউশন কাস্টম মেট্রিক কোনো কিছু পর ইউনিট অফ টাইম মাপার জন্য উপযোগী: উদাহরণস্বরূপ, একটি PDF রিপোর্ট জেনারেট করতে কত সেকেন্ড লাগে, বা একটি ব্যাকগ্রাউন্ড জব এক্সিকিউট হতে কতক্ষণ লাগে।

উদাহরণ অ্যাপ্লিকেশন ব্যবহার করে, চলুন মেইন ফাইল মডিফাই করি একটি ওপেন API এন্ডপয়েন্ট কল ইনক্লুড করতে। তারপর, আমরা একটি কাস্টম ডিস্ট্রিবিউশন ব্যবহার করব API কলটি কতক্ষণ লেগেছে মিলিসেকেন্ডে মাপার জন্য।


এখন, আমরা AppSignal-এ ফিরে যেতে পারি কাস্টম ডিস্ট্রিবিউশনকে একটি গ্রাফ হিসেবে দেখতে।

টিপ: গেজ সেকশনে আউটলাইন করা ধাপগুলো ফলো করে কাস্টম গ্রাফ ভিজ্যুয়ালাইজেশন সেট আপ করতে পারেন।

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

এখন আপনি কাস্টম মেট্রিক এবং المصاحব গ্রাফ ভিজ্যুয়ালাইজেশন তৈরি করা শিখেছেন, আপনি লক্ষ্য করতে পারেন AppSignal ড্যাশবোর্ডে বারবার ফিরে যেতে আপনার অ্যাপের সাথে কী হচ্ছে সেটি দেখতে এটি খুব কনভেনিয়েন্ট নয়। বরং, আপনার কাস্টম মেট্রিক্সের জন্য একটি নোটিফিকেশন পাওয়া খুব হ্যান্ডি হতো, ঠিক নয়?

চলুন শিখি কীভাবে আপনার কাস্টম মেট্রিক্সের জন্য নোটিফিকেশন অ্যালার্ট সেট আপ করব।

নোটিফিকেশন অ্যালার্ট

ডিফল্টভাবেই, যখনই একটি এরর বা পারফরম্যান্স ইভেন্ট ঘটে, AppSignal সেই ইভেন্টের জন্য একটি ইনসিডেন্ট ওপেন করে এবং এটি সংশ্লিষ্ট সেকশনে রাখে। উদাহরণস্বরূপ, যদি এটি একটি এরর হয়, আপনি এটিকে এরর লিস্টে পাবেন,Trong khi পারফরম্যান্স ইনসিডেন্ট পারফরম্যান্স লিস্টে থাকবে।

অতিরিক্তভাবে, AppSignal ইমেইল ভিয়া (ডিফল্ট নোটিফিকেশন চ্যানেল) ইনসিডেন্ট নোটিফিকেশন পাঠায়। আপনি অন্যান্য নোটিফিকেশন চ্যানেলও সেট আপ করতে পারেন, যেমনঃ

  • Discord
  • Google Hangouts
  • Intercom
  • Microsoft Teams
  • Slack
  • Webhook

এবং আরও।

আমাদের কাস্টম মেট্রিক্সের একটি জন্য নোটিফিকেশন ট্রিগার সেট আপ করার আগে, আপনার কাছে উপলব্ধ বিভিন্ন নোটিফিকেশন অপশন সম্পর্কে জানা গুরুত্বপূর্ণ।

শুরুতে, আপনি একটি নোটিফিকেশন সেট আপ করতে পারেন:

  • Every time (প্রতিবার) - এখানে, একটি নোটিফিকেশন পাঠানো হবে প্রতিবার একটি ইনসিডেন্ট ঘটলে।
  • First deploy (প্রথম ডিপ্লয়) - এটি ইঙ্গিত করে একটি নোটিফিকেশন পাঠানো হবে একটি ডিপ্লয়মেন্টের পর প্রথমবার ইনসিডেন্ট ঘটলে।
  • First after close (বন্ধ হওয়ার পর প্রথমবার) - এখানে, একটি নোটিফিকেশন পাঠানো হবে যখনই একটি ইনসিডেন্ট পুনরাবৃত্তি হয় পिछলেটি বন্ধ হওয়ার পর।
  • Never notify (কখনো নোটিফাই না করুন) - নাম অনুযায়ী, এই কেসে, একটি নোটিফিকেশন কখনো পাঠানো হবে না, কিন্তু এরর বা পারফরম্যান্স ইনসিডেন্ট AppSignal-এ ট্র্যাক হবে।
  • Every nth hour or day (প্রতি nth ঘন্টা বা দিন) - এই অপশনবালে, আপনি স্পেসিফাই করতে পারেন এক ঘন্টা বা এক দিনের মধ্যে আপনাকে কতগুলো অ্যালার্ট পাঠানো হবে। এই অপশনটি গুরুত্বপূর্ণ ইভেন্টের নোটিফিকেশন পাওয়া এবং túl বেশি নোটিফিকেশন (যা সহজেই আপনাকে বা আপনার টিমকে অভিভূত করতে পারে) এর মধ্যে ব্যালেন্স রাখার জন্য পারফেক্ট।

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

চলুন দেখি কীভাবে আমাদের আগে বানানো কাস্টম মেট্রিক্সের একটি জন্য একটি নোটিফিকেশন সেট আপ করব। এটি একটি טרিভিয়াল উদাহরণ হবে, কিন্তু এটি আপনার নিজের ইউজ কেসের জন্য যেতে হব उन ধাপগুলো ইলাস্ট্রেট করবে।

আপনার কাস্টম মেট্রিক্সের জন্য নোটিফিকেশন অ্যালার্ট সেট আপ করা

এই উদাহরণের জন্য, আমরা আগে এই পোস্টে API কলের ডিউরেশন মাপা ডিস্ট্রিবিউশন মেট্রিকটি ব্যবহার করব। মনে করুন আমরা একটি ইমেইল অ্যালার্ট পেতে চাই যখনই মিন ডিউরেশন একটি নির্দিষ্ট নম্বর (মিলিসেকেন্ডে) অতিক্রম করে।

এটি সেট আপ করার ধাপগুলো নিচে দেখানো হলো:

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

প্রথমে, বাম হাতের মেনুতে Triggers লিংকে ক্লিক করুন।

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

আপনার ট্রিগারকে একটি প্রাসঙ্গিক নাম দিন, তারপর সেটি মেজারমেন্ট সিলেক্ট করুন যেটির জন্য এই নোটিফিকেশন ইনটেন্ডেড। এই উদাহরণে, আমরা fetch_books_duration ডিস্ট্রিবিউশন কাস্টম মেট্রিক ব্যবহার করছি। আপনি ট্যাগও যোগ করতে পারেন যদি চান।

পরবর্তী, কমপারিজন অপারেটর এবং চেক করার ভ্যালু ডিফাইন করুন। উদাহরণস্বরূপ, মনে করুন আমরা একটি অ্যালার্ট পেতে চাই যখনই ডিউরেশন ১৬০০ মিলিসেকেন্ড অতিক্রম করে। এর জন্য, আমরা কমপারিজন অপারেটর more than সিলেক্ট করব, তারপর, ১৬০০ ভ্যালু।

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

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

AppSignal-এ কাস্টম মেট্রিক্স ও অ্যালার্ট মাস্টার করুন আপনার Ruby অ্যাপের জন্য

এটি হলে, আপনি একটি নোটিফিকেশন পাবেন যখনই একটি ইনসিডেন্ট ঘটবে আপনার ইনপুট সেটিংসের সাথে মিলে।

এবং এটিই!

উপসংহার

এই আর্টিকেলে, আমরা শিখেছি কীভাবে একটি Ruby অ্যাপ্লিকেশনের জন্য AppSignal-এ मैचিং ড্যাশবোর্ড এবং গ্রাফ ভিজ্যুয়ালাইজেশন সহ কাস্টম মেট্রিক্স সেট আপ করব।

AppSignal যে কাস্টম মেট্রিক্স ফাংশনালিটি অফার করে সেটি খুব শক্তিশালী অ্যাপ্লিকেশনের জন্য ফাইন-টিউন করা যেতে পারে। AppSignal-এর কাস্টম মেট্রিক্স ডকুমেন্টেশনে গভীরে ডুব মারুন আরও সম্ভাবনা আবিষ্কার করতে।

পরবর্তীক্ষণ পর্যন্ত, হ্যাপি কোডিং!

P.S. আপনি যদি Ruby Magic পোস্টগুলো প্রেস থেকে বের होते হই পড়তে চান, আমাদের Ruby Magic নিউজলেটার সাবস্ক্রাইব করুন এবং কখনো একটি পোস্ট মিস করবেন না!


  1. Redis Enterprise Cloud: বর্ধমান AWS এন্টারপ্রাইজের জন্য স্কেলেবল, এজাইল DBaaS সরবরাহ

  2. JavaScript-এ XML ডেটা থেকে অ্যাট্রিবিউট ভ্যালু পাওয়া (jQuery attr)

  3. লিনাক্স মাস্টার করুন: বিস্তারিত CPU ইনফরমেশন পাওয়ার ৯টি এসেনশিয়াল কমান্ড

  4. HTML DOM Button value প্রপার্টি