Эта статья посвящена использованию библиотеки для профилирования методов в приложениях Spring Boot. Она предоставляет механизм для мониторинга времени выполнения методов, используя аннотацию @ActuatorProfiling и Spring Boot Actuator для экспонирования данных профилирования через настраиваемые конечные точки (эндпоинты).
GitHub https://github.com/litefunction/spring-boot-starter-actuator-profiling
Введение
Профилирующее приложение предназначено для помощи разработчикам в мониторинге и анализе времени выполнения методов, аннотацией @ActuatorProfiling. Данные профилирования экспонируются через Spring Boot Actuator.
Особенности
•Профилирование времени выполнения методов.
•Настраиваемые параметры профилирования.
•Информация получения данных профилирования в actuator.
•Потокобезопасное управление данными профилирования.
Начало работы
Maven зависимость
Чтобы начать использование библиотеки, добавьте следующую зависимость в ваш проект:
<dependency> <groupId>io.github.litefunction</groupId> <artifactId>spring-boot-starter-actuator-profiling</artifactId> <version>1.0.0</version> </dependency>
Конфигурация
Приложение можно настроить с помощью свойств в application.properties или application.yml.
Конфигурация по умолчанию
profiling.actuator.maxCountList=100 profiling.actuator.enabler=true
для настройки отображения actuator
management.endpoints.web.exposure.include=actuatorProfilingDetail,actuatorProfiling
Использование
Добавление профилирования к методам
Для профилирования метода, просто аннотируйте его с помощью @ActuatorProfiling и опционально задайте имя:
import com.lite.function.profiling.ActuatorProfiling; public class ExampleService { @ActuatorProfiling(name = "exampleMethod") public void exampleMethod() { // логика метода } }
Доступ к данным профилирования
Данные профилирования доступны через предоставленные эндпоинты Actuator.
Эндпоинты
Список данных профилирования
Эндпоинт: /actuator/actuatorProfiling
{ "executingProfilingMethod": { "exampleMethod": 403 } }
•exampleMethod — имя метода из аннотации @ActuatorProfiling
•403 — время выполнения последнего вызова метода в миллисекундах
Детализированные данные профилирования
Эндпоинт: /actuator/actuatorProfilingDetail/{name}
Пример ответа:
{ "name": "exampleMethod", "executingProfilingMethodVals": [ { "delta": 506, "localDateTime": "2024-06-23T14:28:39.523107" }, { "delta": 103, "localDateTime": "2024-06-23T14:28:43.101866" }, { "delta": 904, "localDateTime": "2024-06-23T14:28:44.564218" }, { "delta": 403, "localDateTime": "2024-06-23T14:28:47.180746" } ] }
•name — имя метода
•executingProfilingMethodVals — список объектов с временем выполнения метода (delta в миллисекундах) и временной меткой (localDateTime)
Заключение
Использование библиотеки для профилирования методов в Spring Boot позволяет эффективно мониторить и анализировать время выполнения методов. Это особенно полезно для выявления узких мест в производительности и оптимизации кода. Благодаря аннотации @ActuatorProfiling и интеграции со Spring Boot Actuator, процесс профилирования становится простым и удобным.
ссылка на оригинал статьи https://habr.com/ru/articles/823776/
Добавить комментарий