Как включить конечные точки привода, которые установлены в пользовательском пускателе / библиотеке?

#spring-boot #endpoint #actuator

#spring-boot #конечная точка #привод

Вопрос:

У меня есть пользовательское приложение starter (библиотека), которое имеет зависимость от привода и prometheus

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
            <version>1.5.2</version>
</dependency>
  

в application.properties

management.endpoints.web.exposure.include=health, info, metrics, prometheus

Я использую этот стартер в других своих приложениях, и я хочу также передать это изложение конечных точек из стартера. Зависимости привода и Prometheus работают в приложениях, но не отображают выбранные конечные точки в пускателе. Ofc я могу добавить также строку с management.endpoints.web.exposure.include=health, info, metrics, prometheus в свои приложения, но с несколькими приложениями, использующими этот стартер, я хочу передать это один раз для всех и изменить конечные точки только в starter, если это необходимо.

У вас есть идея, как выставить в моем приложении те конечные точки, которые установлены в starter?

Spring Boot v2.3.2 / Maven 3.6.3

Ответ №1:

Вы можете передать это как аргументы командной строки или как переменные среды в свой jar при запуске приложения.

Таким образом, вы можете передавать его в требуемое приложение по мере необходимости без обновления application.properties.

Это также защитит от раскрытия конечных точек привода, когда это не требуется, поскольку конечные точки привода раскрывают конфиденциальную информацию о приложении.

например. java -Dmanagement.endpoints.web.exposure.include=health, info, metrics, prometheus -jar myapp.jar

Комментарии:

1. Спасибо, Махеш, за твой ответ. К сожалению, это решение не может быть применено к структуре наших приложений.