8000 GitHub - codeisangel/aio-runtime
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

codeisangel/aio-runtime

Repository files navigation

系统运行记录集成方案

系统运行记录模块旨在记录系统运行时的数据,帮助开发者了解系统运行情况,以及通过运行数据确认系统问题,减少对接调试时间。

体验地址: http://119.163.197.219:13456/view/runtime 密码 : admin /admin@1024

功能模块

  1. 接口访问记录 。 接口访问记录会记录 接口地址,请求方式,请求参数,相应结果,请求人,请求人姓名,请求企业ID,请求企业名称,访问时间,追踪码,异常类,异常信息,异常堆栈信息等。
  2. 日志订阅。通过日志的Marker功能标记特定的日志,日志会自动存储,日志订阅模块可以查询和处理被标记的日志。
  3. 项目配置。可以查询当前spring boot 的所有配置信息。
  4. bean查询。查询当前项目的所以Spring bean。
  5. 接口查询。查询当前项目下的所有接口API。
  6. 日志查询与存储。可以保存查询方案,持久化。 日志存储使用 Lucene ,经过测试 200 万 日志每天,检索性能可以做到一秒以内。
  7. 日志级别查询,与日志级别设置。
  8. 日志消息推送。支持飞书机器人消息推送。
  9. 可以通过接口调用spring bean方法。可以帮助用户在服务运行时处理异常。

第一步 : Maven 引入依赖

<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 拦截器 ,拦截器会使用雪花算法标记线程 ,并且记录到日志中。效果如下图

img.png

日志订阅使用方式

示例代码如下 :

log.error(SubscribeMarker.getMarker("MappingsEndpoint"), "读取接口信息失败。MappingsEndpoint 未注入。请引入 spring-boot-starter-actuator 模块,并且开启MappingsEndpoint ");

只需要在打印日志时,添加一个标签声明,控制台也可以通过这个标记查询这个标记的所有订阅日志。

更新日志

1.1.8

  1. 修改更新日志级别接口bug

1.1.7

  1. 添加异常信息收集功能。可用于前端的异常上报。
  2. 修改日志索引合规则。 按照周合并索引库

1.1.6

  1. 解决日志模块索引文件太多导致的内存溢出问题。添加了日志索引合并功能

1.1.5

  1. 优化执行bean功能。方法重载导致的方法重名,参数构造难度高。
  2. 添加飞书机器人日志订阅通知

1.1.4

  1. 新增日志列表按照时间排序功能。
  2. 新增日志订阅通知功能。
  3. 解决页面加密安全bug。

1.1.3

  1. 添加日志追踪码拦截器
  2. 修改接口请求路径接口不一致,导致集成复杂问题
  3. 默认开启日志组件安全功能

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
0