mirror of
https://gitee.com/huoyo/ko-time.git
synced 2025-12-06 16:58:26 +08:00
3.4 KiB
3.4 KiB
存储多样性
v2.2.0开始支持数据库存储接口信息功能,可在内存和数据库中进行切换
内存存储
更改配置:
ko-time.saver=memory #默认存储方式,无需此配置也行
数据库存储
1.更改配置:
ko-time.saver=database
2.数据表创建
create table ko_method_node (
id varchar(200) not null primary key comment '主键' ,
name varchar(200) null comment '类名+方法名' ,
class_name varchar(200) null comment '类名' ,
method_name varchar(200) null comment '方法名' ,
route_name varchar(200) null comment '路由,controller才有' ,
method_type varchar(64) null comment '方法类型'
) comment '方法信息表';
create table ko_method_relation (
id varchar(200) not null primary key comment '' ,
source_id varchar(200) null comment '调用方id' ,
target_id varchar(200) null comment '被调用方id' ,
avg_run_time numeric(10,2) null comment '平均耗时' ,
max_run_time numeric(10,2) null comment '最大耗时' ,
min_run_time numeric(10,2) null comment '最小耗时'
) comment '方法调用关系表';
;
create table ko_exception_node (
id varchar(200) not null primary key comment '主键' ,
name varchar(200) null comment '异常名' ,
class_name varchar(200) null comment '类名' ,
message varchar(200) null comment '异常消息'
) comment '异常表';
create table ko_exception_relation (
id varchar(200) not null primary key comment '' ,
source_id varchar(200 null comment '调用方法id' ,
target_id varchar(200) null comment '异常id' ,
location int null comment '异常位置'
) comment '异常关系表';
create table ko_param_ana (
source_id varchar(200) null comment '调用方法id' ,
params varchar(200) null comment '参数组合,-分隔' ,
avg_run_time numeric(10,2) null comment '平均耗时' ,
max_run_time numeric(10,2) null comment '最大耗时' ,
min_run_time numeric(10,2) null comment '最小耗时'
) comment '参数分析表';
方法调用信息扩展监听
如果需要做方法调用信息进行监听,然后做一些扩展的,可以使用此方法
1.新建监听类,实现InvokedHandler,并能加上注解@KoListener即可
@KoListener
public class TestInvoke implements InvokedHandler {
@Override
public void onInvoked(MethodNode current, MethodNode parent, Parameter[] names, Object[] values) {
System.out.println("调用的方法:"+current);
System.out.println("调用当前方法的上一级方法:"+parent);
System.out.println("调用的方法-参数名称:"+names);
System.out.println("调用的方法-具体参数:"+values);
}
}
2.如果需要监听异常情况
实现InvokedHandler的默认方法即可
@KoListener
public class TestInvoke implements InvokedHandler {
@Override
public void onInvoked(MethodNode current, MethodNode parent, Parameter[] names, Object[] values) {
}
@Override
public void onException(MethodNode current, MethodNode parent, ExceptionNode exception, Parameter[] names, Object[] values) {
System.out.println("异常:"+exception);
}
}
为了让作者不要偷懒,督促他好好维护和开发,我准备用金钱对他进行鞭笞