Spring Boot Actuator — это подпроект Spring Boot, который предоставляет готовые к использованию функции, помогающие отслеживать и управлять вашим приложением. Он предлагает набор встроенных конечных точек, которые позволяют вам получать информацию о состоянии, показателях и среде вашего приложения, а также динамически управлять им.
Spring Boot Actuator предоставляет несколько готовых конечных точек, которые можно использовать для мониторинга и взаимодействия с вашим приложением. Доступ к этим конечным точкам можно получить через HTTP, JMX или с помощью Spring Boot Admin.
Чтобы использовать Actuator в приложении Spring Boot, вам необходимо добавить зависимость Actuator в файл pom.xml:
org.springframework.boot spring-boot-starter-actuator
Если вы используете Gradle, добавьте в файл build.gradle следующее:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
По умолчанию включены только несколько конечных точек. Вы можете включить дополнительные конечные точки в файле application.yml:
management: endpoints: web: exposure: include: "*" # This exposes all available endpoints endpoint: health: show-details: always # Show detailed health information
После настройки Actuator вы сможете получить доступ к различным конечным точкам, предоставляемым им. Вот некоторые часто используемые конечные точки:
Конечная точка /actuator/health предоставляет информацию о работоспособности вашего приложения:
GET http://localhost:8080/actuator/health
Пример ответа:
{ "status": "UP", "components": { "db": { "status": "UP", "details": { "database": "H2", "result": 1 } }, "diskSpace": { "status": "UP", "details": { "total": 499963174912, "free": 16989374464, "threshold": 10485760, "exists": true } } } }
Конечная точка /actuator/metrics предоставляет различные метрики, связанные с вашим приложением:
GET http://localhost:8080/actuator/metrics
Пример ответа:
{ "names": [ "jvm.memory.used", "jvm.gc.pause", "system.cpu.usage", "system.memory.usage", "http.server.requests" ] }
Чтобы получить подробную информацию о конкретном показателе:
GET http://localhost:8080/actuator/metrics/jvm.memory.used
Пример ответа:
{ "name": "jvm.memory.used", "description": "The amount of used memory", "baseUnit": "bytes", "measurements": [ { "statistic": "VALUE", "value": 5.1234567E7 } ], "availableTags": [ { "tag": "area", "values": [ "heap", "nonheap" ] }, { "tag": "id", "values": [ "PS Eden Space", "PS Survivor Space", "PS Old Gen", "Metaspace", "Compressed Class Space" ] } ] }
Конечная точка /actuator/env предоставляет информацию о свойствах среды:
GET http://localhost:8080/actuator/env
Пример ответа:
{ "activeProfiles": [], "propertySources": [ { "name": "systemProperties", "properties": { "java.runtime.name": { "value": "Java(TM) SE Runtime Environment" }, "java.vm.version": { "value": "25.181-b13" } } }, { "name": "systemEnvironment", "properties": { "PATH": { "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" }, "HOME": { "value": "/root" } } } ] }
Конечная точка /actuator/info предоставляет информацию о приложении:
GET http://localhost:8080/actuator/info
Чтобы настроить информацию, добавьте свойства в свое приложение.yml:
info: app: name: My Spring Boot Application description: This is a sample Spring Boot application version: 1.0.0
По умолчанию все конечные точки Actuator доступны без аутентификации. Чтобы защитить эти конечные точки, вы можете использовать Spring Security. Добавьте зависимость Spring Security в ваш pom.xml:
org.springframework.boot spring-boot-starter-security
Обновите файл application.yml, чтобы ограничить доступ:
management: endpoints: web: exposure: include: "*" # Expose all endpoints endpoint: health: show-details: always # Show detailed health information spring: security: user: name: admin # Default username password: admin # Default password # Restrict actuator endpoints to authenticated users management: endpoints: web: exposure: include: "*" endpoint: health: show-details: always security: enabled: true roles: ACTUATOR
Создайте класс конфигурации безопасности для настройки безопасности HTTP:
import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/actuator/**").hasRole("ACTUATOR") .anyRequest().authenticated() .and() .httpBasic(); } }
При такой конфигурации только прошедшие проверку подлинности пользователи с ролью ACTUATOR могут получить доступ к конечным точкам Actuator.
Вы можете создавать собственные конечные точки Actuator, чтобы предоставлять дополнительную информацию или функции, специфичные для вашего приложения. Вот пример создания пользовательской конечной точки:
import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.stereotype.Component; @Endpoint(id = "custom") @Component public class CustomEndpoint { @ReadOperation public String customEndpoint() { return "Custom Actuator Endpoint"; } }
Доступ к вашей пользовательской конечной точке по адресу:
GET http://localhost:8080/actuator/custom
Spring Boot Actuator предоставляет надежный набор инструментов, которые помогут вам отслеживать и управлять вашим приложением. Используя встроенные конечные точки и возможность создавать собственные конечные точки, вы можете получить ценную информацию о производительности и работоспособности вашего приложения. Защитите эти конечные точки с помощью Spring Security, чтобы гарантировать доступ только авторизованным пользователям, и у вас будет готовое к работе приложение, которым легко управлять и отслеживать.
Актуатор является неотъемлемой частью любого приложения Spring Boot, позволяя вам держать руку на пульсе среды выполнения вашего приложения и быстро реагировать на проблемы по мере их возникновения. Начните использовать Spring Boot Actuator сегодня, чтобы улучшить наблюдаемость и эксплуатационные возможности вашего приложения.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3