Spring Boot Actuator: поддержка Cloud Foundry
Модуль actuator Spring Boot включает дополнительную поддержку, которая активируется при развертывании на совместимый экземпляр Cloud Foundry. Путь /cloudfoundryapplication обеспечивает альтернативный безопасный маршрут ко всем компонентам @Endpoint.
Расширенная поддержка позволяет дополнить пользовательские интерфейсы управления Cloud Foundry (например, веб-приложение, которое вы можете использовать для просмотра развернутых приложений) информацией об actuator Spring Boot. Например, страница состояния приложения может содержать полную информацию о работоспособности вместо типичного состояния “running” или “stopped”.
Путь к /cloudfoundryapplication недоступен для обычных пользователей. Чтобы использовать конечную точку, с запросом должен быть передан действительный токен UAA.
Отключение расширенной поддержки Cloud Foundry Actuator
Если вы хотите полностью отключить конечные точки /cloudfoundryapplication, вы можете добавить следующий параметр в файл application.properties:
management.cloudfoundry.enabled=false
Cloud Foundry самозаверяющие сертификаты
По умолчанию проверка безопасности для конечных точек /cloudfoundryapplication выполняет вызовы SSL для различных служб Cloud Foundry. Если ваши службы Cloud Foundry UAA или Cloud Controller используют самозаверяющие сертификаты, вам необходимо установить следующее свойство (в application.properties):
management.cloudfoundry.skip-ssl-validation=true
Пользовательский контекстный путь
Если контекстный путь сервера был настроен на что-либо, кроме /, конечные точки Cloud Foundry не будут доступны в корне приложения. Например, если server.servlet.context-path=/app, конечные точки Cloud Foundry будут доступны в /app/cloudfoundryapplication/*.
Если вы ожидаете, что конечные точки Cloud Foundry будут всегда доступны в /cloudfoundryapplication/*, независимо от контекстного пути сервера, вам необходимо явно настроить его в своем приложении. Конфигурация будет отличаться в зависимости от используемого веб-сервера. Для Tomcat можно добавить следующую конфигурацию:
@Bean
public TomcatServletWebServerFactory servletWebServerFactory() {
return new TomcatServletWebServerFactory() {
@Override
protected void prepareContext(Host host, ServletContextInitializer[] initializers) {
super.prepareContext(host, initializers);
StandardContext child = new StandardContext();
child.addLifecycleListener(new Tomcat.FixContextListener());
child.setPath("/cloudfoundryapplication");
ServletContainerInitializer initializer = getServletContextInitializer(getContextPath());
child.addServletContainerInitializer(initializer, Collections.emptySet());
child.setCrossContext(true);
host.addChild(child);
}
};
}
private ServletContainerInitializer getServletContextInitializer(String contextPath) {
return (c, context) -> {
Servlet servlet = new GenericServlet() {
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
ServletContext context = req.getServletContext().getContext(contextPath);
context.getRequestDispatcher("/cloudfoundryapplication").forward(req, res);
}
};
context.addServlet("cloudfoundry", servlet).addMapping("/*");
};
}
Читайте также:
- Spring Boot Actuator: метрики
- Spring Boot Actuator: поддерживаемые метрики
- Spring Boot Actuator: регистрация пользовательских метрик
Комментарии
Отправить комментарий