项目上线以后,如何对项目进行监控
监控的目的是,程序执行时,底层做了很多的事;程序中有多少个bean,bean之间有什么关系,有多少日志,有多少catch,请求路径和bean之间的关系等等
因此通过spring boot actuator这个工具来实现这些功能,监控spring 项目
spring actuator里面内置了 20多个类型的断点,可以通过手册来查询
如果端点从来不用,就不暴露;暴露会影响性能,且容易被别人窃取,所以要按需暴露。
搜spring …
返回当前服务健康程度:
返回一个json格式数据:
返回服务端一些相关信息:
在application properties中
# actuator
# 只暴露beans
# management.endpoints.web.exposure.include=beans
#表示所有端点都想暴露
management.endpoints.web.exposure.include=*
#要排除暴露的端点
management.endpoints.web.exposure.exclude=info,catch
以上是内置的端点,也可以自定义一些端点。
在actuator包中,新建DatabaseEndpoint类
@Component//该注解表示 类要交给容器管理
@Endpoint(id = "database")
public class DatabaseEndpoint {
private static final Logger logger = LoggerFactory.getLogger(DatabaseEndpoint.class);
@Autowired
private DataSource dataSource;
@ReadOperation//表明该方法是get请求
public String checkConnection() {
try (
Connection conn = dataSource.getConnection();
) {
return CommunityUtil.getJSONString(0, "获取连接成功!");
} catch (SQLException e) {
logger.error("获取连接失败:" + e.getMessage());
return CommunityUtil.getJSONString(1, "获取连接失败!");
}
}
}
测试:
设置actuator管理权限,只有管理员才能访问actuator目录下的文件
测试访问health
不可以访问,需要登录
登录 普通用户:
用管理员登录:
可以访问