SpringBoot | 第二十七章:监控管理之Actuator使用 (3)

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" } }

这方面用的不多,至于其他详细信息,可以查看官网:

Writing custom HealthIndicators

自定义端点

出来在原来内置的端点进行添加,访问的路径还是内置的路径,我们还能通过完全自定义一个端点来实现我们的业务需求的。

首先,我们来看看健康端点对应的类org.springframework.boot.actuate.endpoint.HealthEndpoint,其是继承了AbstractEndpoint<T>来实现的。通过IDE我们也能看到,大部分的端点都是继承此抽象类来完成的。

AbstractEndpoint继承类

所以,我们也通过继承此类来实现自定义端点。
CustomEndPoint.java

/** * 自定义端点 * @author oKong * */ @Component @ConfigurationProperties(prefix = "endpoints.oKong") public class CustomEndPoint extends AbstractEndpoint<Map<String,Object>>{ public CustomEndPoint() { //设置ID 即访问路径 :/oKong super("oKong"); } /** * 返回信息 */ @Override public Map<String, Object> invoke() { Map<String, Object> result = new HashMap<>(); result.put("author", "oKong"); result.put("chapter", "chapter27"); result.put("mp", "lqdevOps"); return result; } }

访问oKong

加入了@ConfigurationProperties后可在配置文件中,设置是否开启等等。当然也可以加入自定义的参数了,这里就默认了,没有添加额外的参数。

SpringBoot | 第二十七章:监控管理之Actuator使用

参考资料

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfzpd.html