CustomHealthIndicator.java
/** * 自定义健康端点 继承AbstractHealthIndicator类 也可以实现 HealthIndicator接口的 * @author oKong * */ //这里也可以使用 类似@ConditionalOnMissingBean写法自动加载的 //这里的name 就是默认健康节点的名称了 @Component("oKong") public class CustomHealthIndicator extends AbstractHealthIndicator{ @Override protected void doHealthCheck(Builder builder) throws Exception { //设置健康信息 builder.withDetail("code", "0123") .withDetail("version", "v0.1") //有其他信息可继续添加的 .up().build(); } }最后效果:
{ "status": "DOWN", "oKong": { "status": "UP", "code": "0123", "version": "v0.1" }, "diskSpace": { "status": "UP", "total": 120032587776, "free": 8374538240, "threshold": 10485760 }, "redis": { "status": "DOWN", "error": "org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool" } }这方面用的不多,至于其他详细信息,可以查看官网:
自定义端点出来在原来内置的端点进行添加,访问的路径还是内置的路径,我们还能通过完全自定义一个端点来实现我们的业务需求的。
首先,我们来看看健康端点对应的类org.springframework.boot.actuate.endpoint.HealthEndpoint,其是继承了AbstractEndpoint<T>来实现的。通过IDE我们也能看到,大部分的端点都是继承此抽象类来完成的。
所以,我们也通过继承此类来实现自定义端点。
CustomEndPoint.java
加入了@ConfigurationProperties后可在配置文件中,设置是否开启等等。当然也可以加入自定义的参数了,这里就默认了,没有添加额外的参数。
参考资料https://www.jianshu.com/p/af9738634a21
总结本注解主要介绍了一些原生端点和自定义端点的相关实践。对于一般的信息,使用使用这些原生的端点就能基本满足了,但由于返回的是json串,不够明了。下一章节就介绍下,利用Spring Boot Admin进行可视化的监控,比如有图表信息、查看日志输出等等,通过界面来进行展现。
最后目前互联网上很多大佬都有SpringBoot系列教程,如有雷同,请多多包涵了。原创不易,码字不易,还希望大家多多支持。若文中有所错误之处,还望提出,谢谢。
老生常谈个人QQ:499452441
微信公众号:lqdevOps
个人博客:
完整示例:https://github.com/xie19900123/spring-boot-learning/tree/master/chapter-27