[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007
文章目录
- 概述
- 解决方案
- 启用Actuator
- 暴露build相关信息
- 暴露git相关信息
- 总结
- 源码
概述
最近团队遇到一个问题,发现通过CI/CD发布的服务里面不包含自己的功能代码,于是两个小哥就开始扯皮了:开发说他的代码没有部署上去,运维说他已经部署了,于是两小哥相爱相杀了一下午。
难道就没有办法获取线上服务的当前版本信息吗?例如服务版本,构建时间,git提交记录等等。答案是肯定的,我们今天就来聊一下这个话题,这在快速迭代部署的微服务环境中环是极其有用的。
解决方案
其中一个解决方案就是通过SpringBoot提供的Actuator结合相关Maven插件来解决。通过Maven插件来生成build以及git的信息,然后通过Actuator的info
Endpoint 来暴露出相关信息。
{"git": {"commit": {"user": {"name": "shusheng007","email": "shusheng007wb@gmail.com"},"id": {"full": "0cd06517ecced826f361e2291dc96f34807223ac"},
...},"branch": "master",},"build": {"artifact": "composite","name": "composite","time": "2024-03-06T14:25:31.933Z","version": "0.0.1-SNAPSHOT","group": "top.shusheng007"}
}
下面我们就来实现以下
启用Actuator
Actuator 通过一系列Endpoint对外暴露应用非常多有用的信息,详情可以阅读相关资料。
那如何在Springboot程序中启用Actuator呢?
- 引入actuator依赖
创建一个Springboot程序,在pom.xml
文件中引入如下依赖
<dependency><groupId>org.springframework.boot<