@Configuration
@EnableWebMvc
@Import({
ConfigurationPropertiesReportEndpointAutoConfiguration.class,
EndpointAutoConfiguration.class,
WebEndpointAutoConfiguration.class,
HealthEndpointAutoConfiguration.class,
HealthIndicatorAutoConfiguration.class,
InfoEndpointAutoConfiguration.class,
InfoContributorAutoConfiguration.class,
LogFileWebEndpointAutoConfiguration.class,
LoggersEndpointAutoConfiguration.class,
BeansEndpointAutoConfiguration.class,
EnvironmentEndpointAutoConfiguration.class,
CachesEndpointAutoConfiguration.class,
AuditEventsEndpointAutoConfiguration.class,
MetricsAutoConfiguration.class,
MetricsEndpointAutoConfiguration.class,
WebMvcMetricsAutoConfiguration.class,
ManagementWebSecurityAutoConfiguration.class,
ManagementContextAutoConfiguration.class,
ServletManagementContextAutoConfiguration.class,
})
@EnableConfigurationProperties(CorsEndpointProperties.class)
public class ActuatorConfiguration2 {
@Bean //taken from WebMvcEndpointManagementContextConfiguration.class
public WebMvcEndpointHandlerMapping endpointHandlerMapping(WebEndpointsSupplier webEndpointsSupplier,
ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier
controllerEndpointsSupplier, EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties
corsProperties, WebEndpointProperties webEndpointProperties,Environment environment) {
List<ExposableEndpoint<?>> allEndpoints = new ArrayList<>();
Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
allEndpoints.addAll(webEndpoints);
allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
//EndpointMapping endpointMapping = new EndpointMapping(webEndpointProperties.getBasePath());
String basePath = webEndpointProperties.getBasePath();
EndpointMapping endpointMapping = new EndpointMapping(basePath);
boolean shouldRegisterLinksMapping = StringUtils.hasText(basePath) ||
ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT);
return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes,
corsProperties.toCorsConfiguration(),
new EndpointLinksResolver(allEndpoints, webEndpointProperties.getBasePath()),
shouldRegisterLinksMapping);
}
@Bean
public DispatcherServletPath dispatcherServletPath(){
return () -> "/";
}
}
http://localhost:8090/com.springmvc.actuator.demo3/actuator/
{"_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}}}
我应该做什么来获取其他endpoint,比如:度量、bean、缓存等?
信息、health
是Spring Boot执行器的默认endpoint。
公开endpoint
您似乎没有在application.properties
上声明endpoint。如果是,请添加以下内容再试一次:
// Enable everything with wildcard
management.endpoints.web.exposure.include=*
// You can also disable some of them
management.endpoints.web.exposure.exclude=jolokia,liquibase
{“Status”:“Down”} 我需要做什么才能显示自定义健康状况指示器?
目标:保护除信息和健康之外的所有执行器endpoint,但健康endpoint显示用户身份验证时的详细信息。 谁有办法解决这个问题?
null 在我的文件中,我启用了web应用程序默认禁用的所有endpoint(按照https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-endpoints-exposing-endpoints)。 我希望能够访问所有的执行器endp
但我想要一些我可以调用从AWS弹性负载均衡器/自动缩放组。默认情况下,如果一个实例未通过健康检查,ELB/ASG将终止它并用一个新的实例替换它。问题是一些健康检查,如DataSourceHealthIndicator,会在数据库关闭时向下报告,但我的应用程序实例在其他方面是完全健康的。如果我使用默认行为,AWS将抛出完全正常的实例,直到数据库重新启动,这将导致我的账单增加。 我可以去掉DataSo
第一次尝试执行器依赖关系时,我将其配置为选入 当我在本地调用时,大约需要1.4秒来响应。请记住,这是一个本地调用,来自服务器的同一台机器。 如果我创建了一个以空响应进行响应的常规endpoint,则请求只需几毫秒。 这正常吗?我能让它回复快一点吗?
在我们的Spring Boot应用程序中,我们使用对可以访问我们应用程序的用户进行身份验证。我们在身份验证功能上没有看到任何问题,但是当我们点击URL时,我们会得到LDAP的以下状态: 在跟踪此空指针异常时,我们在尝试访问时获得此跟踪: 最后,下面是我们的安全配置的样子: 现在我们确实在控制台中得到一条消息,说,但这是我们的预期,我们对此很满意。看来健康终点并不尊重这一点。我不知道这是我们的代码的