Spring Cloud Hystrix Dashboard এবং Monitoring হল Spring Cloud এর অত্যন্ত গুরুত্বপূর্ণ ফিচার যা মাইক্রোসার্ভিস আর্কিটেকচারে সার্ভিসগুলির স্বাস্থ্য এবং কর্মক্ষমতা পর্যবেক্ষণ করার জন্য ব্যবহৃত হয়। Hystrix একটি circuit breaker প্যাটার্ন ব্যবহার করে সার্ভিস ব্যর্থতা ম্যানেজমেন্টের জন্য ডিজাইন করা হয়েছে, যা সার্ভিসের দুর্বলতা বা ব্যর্থতা গোপন করার মাধ্যমে সিস্টেমের অবিচ্ছিন্ন কার্যকারিতা নিশ্চিত করে। Hystrix Dashboard এবং Monitoring এই ব্যর্থতা এবং সার্ভিসগুলির অবস্থা রিয়েল-টাইমে পর্যবেক্ষণ করার সুযোগ দেয়।
১. Hystrix Overview
Hystrix হল Netflix এর একটি লাইব্রেরি যা circuit breaker প্যাটার্নটি প্রয়োগ করে। যখন একটি সার্ভিস অন্য সার্ভিসের উপর নির্ভরশীল থাকে এবং সেই সার্ভিসের মধ্যে কোনো সমস্যা বা দেরি হয়, তখন হাইস্ট্রিক্স সিস্টেমকে অপ্রত্যাশিত ব্যর্থতা থেকে রক্ষা করতে circuit breaker হিসেবে কাজ করে। যখন সার্ভিসের অবস্থা খারাপ হয়ে যায়, তখন Hystrix ফোলব্যাক পদ্ধতি চালু করে, যেমন অন্য কোনো সার্ভিস বা কনফিগারড পদ্ধতি ব্যবহৃত হয়।
২. Spring Cloud Hystrix Dashboard
Hystrix Dashboard হল একটি সিম্পল UI যা সার্ভিসের স্বাস্থ্য, ট্রাফিক, এবং সার্ভিসের ব্যর্থতার পরিসংখ্যান (metrics) রিয়েল-টাইমে প্রদর্শন করে। এটি সার্ভিসের সফল এবং ব্যর্থ রিকোয়েস্টের সংখ্যা, সার্ভিসের latency (উত্তর প্রদানের সময়), সার্ভিসের অবস্থা ইত্যাদি দেখায়।
২.১ Hystrix Dashboard কনফিগারেশন
Hystrix Dashboard ব্যবহার করতে, আপনাকে প্রথমে Hystrix Stream Servlet কনফিগার করতে হবে যা Hystrix সার্ভিসের স্বাস্থ্য এবং মেট্রিক্স স্ট্রিম আউটপুট করতে সাহায্য করবে।
১. Spring Boot অ্যাপ্লিকেশন সেটআপ
- Maven ডিপেনডেন্সি: প্রথমে
spring-cloud-starter-hystrix-dashboardএবংspring-cloud-starter-hystrixডিপেনডেন্সি আপনারpom.xmlফাইলে যুক্ত করুন।
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
@EnableHystrixDashboardএনোটেশন: আপনার Spring Boot অ্যাপ্লিকেশনে Hystrix Dashboard সক্রিয় করতে,@EnableHystrixDashboardএনোটেশন ব্যবহার করুন।
@SpringBootApplication
@EnableHystrixDashboard
public class HystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixDashboardApplication.class, args);
}
}
application.propertiesকনফিগারেশন: Hystrix স্ট্রিম সাপোর্টের জন্য আপনাকে স্ট্রিম সার্ভিস কনফিগার করতে হবে:
hystrix.stream.url=http://localhost:8080/actuator/hystrix.stream
এখানে hystrix.stream.url হল Hystrix Stream-এর URL যা আপনার সার্ভিসের মেট্রিক্স সংগ্রহ করবে।
২.২ Hystrix Dashboard ব্যবহার
আপনি এখন Hystrix Dashboard অ্যাক্সেস করতে পারেন ব্রাউজারে:
http://localhost:8080/hystrix
এখানে আপনি Hystrix Stream URL হিসেবে /actuator/hystrix.stream নির্দিষ্ট করতে পারবেন, যেখানে actuator হল Spring Boot অ্যাপ্লিকেশনে একটি হেলথ চেক এবং মেট্রিক্স প্রদানকারী এন্ডপয়েন্ট।
আপনি এই UI-এর মাধ্যমে বিভিন্ন সার্ভিসের স্বাস্থ্য এবং কার্যকারিতা রিয়েল-টাইমে দেখতে পাবেন। Dashboard আপনাকে সার্ভিসের circuit breaker পরিসংখ্যান দেখাবে যেমন:
- Requests (সর্বমোট রিকোয়েস্ট)
- Failure rate (ব্যর্থতার হার)
- Latency (উত্তর দেওয়ার সময়)
- Success rate (সফল রিকোয়েস্টের হার)
- Active requests (একই সময়ে চলমান রিকোয়েস্ট)
৩. Hystrix Monitoring
Hystrix Monitoring আপনাকে আপনার মাইক্রোসার্ভিসের কর্মক্ষমতা ট্র্যাক করতে এবং সার্ভিসের স্ট্যাটাস সম্পর্কে নিশ্চিত হতে সাহায্য করে। এটি Hystrix Stream ব্যবহার করে মেট্রিক্স সংগ্রহ করে, যা Hystrix Dashboard-এ রিয়েল-টাইমে প্রদর্শিত হয়। তবে, আপনি চাইলে Prometheus এবং Grafana এর মতো আরও শক্তিশালী টুলসও ব্যবহার করতে পারেন যাতে সার্ভিস মনিটরিং এবং গ্রাফ তৈরি করা যায়।
৩.১ Hystrix Stream Configuration
Hystrix Stream হল একটি HTTP স্ট্রিম যা সার্ভিসের সমস্ত মেট্রিক্স এবং তথ্য সংগ্রহ করে। এটি Spring Boot Actuator-এর মাধ্যমে এক্সপোজ করা হয়। সার্ভিসের /actuator/hystrix.stream এন্ডপয়েন্টে পৌঁছানোর মাধ্যমে স্ট্রিম ডেটা পাওয়া যায়।
application.properties-এ Hystrix Stream URL কনফিগার করা:
management.endpoints.web.exposure.include=health,info,hystrix.stream
- Hystrix Stream Output: আপনি /actuator/hystrix.stream URL এ গিয়ে সকল মেট্রিক্স দেখতে পারবেন। এর মধ্যে সার্ভিসের circuit breaker স্ট্যাটাস এবং সফল বা ব্যর্থ রিকোয়েস্টের তথ্য থাকবে।
৩.২ Prometheus এবং Grafana Integration
Prometheus এবং Grafana এর সাথে ইন্টিগ্রেট করে আপনি আপনার সার্ভিসের real-time monitoring এবং historical metrics ট্র্যাক করতে পারবেন।
- Prometheus থেকে Hystrix Stream সংগ্রহ করা।
- Grafana ব্যবহার করে সেই ডেটা গ্রাফ এবং চার্টে ভিজ্যুয়ালাইজ করা।
এটি উচ্চতর মনিটরিং ক্যাপাবিলিটি এবং ডিটেইলড মেট্রিক্স তৈরি করতে সহায়ক।
৪. Spring Cloud Sleuth এবং Hystrix Integration
আপনি Spring Cloud Sleuth ব্যবহার করে আপনার Hystrix সিস্টেমের মধ্যে distributed tracing যোগ করতে পারেন। এটি আপনাকে সার্ভিসগুলোর মধ্যে রিকোয়েস্ট ট্র্যাকিং এবং যে কোথাও সমস্যা ঘটছে সেটি দ্রুত চিহ্নিত করতে সাহায্য করে।
উপসংহার
Hystrix Dashboard এবং Monitoring Spring Cloud মাইক্রোসার্ভিস আর্কিটেকচারে অত্যন্ত গুরুত্বপূর্ণ। এগুলি সার্ভিসগুলোর স্বাস্থ্য এবং কর্মক্ষমতা রিয়েল-টাইমে পর্যবেক্ষণ করতে সাহায্য করে, যাতে দ্রুত সমস্যা চিহ্নিত করা এবং তা সমাধান করা সম্ভব হয়। Hystrix এর মাধ্যমে সার্ভিসের ফল্ট টলারেন্স পরিচালনা করা এবং Monitoring টুলস ব্যবহার করে সার্ভিসের কার্যকারিতা এবং স্থায়িত্ব নিশ্চিত করা সম্ভব।
Read more