Spring 引导执行器 - 自定义端点

Spring Boot Actuator - Custom Endpoints

我在我的项目中使用 Spring Boot Actuator 模块,它公开 REST 端点 URL 以监控和管理生产环境中的应用程序使用情况,而无需对它们中的任何一个进行编码和配置。

默认情况下,仅公开 /health/info 个端点。

我正在根据我的用例通过 application.properties 文件自定义端点。

application.properties.

#To expose all endpoints
management.endpoints.web.exposure.include=*
 
#To expose only selected endpoints
management.endpoints.jmx.exposure.include=health,info,env,beans

我想了解 Spring Boot 究竟在哪里为 /health/info 创建实际端点以及它如何通过 HTTP 公开它们?

感谢@Puce 和@MarkBramnik 帮助我完成参考文档和代码存储库。

我想了解端点如何工作以及它们如何通过 HTTP 公开,以便我可以创建自定义端点以在我的应用程序中利用。

Spring Framework 的一大特点是它很容易扩展,我也能做到这一点。

要创建自定义执行器端点,请在 class 上使用 @Endpoint 注释。然后利用方法上的 @ReadOperation / @WriteOperation / @DeleteOperation 注释根据需要将它们公开为执行器端点 bean。

参考文档:Implementing Custom Endpoints

参考范例:

@Endpoint(id="custom_endpoint")
@Component
public class MyCustomEndpoint {

    @ReadOperation
    @Bean
    public String greet() {
        return "Hello from custom endpoint";
    }
}

需要在要启用的执行器端点列表中配置端点 ID,即 custom_endpoint。

application.properties :

management.endpoints.web.exposure.include=health,info,custom_endpoint

重新启动后,端点工作得很好!