系统运行记录模块旨在记录系统运行时的数据,帮助开发者了解系统运行情况,以及通过运行数据确认系统问题,减少对接调试时间。
体验地址: http://119.163.197.219:13456/view/runtime 密码 : admin /admin@1024
- 接口访问记录 。 接口访问记录会记录 接口地址,请求方式,请求参数,相应结果,请求人,请求人姓名,请求企业ID,请求企业名称,访问时间,追踪码,异常类,异常信息,异常堆栈信息等。
- 日志订阅。通过日志的Marker功能标记特定的日志,日志会自动存储,日志订阅模块可以查询和处理被标记的日志。
- 项目配置。可以查询当前spring boot 的所有配置信息。
- bean查询。查询当前项目的所以Spring bean。
- 接口查询。查询当前项目下的所有接口API。
- 日志查询与存储。可以保存查询方案,持久化。 日志存储使用 Lucene ,经过测试 200 万 日志每天,检索性能可以做到一秒以内。
- 日志级别查询,与日志级别设置。
- 日志消息推送。支持飞书机器人消息推送。
- 可以通过接口调用spring bean方法。可以帮助用户在服务运行时处理异常。
<dependency>
<groupId>cn.aio1024.runtime</groupId>
<artifactId>runtime-record-spring-boot-starter</artifactId>
<version>1.1.7</version>
</dependency>
当前最新版本为
1.1.7
日志追踪需要依赖阿里的线程工具
transmittable-thread-local
日志追踪码与线程关联
日志存储和查询需要依赖
Lucene
, Lucene 仅能实现单机日志
系统运行时 日志级别设置 , 系统配置 , Bean管理 等模块 需要依赖
actuator
。
统一用户中心接口,和
controller
返回值对象等需要依赖basic-all
接口请求使用了AOP拦截需要依赖
aspectj
project.workspace.path=/home/guodun/workspace/electronic
项目工作目录定义在基础框架底层包中,可以为日后模块化功能提供统一的项目工作目录配置。
aio.runtime.security.enable=true
aio.runtime.security.username=guodun
aio.runtime.security.password=jldfasfsfsdflsfjasfsdfjsjf
aio.runtime.security.username
默认值为 admin 。 表示 登录的用户名
aio.runtime.security.password
默认值为admin@1024
登录密码。
aio.runtime.security.enable
表示启动默认的用户权限 , 默认值为 false ,表示不启动默认的权限
后续版本会支持客户化账号密码登录
访问地址 :
/view/runtime
@Slf4j
@Configuration
public class ServletWebInterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TraceIdInterceptor()).addPathPatterns("/**");
}
}
servlet 中添加
TraceIdInterceptor
拦截器 ,拦截器会使用雪花算法标记线程 ,并且记录到日志中。效果如下图
示例代码如下 :
log.error(SubscribeMarker.getMarker("MappingsEndpoint"), "读取接口信息失败。MappingsEndpoint 未注入。请引入 spring-boot-starter-actuator 模块,并且开启MappingsEndpoint ");
只需要在打印日志时,添加一个标签声明,控制台也可以通过这个标记查询这个标记的所有订阅日志。
- 修改更新日志级别接口bug
- 添加异常信息收集功能。可用于前端的异常上报。
- 修改日志索引合规则。 按照周合并索引库
- 解决日志模块索引文件太多导致的内存溢出问题。添加了日志索引合并功能
- 优化执行bean功能。方法重载导致的方法重名,参数构造难度高。
- 添加飞书机器人日志订阅通知
- 新增日志列表按照时间排序功能。
- 新增日志订阅通知功能。
- 解决页面加密安全bug。
- 添加日志追踪码拦截器
- 修改接口请求路径接口不一致,导致集成复杂问题
- 默认开启日志组件安全功能