Использование библиотеки для профилирования в Spring Boot

от автора

Эта статья посвящена использованию библиотеки для профилирования методов в приложениях 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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *