APM (Application Performance Monitoring) হল সফটওয়্যার পারফর্মান্স নিরীক্ষণের একটি ব্যাপক পদ্ধতি, যা মেট্রিক্স সংগ্রহ, অনুরোধ ট্রেসিং এবং রিয়াল টাইম ত্রুটি নির্ণয়কে অন্তর্ভুক্ত করে। Gartner IT Glossary, 2024 অনুযায়ী, APM তিনটি মূল ক্ষেত্রকে একিবদ্ধ করে: ব্যবহারকারী অনুভব নিরীক্ষণ, অ্যাপ্লিকেশন আর্কিটেক্চারে ব্যর্থতা সনাক্ত এবং গভীর ঘটনা নির্ণয়ের জন্য নিষ্পাদন ডেটা বিশ্লেষণ।
মূল বিষয়সমূহ
APM (Application Performance Monitoring) হল অ্যাপ্লিকেশন পারফর্মান্স পরিচালনার শৃংখলা, যা সফটওয়্যার পরিচালন ডেটার সংগ্রহ, ভিজুয়ালাইজেশন এবং বিশ্লেষণ অন্তর্ভুক্ত করে। পৃথক মেট্রিক্স (CPU, মেমরি) এর পোইন্ট নিরীক্ষণের বিপরীতে, APM একটি সামগ্রিক ছবি প্রদান করে: ব্যবহারকারীর দৃষ্টিকোণ থেকে অ্যাপ্লিকেশন কিভাবে আচরণ করে, এর উপাদানগুলি কিভাবে পরস্পর যোগায়োগ করে এবং কোথায় প্রতিবন্ধক দেখা দেয়।
2010 এর দশকে মনোলিথিক অ্যাপ্লিকেশন থেকে মাইক্রোসার্ভিস আর্কিটেক্চারে রূপান্তরের সাথে APM ধারণাটি উদ্ভূত হয়। যখন সার্ভিসের সংখ্যা 10–15 ইউনিট অতিক্রম করে, তখন প্রচলিত নিরীক্ষণ পদ্ধতি কাজ করা বন্ধ করে দেয় — কোন নির্দিষ্ট সার্ভিস সম্পূর্ণ অনুরোধটিকে ধীর করেছে তা নির্ধারণ করা অসম্ভব ছিল। APM সমাধান বিতরিত ট্রেসিং এবং স্বচালিত সার্ভিস ম্যাপ নির্মাণের মাধ্যমে এই সমস্যার সমাধান করেছে।
Grand View Research (2024) অনুযায়ী, APM বাজারের মূল্য 8.2 বিলিয়ন মার্কিন ডলার এবং এটি বার্ষিক 11.5% হারে বৃদ্ধি পাচ্ছে। প্রধান চালকগুলির মধ্যে রয়েছে ক্লাউড মাইগ্রেশন, মাইক্রোসার্ভিসের বৃদ্ধিশীল সংখ্যা এবং মোবাইল অ্যাপ্লিকেশন এবং ওয়েব সার্ভিসে ব্যবহারকারী অনুভবের গুণমানের বৃদ্ধিশীল চাহিদা।
আধুনিক APM তিন ধরণের ডেটার উপর নির্মিত যা একসাথে অ্যাপ্লিকেশনের অবস্থার একটি সম্পূর্ণ ছবি তৈরি করে। মেট্রিক্স হল সংখ্যাগত একত্র: প্রতিক্রিয়া সময়, অনুরোধ সংখ্যা, ত্রুটি হার। এরা "কি হচ্ছে" প্রশ্নের উত্তর দেয় এবং থ্রেশোল্ড মানের উপর ভিত্তি করে অলার্ট কনফিগার করার অনুমতি দেয়।
ট্রেসিং (distributed tracing) "কেন এটি হচ্ছে" প্রশ্নের উত্তর দেয়। প্রতিটি আগত অনুরোধ সকল মাইক্রোসার্ভিস, ডেটাবেস এবং বাহ্য কলের মাধ্যমে ট্রেস করা হয়। APM সিস্টেম মেট্রিক্স এবং ট্রেসিংকে সংযুক্ত করে: যদি প্রতিক্রিয়া সময় মেট্রিক বেড়ে গিয়ে থাকে, তবে ডেভেলপার ট্রেস ড্যাশবোর্ডে যায় এবং প্রতিটি সার্ভিস অনুসারে ভাঙ্গা করে ধীরতার কারণ হওয়া সঠিক অনুরোধটি দেখতে পায়।
লগ প্রসঙ্গ প্রদান করে — একটি নির্দিষ্ট ত্রুটি বার্তা, ভেরিয়েবল মান, কল স্ট্যাক। আধুনিক APM প্লেটফর্ম (Datadog, New Relic, Grafana) একটি সাধারণ trace_id এর মাধ্যমে লগকে ট্রেসের সাথে সংযুক্ত করে, যা একটি মেট্রিক গ্রাফ থেকে একটি নির্দিষ্ট অনুরোধ লগে নেভিগেট করার অনুমতি দেয়। Datadog (2025) অনুযায়ী, ট্রেসের সাথে লগ সহসম্পর্কিত করা ঘটনা নির্ণয়ের গড় সময় 45 মিনিট থেকে নেমে 12 মিনিট এর কঠামাটায় নিয়ে আসে।
| সিগনাল | প্রশ্ন | একক |
|---|---|---|
| মেট্রিক্স | কি হচ্ছে? | সংখ্যাগত একত্র |
| ট্রেসিং | কেন এটি হচ্ছে? | Spans এবং traces |
| লগ | ঠিক কি ভুল হয়েছে? | পাঠ রেকর্ড |
ক্লাসিক APM আর্কিটেক্চার তিনটি স্তর নিয়ে গঠিত: এজেন্ট, কলেক্টর এবং ব্যাকএন্ড। একটি এজেন্ট হল একটি লাইব্রেরী যা অ্যাপ্লিকেশনে এম্বেড করা হয় বা এর পাশাপাশি (sidecar) চালিত হয়। এজেন্ট আগত এবং বহির্গত কলগুলিকে ইন্টারসেপ্ট করে, রানটাইম ডেটা সংগ্রহ করে এবং একটি নিরাপত্তাপূর্ণ চেনেলের মাধ্যমে কলেক্টরে পাঠায়।
Java এর জন্য একটি APM এজেন্ট JVM স্তরে javaagent এর মাধ্যমে সংযুক্ত হতে পারে, স্বচালিতভাবে সকল HTTP অনুরোধ, ডেটাবেস কল, মেসেজ ক্যু এবং বাহ্য APIকে ইনস্ট্রুমেন্ট করে। মোবাইল প্লেটফর্মের জন্য, এজেন্টটি একটি SDK হিসাবে সংযুক্ত হয় এবং ডিভাইস থেকে মেট্রিক্স সংগ্রহ করে। Android এর জন্য New Relic এজেন্ট, উদাহরণস্বরূপ, OkHttp, HTTP ক্লাইন্ট এবং WebView এর মাধ্যমে সকল নেটওয়ার্ক অনুরোধ স্বচালিতভাবে ট্রেক করে।
import com.newrelic.agent.android.NewRelic;
public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("YOUR_TOKEN")
.start(this);
}
}
এই কোডটি একটি Android অ্যাপ্লিকেশনে New Relic এজেন্ট আরম্ভ করে। লন্চের পর, এজেন্টটি প্রতিটি স্ক্রিনের অতিরিক্ত ইনস্ট্রুমেন্টেশন ছাড়াই স্বচালিতভাবে নেটওয়ার্ক অনুরোধ মেট্রিক্স, ত্রুটি, ANR এবং UI পারফর্মান্স ডেটা সংগ্রহ করে। এজেন্টটি একটি ব্যাকগ্রাউন্ড থ্রেডে চালে এবং মূল অ্যাপ্লিকেশন ইন্টারফেসের কার্যদক্ষতাকে প্রভাবিত করে না।
কলেক্টর হাজার এজেন্ট থেকে ডেটা গ্রহণ করে, মেট্রিক্স একত্র করে, ট্রেস নমুনা করে এবং হট এবং কোল্ড স্টোরেজ ক্ষমতা সহ দীর্ঘমিয়াদী স্টোরেজে ডেটা সংরক্ষণ করে। APM ব্যাকএন্ড ড্যাশবোর্ড, আলার্ট, সার্ভিস ম্যাপ এবং বাহ্য সিস্টেম (Slack, PagerDuty, Jira, ServiceNow) এর সাথে সংযুক্তির জন্য API প্রদান করে। Datadog এর কলেক্টরগুলি ন্যূনতম ট্রাংসমিশন বিলম্বের জন্য 20+ বিশ্ব অঞ্চলে অবস্থিত, প্রতি সেকেন্ড 10 মিলিয়নের উপর ডেটা পয়ন্ট প্রক্রিয়া করে।
Apdex (Application Performance Index) অ্যাপ্লিকেশন প্রতিক্রিয়া সময়ের সাথে ব্যবহারকারী সন্তুষ্টি পরিমাপের একটি উদ্দেশ্য মানক। Apdex মান সূত্র ব্যবহার করে গণনা করা হয়: (সন্তুষ্ট ব্যবহারকারীর সংখ্যা + সহিষ্ণু ব্যবহারকারীর সংখ্যা / 2) / মোট ব্যবহারকারীর সংখ্যা। ফলাফল 0 থেকে 1 এর একটি সংখ্যা, যেখানে 1 এর অর্থ হল সকল ব্যবহারকারী সন্তুষ্ট।
Apdex থ্রেশোল্ড প্রতিটি অ্যাপ্লিকেশনের জন্য আলাদাভাবে সেট করা হয়। মোবাইল অ্যাপ্লিকেশনের জন্য, সাধারণত সন্তুষ্টির সীমা হল 1.5 সেকেন্ড পর্যন্ত প্রতিক্রিয়া সময়, সহিষ্ণুতা 4.5 সেকেন্ড পর্যন্ত। 4.5 সেকেন্ডের বেশি কোনো কিছু অগ্রহ্য বলে বিবেচিত হয়। একটি APDEX স্কোর 0.94 এবং তারওপরের কো প্রডাক্শন পরিবেশের জন্য চমৎকার বলে মনে করা হয়।
Apdex শুধু গুণমানের মেট্রিক হিসাবেই নয়, বরং আলার্টের জন্য একটি থ্রেশোল্ড হিসাবেও ব্যবহৃত হয়। যদি Apdex 10 মিনিটের জন্য 0.85 এর নিচে নেমে যায়, তবে APM সিস্টেম অন-কল টিমকে একটি বিজ্ঞপ্তি পাঠায়। এটি প্রতিক্রিয়া সময়ের পূর্ণ মানের উপর নির্ভর করার চেয়ে একটি অধিক সন্তুলিত পদ্ধতি, যা দিনের সময় এবং লোডের উপর নির্ভর করে পরিবর্তিত হতে পারে।
মোবাইল APM এর নিজস্ব বৈশিষ্ট্য রয়েছে: অ্যাপ্লিকেশনটি ব্যবহারকারীর ডিভাইসে চালে, যা বিভিন্ন নেটওয়ার্ক পরিস্থিতিতে থাকতে পারে, বিভিন্ন পরিমাণে মুক্ত মেমরি এবং OS সংস্করণ থাকতে পারে। মোবাইল APM এই সকল ফাক্টরকে বিবেচনা করে এবং ডিভাইস মডেল, OS সংস্করণ, অঞ্চল এবং নেটওয়ার্ক অপারেটর অনুসারে মেট্রিক্সের ভাঙ্গা প্রদান করে।
মোবাইল APM এজেন্টরা ডিভাইসে মেট্রিক্স সংগ্রহ করে এবং 1–5 মিনিটের ব্যবধানে ব্যাচে সার্ভারে পাঠায়। এটি ব্যবহারকারীর ট্রেফিকের উপর প্রভাব হ্রাস করে। সংযোগ নষ্ট হলে, ডেটা একটি স্থানীয় ক্যাশে সংরক্ষিত হয় এবং পরবর্তী সংযোগে পাঠানো হয়। Firebase Performance এবং Dynatrace Mobile নেটওয়ার্ক নষ্ট হলে স্বচালিত পুনর্প্রেষণ সমর্থন করে।
মানক APM মেট্রিক্সে নির্দিষ্ট মেট্রিক্স যুক্ত করা হয়: কোল্ড স্টার্ট সময়, স্ক্রলের সময় FPS, মেমরি ব্যবহার, ANR ফ্রিকোয়েন্সি (Android) এবং ওয়াচডগ সমাপ্তির সংখ্যা (iOS)। New Relic Mobile অতিরিক্তভাবে ম্যাপ ভিউজ়, ক্যাশ ব্যবহারের শতাংশ এবং নির্দিষ্ট ViewControllerসমুহের রেন্ডারিং সময় ট্রেক করে।
import NewRelic
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NewRelic.startInteraction(withName: "ProfileView")
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
NewRelic.stopCurrentInteraction()
}
}
Swift কোড ব্যবহারকারী প্রোফাইল স্ক্রিনের জন্য একটি ইন্টার্যাক্শন ট্রেস তৈরি করে। New Relic স্বচালিতভাবে ডেটা লোডিং সময়, UI রেন্ডারিং এবং এই স্ক্রিন প্রদর্শনের সময় সকল নেটওয়ার্ক অনুরোধ পরিমাপ করবে।
APM বাজারে ডজন সমাধান রয়েছে যা নিরীক্ষণ গভীরতা, ব্যয় এবং সমর্থিত প্লেটফর্মে ভিন্ন। Datadog APM একটি ইংটারফেসে মেট্রিক্স, ট্রেস এবং লগ একীবদ্ধকরণে অগ্রণী। New Relic মোবাইল প্লেটফর্মের জন্য সবচেয়ে বিস্তারিত ট্রেসিং প্রদান করে। Dynatrace স্বচালিত মূল কারণ সনাক্তের জন্য Davis AI ইঞ্জিন ব্যবহার করে।
| প্লেটফর্ম | মোবাইল এজেন্ট | বিতরিত ট্রেসিং | বিনামূল্য প্লেন |
|---|---|---|---|
| Datadog | iOS, Android | হ্যাঁ | না |
| New Relic | iOS, Android | হ্যাঁ | 100 GB/মাস |
| Dynatrace | iOS, Android | হ্যাঁ | 15 দিন |
| Grafana | OpenTelemetry এর মাধ্যমে | হ্যাঁ | হ্যাঁ (OSS) |
APM প্লেটফর্মের পছন্দ দলের আকার, প্রযুক্তি স্ট্যাক এবং ব্যায়বস্থার উপর নির্ভর করে। স্টার্টআপের জন্য, ব্যাকএন্ডের জন্য Grafana এর সাথে Firebase Performance সকলাদিক উত্তম। উচ্চ SLA প্রয়োজনীয়তা সহ এন্টারপ্রাইজ প্রকল্পের জন্য — Datadog বা Dynatrace সম্পূর্ণ অবজারভেবিলিটি টুল এবং AI-চালিত মূল কারণ বিশ্লেষণ সহ।
সাধারণ প্রশ্নাবলী
সাধারণ মনিটরিং ইনফ্রাস্ট্রাক্চার মেট্রিক্স ট্রেক করে: CPU, মেমরি, ডিস্ক। APM অ্যাপ্লিকেশন স্তরের দিকে তাকায়: নির্দিষ্ট লেন-দেনের সময়, SQL ক্যোরি, মাইক্রোসার্ভিসের মধ্যে HTTP কল। APM দেখাতে পারে যে CPU সাধারণ, তবে ধীর ডেটাবেস ক্যোরির কারণে অ্যাপ্লিকেশনটি ধীর।
একটি সার্ভিসের জন্য, মানক মনিটরিং + লগিং মৌলিক কাভারের জন্য যথেষ্ট। APM প্রয়োজনীয় হয় যখন 5 বা তারাধিক সার্ভিস থাকে, এবং একটি অনুরোধ একটি ব্যবহারকারী পরিদৃশ্যে একাধিকটির মধ্য দিয়ে গিয়ে থাকে। APM উত্তর দেয় কোন নির্দিষ্ট সার্ভিস সম্পূর্ণ অনুরোধ প্রবাহকে ধীর করছে এবং প্রতিবন্ধক কোথায়।
APM এজেন্টরা প্রতি সার্ভার 1–3% CPU এবং 50–200 MB মেমরি ব্যবহার করে। লাইসেন্স খরচ প্রতি হোস্ট প্রতি মাসে 15 থেকে 80 ডলারের মধ্যে পরিবর্তিত হয়। টেলিমেট্রি ট্রেফিক প্রতি হোস্ট প্রতি দিন 1–10 GB পর্যন্ত, ট্রেসিং তীব্রতার উপর নির্ভর করে। OpenTelemetry + Grafana বাণিজ্যিক APM এর একটি বিনামূল্য বিকল্প।
হ্যাঁ, মোবাইল APM এজেন্টরা স্বায়ত্তসর ভাবে কাজ করে। তারা ডিভাইসে মেট্রিক্স সংগ্রহ করে যদিও অ্যাপ্লিকেশনের কোন সার্ভার সাইড না থাকে: স্টার্টআপ সময়, FPS, ক্র্যাশ, তৃতীয় পক্ষের API তে নেটওয়ার্ক অনুরোধ। ডেটা APM প্লেটফর্মে পাঠানো হয় যখন ডিভাইসটি ইন্টারনেটের সাথে সংযুক্ত হয়।
বেস APM কনফিগারেশন (থ্রেশোল্ড, ড্যাশবোর্ড, আলার্ট) এক বার সেট করা হয় এবং আর্কিটেক্চার পরিবর্তন বা পারফর্মান্স বেন্চমার্ক আপডেট করার সময় সম্পর্কর্ত করা হয়। এজেন্ট কনফিগারেশন APM প্লেটফর্ম কন্ট্রোল প্যানেলের মাধ্যমে স্বচালিতভাবে আপডেট হয় অ্যাপ্লিকেশন পুনরায় মোচন বা কোড পরিবর্তনের প্রয়োজন ছাড়াই।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন