java—为什么其他端点除了spring引导执行器中的信息和运行状况之外都不公开

6kkfgxo0  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(441)

我有一个springmvc应用程序,我正在尝试为性能指标和其他端点添加spring引导执行器。我没有得到指标,豆豆端点以外的信息和健康端点。有没有人能帮我找到那些端点的配置?Spring版本:5.2.8。释放Spring启动执行器版本:2.4.2以下是我的代码:

  1. @Configuration
  2. @EnableWebMvc
  3. @Import({
  4. ConfigurationPropertiesReportEndpointAutoConfiguration.class,
  5. EndpointAutoConfiguration.class,
  6. WebEndpointAutoConfiguration.class,
  7. HealthEndpointAutoConfiguration.class,
  8. HealthIndicatorAutoConfiguration.class,
  9. InfoEndpointAutoConfiguration.class,
  10. InfoContributorAutoConfiguration.class,
  11. LogFileWebEndpointAutoConfiguration.class,
  12. LoggersEndpointAutoConfiguration.class,
  13. BeansEndpointAutoConfiguration.class,
  14. EnvironmentEndpointAutoConfiguration.class,
  15. CachesEndpointAutoConfiguration.class,
  16. AuditEventsEndpointAutoConfiguration.class,
  17. MetricsAutoConfiguration.class,
  18. MetricsEndpointAutoConfiguration.class,
  19. WebMvcMetricsAutoConfiguration.class,
  20. ManagementWebSecurityAutoConfiguration.class,
  21. ManagementContextAutoConfiguration.class,
  22. ServletManagementContextAutoConfiguration.class,
  23. })
  24. @EnableConfigurationProperties(CorsEndpointProperties.class)
  25. public class ActuatorConfiguration2 {
  26. @Bean //taken from WebMvcEndpointManagementContextConfiguration.class
  27. public WebMvcEndpointHandlerMapping endpointHandlerMapping(WebEndpointsSupplier webEndpointsSupplier,
  28. ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier
  29. controllerEndpointsSupplier, EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties
  30. corsProperties, WebEndpointProperties webEndpointProperties,Environment environment) {
  31. List<ExposableEndpoint<?>> allEndpoints = new ArrayList<>();
  32. Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
  33. allEndpoints.addAll(webEndpoints);
  34. allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
  35. allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
  36. //EndpointMapping endpointMapping = new EndpointMapping(webEndpointProperties.getBasePath());
  37. String basePath = webEndpointProperties.getBasePath();
  38. EndpointMapping endpointMapping = new EndpointMapping(basePath);
  39. boolean shouldRegisterLinksMapping = StringUtils.hasText(basePath) ||
  40. ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT);
  41. return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes,
  42. corsProperties.toCorsConfiguration(),
  43. new EndpointLinksResolver(allEndpoints, webEndpointProperties.getBasePath()),
  44. shouldRegisterLinksMapping);
  45. }
  46. @Bean
  47. public DispatcherServletPath dispatcherServletPath(){
  48. return () -> "/";
  49. }
  50. }

默认执行器终结点url和响应:

  1. http://localhost:8090/com.springmvc.actuator.demo3/actuator/
  2. {"_links":{"self":{"href":"http://localhost:8090/com.springmvc.actuator.demo3/actuator","templated":false},"health":{"href":"http://localhost:8090/com.springmvc.actuator.demo3/actuator/health","templated":false},"health-path":{"href":"http://localhost:8090/com.springmvc.actuator.demo3/actuator/health/{*path}","templated":true},"info":{"href":"http://localhost:8090/com.springmvc.actuator.demo3/actuator/info","templated":false}}}

我应该如何获取其他端点,如:度量、bean、缓存等?

eyh26e7m

eyh26e7m1#

info,health 是spring boot actuator的默认端点。
暴露终结点

似乎您没有在服务器上声明终结点 application.properties . 如果是,请添加以下内容重试:

  1. // Enable everything with wildcard
  2. management.endpoints.web.exposure.include=*
  3. // You can also disable some of them
  4. management.endpoints.web.exposure.exclude=jolokia,liquibase

相关问题