Spring Boot Actuator হলো একটি গুরুত্বপূর্ণ টুল, যা Spring Boot অ্যাপ্লিকেশনের হেলথ (health), মেট্রিক্স (metrics), এবং কনফিগারেশন সম্পর্কিত তথ্য সহজে মনিটর ও ম্যানেজ করতে ব্যবহৃত হয়। Spring Web Services-এর সঙ্গে এটি একত্রে ব্যবহৃত হলে Monitoring এবং Metrics সংগ্রহ করা খুবই সহজ হয়।
নিচে Spring Boot Actuator ব্যবহার করে Monitoring এবং Metrics পরিচালনার একটি বিস্তারিত বিবরণ দেওয়া হলো:
১. Spring Boot Actuator যুক্ত করা
Spring Boot Actuator ব্যবহারের জন্য প্রজেক্টে spring-boot-starter-actuator ডিপেনডেন্সি যুক্ত করতে হবে:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
২. অ্যাপ্লিকেশন প্রোপার্টি কনফিগারেশন
Actuator-এর এক্সপোজড এন্ডপয়েন্ট নির্ধারণ করতে application.properties বা application.yml ফাইলে কনফিগারেশন করতে হবে।
উদাহরণ:
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
management.endpoints.web.base-path=/actuator
এখানে:
management.endpoints.web.exposure.include=*: সব Endpoints এক্সপোজড করা হচ্ছে।management.endpoint.health.show-details=always: Health Endpoint-এর বিস্তারিত দেখাবে।management.endpoints.web.base-path=/actuator: Actuator এন্ডপয়েন্টের বেস URL নির্ধারণ করা।
৩. গুরুত্বপূর্ণ Actuator Endpoints
Spring Boot Actuator কয়েকটি প্রয়োজনীয় এন্ডপয়েন্ট সরবরাহ করে, যেমন:
/actuator/health: অ্যাপ্লিকেশনের স্বাস্থ্য পরীক্ষা।/actuator/metrics: মেট্রিক্স সম্পর্কিত তথ্য।/actuator/loggers: লগ সম্পর্কিত তথ্য।/actuator/env: পরিবেশ ভেরিয়েবলের তথ্য।
৪. Custom Metrics তৈরি করা
Spring Boot Actuator-এর মাধ্যমে কাস্টম মেট্রিক্স যোগ করা যায়।
উদাহরণ:
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.stereotype.Component;
@Component
public class CustomMetrics {
public CustomMetrics(MeterRegistry registry) {
registry.counter("custom_metric_counter", "type", "example").increment();
}
}
এখানে custom_metric_counter নামে একটি কাস্টম মেট্রিক যুক্ত করা হয়েছে।
৫. Monitoring Tool ইন্টিগ্রেশন
Spring Boot Actuator সহজেই বিভিন্ন মনিটরিং টুল যেমন Prometheus, Grafana, এবং ELK Stack-এর সঙ্গে ইন্টিগ্রেট করা যায়।
Prometheus এর জন্য:
Prometheus ব্যবহার করতে micrometer-registry-prometheus ডিপেনডেন্সি যুক্ত করুন:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
application.properties:
management.metrics.export.prometheus.enabled=true
Prometheus থেকে Actuator মেট্রিক্স এক্সপোজ করা হবে /actuator/prometheus এ।
৬. Actuator Security কনফিগারেশন
Actuator এর API গুলিকে সুরক্ষিত করতে Security Configuration প্রয়োজন।
উদাহরণ:
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@Configuration
@EnableWebSecurity
public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/actuator/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
উপসংহার
Spring Boot Actuator অ্যাপ্লিকেশন মনিটর এবং মেট্রিক্স সংগ্রহ করার জন্য একটি শক্তিশালী টুল। এটি ব্যবহার করলে সহজে অ্যাপ্লিকেশনের পারফরমেন্স এবং স্বাস্থ্য পর্যবেক্ষণ করা যায়। তাছাড়া, Prometheus এবং Grafana এর মতো টুলের সঙ্গে সংযোগ করে ভিজ্যুয়াল ড্যাশবোর্ড তৈরি করা সম্ভব।
Read more