#java #spring-boot #spring-boot-actuator
#java #spring-boot #spring-boot-actuator
Вопрос:
Недавно мы обновили версию Spring-Boot до 2.1.2 в одном из наших приложений. Я заметил изменение в формате JSON, когда я нажал на этот URL: http://localhost:xxxx/health .
Измененная структура: { Health: { status: «UP» } }
Ранее это было: { статус: «ВВЕРХ» }
Мой вопрос; 1. Почему он был изменен? 2. Есть ли какая-либо конфигурация, позволяющая сохранить структуру такой, какой она была раньше?
Ответ №1:
С выпуском Spring Boot 2 был переработан дизайн привода и добавлены новые интересные конечные точки.
Конечная /actuator/health
точка используется для проверки работоспособности или состояния запущенного приложения. Обычно это выполняется программным обеспечением мониторинга, чтобы предупредить нас, если запущенный экземпляр выходит из строя или становится неработоспособным по другим причинам. Например. Проблемы с подключением к нашей БД, нехватка места на диске…
http://localhost:8080/actuator/health
{
status: "UP"
}
Мониторинг и управление через HTTP
Если вы разрабатываете веб-приложение, Spring Boot Actuator автоматически настраивает все разрешенные конечные точки для доступа через HTTP. По умолчанию в качестве URL-пути используется идентификатор конечной точки с префиксом /actuator . Например, работоспособность отображается как /actuator/health .СОВЕТ: привод изначально поддерживается Spring MVC, Spring WebFlux и Jersey.
В целях безопасности все исполнительные механизмы, отличные от /health и /info, по умолчанию отключены. Свойство management.endpoints.web.exposure.include можно использовать для включения исполнительных механизмов.
Если Spring Security находится в пути к классу и нет другого WebSecurityConfigurerAdapter , все исполнительные механизмы, кроме /health и /info, защищены автоматической настройкой Spring Boot. Если вы определите пользовательский WebSecurityConfigurerAdapter, автоматическая настройка Spring Boot отключится, и вы будете полностью контролировать правила доступа к исполнительному устройству.
Конечные точки привода позволяют отслеживать и взаимодействовать с вашим приложением. Spring Boot включает в себя ряд встроенных конечных точек и позволяет добавлять свои собственные. Например, конечная точка работоспособности предоставляет основную информацию о работоспособности приложения.
Каждая отдельная конечная точка может быть включена или отключена. Это определяет, создана ли конечная точка и существует ли ее компонент в контексте приложения. Для удаленного доступа конечная точка также должна быть доступна через JMX или HTTP. Большинство приложений выбирают HTTP, где идентификатор конечной точки вместе с префиксом /actuator сопоставляется с URL-адресом. Например, по умолчанию конечная точка работоспособности отображается в /actuator/health .
Полезные нагрузки JSON, возвращаемые со многих конечных точек, были улучшены с помощью Spring Boot 2.0.
Многие конечные точки теперь имеют JSON, который более точно отражает базовые данные. Например, конечная точка /actuator/conditions (/autoconfig в Spring Boot 1.5) теперь имеет ключ контекстов верхнего уровня для группировки результатов по ApplicationContext .
Чтобы восстановить работоспособность приложения, отправьте запрос GET в /actuator/health, как показано в следующем примере на основе curl:
$ curl 'http://localhost:8080/actuator/health' -i -X GET
Полезная информация: Baeldung
Комментарии:
1. Согласно документации Spring, конечная точка была изменена на /health . Так что это больше не /actuator/health . Кроме того, ваш ответ не отвечает на мой вопрос. Я спросил, почему формат JSON отличается? Есть ли в любом случае /config для использования старого ответа JSO?
2. проверьте это docs.spring.io/spring-boot/docs/2.0.x/actuator-api/html /…
3. пожалуйста, прочитайте все предоставленные ссылки @Abhijit, а также, если вы хотите
Earlier it was: { status: "UP" }
использовать этот форматactuator/health
4. как отформатировать вывод привода для лучшей читаемости?