Spring Boot Actuator কি?
Spring Boot Actuator একটি স্প্রিং বুট প্রকল্পের অতিরিক্ত মডিউল যা অ্যাপ্লিকেশনের মেট্রিক্স, মনিটরিং, এবং অপারেশনাল ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এটি অ্যাপ্লিকেশন চলাকালীন বিভিন্ন ধরনের ডায়াগনস্টিক এবং সিস্টেম ইনফরমেশন প্রদান করে, যেমন লগিং, স্ট্যাটাস চেক, সিস্টেম হেলথ, এবং কাস্টম এন্ডপয়েন্টস।
Spring Boot Actuator দিয়ে অ্যাপ্লিকেশনটির স্বাস্থ্য (health), কার্যক্ষমতা (metrics), এবং অন্যান্য গুরুত্বপূর্ণ ইনফরমেশন চেক করা যায় যা উৎপাদন পরিবেশে ট্র্যাক করা অত্যন্ত গুরুত্বপূর্ণ।
Spring Boot Actuator এর সুবিধা
- হেলথ চেক: অ্যাপ্লিকেশনের বর্তমান অবস্থার স্বাস্থ্য সম্পর্কিত তথ্য প্রদান করে।
- মেট্রিক্স: অ্যাপ্লিকেশন এর পারফরম্যান্স এবং অন্যান্য তথ্য প্রদান করে।
- অথেনটিকেশন এবং অথরাইজেশন: কাস্টম এন্ডপয়েন্ট সিকিউর করা।
- ডায়াগনস্টিক তথ্য: সিস্টেমের ইন্টার্নাল স্টেট বিশ্লেষণ করা।
Spring Boot Actuator ব্যবহারের উদাহরণ
১. Spring Boot Actuator ডিপেনডেন্সি যোগ করা
Spring Boot Actuator ব্যবহার করতে প্রথমে আপনার pom.xml ফাইলে Actuator ডিপেনডেন্সি যোগ করতে হবে।
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
এই ডিপেনডেন্সি ইনস্টল করার পর আপনি অ্যাপ্লিকেশনটির বিভিন্ন মেট্রিক্স, হেলথ চেক, এবং অন্যান্য গুরুত্বপূর্ণ তথ্য অ্যাক্সেস করতে পারবেন।
২. application.properties কনফিগারেশন
Spring Boot Actuator এন্ডপয়েন্টস অ্যাক্সেস কনফিগার করতে application.properties ফাইলটি ব্যবহার করা হয়। সাধারণত, অ্যাক্টুয়েটর কিছু ডিফল্ট এন্ডপয়েন্ট (যেমন /actuator/health, /actuator/metrics) সক্রিয় রাখে, কিন্তু আপনি আপনার প্রয়োজন অনুযায়ী কনফিগার করতে পারেন।
management.endpoints.web.exposure.include=health,info,metrics
এটি নিশ্চিত করে যে আপনি /actuator/health, /actuator/info, এবং /actuator/metrics এন্ডপয়েন্টগুলোর মাধ্যমে অ্যাপ্লিকেশনের অবস্থা দেখতে পারবেন।
৩. Health Check Endpoint
Spring Boot Actuator-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো হেলথ চেক, যা অ্যাপ্লিকেশনের স্বাস্থ্য সম্পর্কিত তথ্য প্রদান করে। আপনি /actuator/health এন্ডপয়েন্টে অ্যাক্সেস করে অ্যাপ্লিকেশনের স্বাস্থ্য স্টেটাস দেখতে পারবেন।
curl http://localhost:8080/actuator/health
এটি আপনাকে এমন একটি JSON রেসপন্স দিবে যা অ্যাপ্লিকেশনের স্বাস্থ্য চেকের তথ্য দেখাবে:
{
"status": "UP"
}
এখানে "UP" মানে অ্যাপ্লিকেশনটি সুস্থভাবে চলছে, এবং যদি কোনো সমস্যা থাকে তবে তা "DOWN" হিসাবে প্রদর্শিত হবে।
৪. Metrics Endpoint
Spring Boot Actuator আপনাকে অ্যাপ্লিকেশন সম্পর্কিত মেট্রিক্স (যেমন লোড টাইম, ইউজার একটিভিটি, মেমরি ব্যবহার ইত্যাদি) প্রদর্শন করতে সাহায্য করে। আপনি /actuator/metrics এন্ডপয়েন্টের মাধ্যমে এই তথ্য অ্যাক্সেস করতে পারবেন।
curl http://localhost:8080/actuator/metrics
এর ফলে আপনি এমন একটি JSON রেসপন্স পাবেন যা বিভিন্ন ধরনের মেট্রিক্স সম্পর্কিত তথ্য দেখাবে:
{
"names": [
"jvm.memory.used",
"jvm.memory.committed",
"jvm.gc.pause",
"system.cpu.usage"
]
}
এখানে বিভিন্ন মেট্রিক্স যেমন JVM মেমরি, CPU ব্যবহার, এবং গার্বেজ কালেকশন সময় সম্পর্কিত তথ্য পাবেন।
৫. Info Endpoint
Spring Boot Actuator দ্বারা info এন্ডপয়েন্টটি কাস্টম তথ্য দেখানোর জন্য ব্যবহৃত হয়। আপনি এই এন্ডপয়েন্টে অ্যাপ্লিকেশনের সংস্করণ, বিল্ড তথ্য, বা অন্যান্য কাস্টম তথ্য প্রদর্শন করতে পারেন।
প্রথমে, application.properties এ কাস্টম ইনফো যুক্ত করুন:
info.app.name=MySpringBootApp
info.app.version=1.0.0
এবার /actuator/info এন্ডপয়েন্টে এই কাস্টম ইনফো দেখতে পারবেন:
curl http://localhost:8080/actuator/info
রেসপন্স হবে:
{
"app": {
"name": "MySpringBootApp",
"version": "1.0.0"
}
}
৬. Custom Actuator Endpoint
Spring Boot Actuator কাস্টম এন্ডপয়েন্ট তৈরি করাও সম্ভব। আপনি যদি নিজস্ব কিছু ডায়াগনস্টিক বা কাস্টম তথ্য প্রদর্শন করতে চান, তাহলে আপনি একটি কাস্টম এন্ডপয়েন্ট তৈরি করতে পারেন।
@Component
public class CustomEndpoint extends AbstractEndpoint<String> {
public CustomEndpoint() {
super("custom");
}
@Override
public String invoke() {
return "This is a custom actuator endpoint!";
}
}
এটি /actuator/custom এন্ডপয়েন্টে কাস্টম তথ্য প্রদান করবে।
৭. Security Configuration
Spring Boot Actuator এন্ডপয়েন্টগুলো সাধারণত ডিফল্টভাবে পাবলিক থাকে, তবে আপনি নিরাপত্তা কনফিগারেশন দিয়ে এগুলো সুরক্ষিত করতে পারেন। উদাহরণস্বরূপ, যদি আপনি health এন্ডপয়েন্টটিকে শুধুমাত্র অ্যাডমিনদের জন্য অ্যাক্সেসযোগ্য করতে চান, তাহলে আপনার application.properties ফাইলে এটি কনফিগার করুন:
management.endpoints.web.exposure.include=health,info
management.endpoint.health.show-details=when-authorized
এবং Spring Security কনফিগারেশন অনুযায়ী প্রমাণীকরণ যুক্ত করুন।
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/actuator/health").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
সারাংশ
Spring Boot Actuator একটি অত্যন্ত শক্তিশালী টুল যা অ্যাপ্লিকেশনের স্বাস্থ্য, মেট্রিক্স, এবং অন্যান্য গুরুত্বপূর্ণ সিস্টেম তথ্য দেখানোর সুবিধা দেয়। এটি একটি প্রোডাকশন-রেডি অ্যাপ্লিকেশনকে ট্র্যাক, মনিটর, এবং ডিবাগ করতে সাহায্য করে। Spring Boot Actuator এর মাধ্যমে আপনি সহজেই হেলথ চেক, মেট্রিক্স সংগ্রহ, কাস্টম এন্ডপয়েন্ট তৈরি, এবং নিরাপত্তা কনফিগারেশন পরিচালনা করতে পারেন, যা অ্যাপ্লিকেশনটির কার্যক্ষমতা এবং নিরাপত্তা নিশ্চিত করে।