一种金融交易日志中链路拓扑的自动构建方法与流程

文档序号:30949798发布日期:2022-07-30 07:00阅读:194来源:国知局
一种金融交易日志中链路拓扑的自动构建方法与流程

1.本发明涉及金融业交易系统交易链构建技术领域,具体为一种金融交易日志中链路拓扑的自动构建方法。


背景技术:

2.现有的金融业核心业务均为各种交易,所以需要对交易进行各种类型/方式的监控,监控方式主要有三种,一种是通过天旦等厂商的bpc(业务性能分析)产品对交易进行网络抓包和解析,然后将已知的交易类型和拓扑手工梳理后固化到系统中去;另一种则是通过将应用的日志采集到日志平台,将交易流水id等字段从日志中解析出来,然后再手工梳理各个模块间的映射关系,生成交易链路拓扑;最后一种是通过在应用所在的服务器安装agent,对应用的方法调用进行拦截后用一个中心的全局流水号生成服务器生成全局流水id与各个模块的日志关联起来。上述现有的交易监控方式通常为网络抓包手工解析、日志采集手工解析、安装代理拦截方法调用统一生成全局流水号。人工解析梳理需要非常繁琐的劳动,其中涉及到上百条交易链路拓扑的解析、匹配、流水号字段映射、审核、校对等工作,以一个核心交易系统为例,通常需要一个较为熟练的实施工程师3人/月和一个业主方工程师3人/月的工作时间。而且人工解析梳理难以并行化:通常需要一个系统一个系统的梳理,只能串行操作,时间周期无限拉长。金融业交易系统通常由不同厂商承建,日志格式多种多样,而且日志格式修改困难,很多系统已经运行数年和数十年,让供应商修改日志难度非常大。下面举例交易系统应用日志的样例格式如下:
3.模块a请求模块b日志格式:
[0004]“user yanghaoying send request,transaction type:loan,transaction_id=0012345”[0005]
模块a请求模块d日志格式:
[0006]“user yanghaoying send request,transaction type:withdraw,transaction_id=0012346”[0007]
模块b接收模块a请求和发送到模块c请求日志格式:
[0008]“received user yanghaoying request,t_id=0012345,send request liushui_id=0xabc123”[0009]
模块c接收请求日志格式:“received request,ls_id=0xabc123”[0010]
模块d接收请求日志格式:“received request,tid=0012346”[0011]
如果手工梳理,则首先需要编写日志解析规则,将各种流水号id从日志中解析出来,其次需要将模块a的transaction_id字段和b模块的t_id、d模块的tid字段建立映射,同时将模块b内的t_id字段和liushui_id字段建立一对一关联,再将模块b的liushui_id字段和模块c的ls_id字段建立映射,上述过程极为繁杂。


技术实现要素:

[0012]
为解决上述背景技术中提出的问题,本发明的目的在于提供一种金融交易日志中链路拓扑的自动构建方法,解决了对交易链路拓扑需要手工梳理的问题:手工梳理费时费力,通常实施人员不懂客户的业务,需要业主方全力配合,费时费力,容易出错。本发明通过机器学习的方式自动构建交易链路,能够节省大量的人力和时间,并且保证准确率。另外,本发明解决了需要在应用所在服务器安装agent的问题,可以节约系统资源,更好的保障系统服务。
[0013]
为实现上述目的,本发明提供如下技术方案:一种金融交易日志中链路拓扑的自动构建方法,包括以下构建步骤,
[0014]
步骤一,日志模板抽取和参数提取
[0015]
日志模板抽取是一项较为成熟的技术,包括早期的logcluster和近期的spell、drain均归纳于日志模板提取中;
[0016]
步骤二:流水号提取
[0017]
以数量最多的参数去重后数量为基准,保留各模块中数量基准值95%以上的字段为流水号字段,生成各模块的流水号字段集合;
[0018]
步骤三:流水号字段映射和关联
[0019]
进行流水号字段集合间的集合运算,发现
[0020]
set(模块a:transaction_id)=set(模块b:t_id)+set(模块d:tid)
[0021]
set(模块b:liushui_id)=set(模块c:ls_id)
[0022]
对同一模块内超过2个流水号字段的情况,进行字段共现计算,发现
[0023]
模块b中:set(t_id)与set(liushui_id)一一对应
[0024]
步骤四:模块串联
[0025]
根据步骤三的计算,得出模块a=》模块b,模块a=》模块d,模块b=》模块c的模块间拓扑关系;
[0026]
步骤五:交易串联
[0027]
将模块a的transaction_id字段与模块b的t_id字段、模块d的tid字段自动映射,将模块b内的t_id字段与liushui_id字段进行自动一一关联,将模块b的liushui_id字段与模块c的ls_id字段自动映射。
[0028]
通过上述机器学习技术将交易日志中的链路拓扑自动构建完毕,并可以根据某一模块中的流水id查询到相关的日志。
[0029]
日志模板抽取以后生成的模板如发生过度聚合,通过n-gram技术匹配。
[0030]
所述的n-gram技术匹配具体应用操作步骤为:将变量部分“loan,transaction_id=0012345”经过分词后变为“[var]transaction_id 0012345”、“loan[var]0012345”、“loan transaction_id[var]”三种情况,然后用实际的日志去匹配0012345是真正的变量,同时发现交易类型loan所在位置只有有限取值,为交易类型字段。
[0031]
步骤二中生成各模块的流水号字段集合的具体流程为:
[0032]
模块a流水号字段集合:transaction_id:(0012345,0012346,......,0020000)
[0033]
模块b流水号字段集合:t_id:(0012345,0012400,......,0018000),liushui_id:(0xabc123,0xabc124,...,0xabc200)
[0034]
模块c流水号字段集合:ls_id:(0xabc123,0xabc124,...,0xabc200)
[0035]
模块d流水号字段集合:tid:(0012346,0012347,......,0020000)。
[0036]
本发明的有益效果如下:本发明金融交易日志中链路拓扑的自动构建方法,解决了对交易链路拓扑需要手工梳理的问题:手工梳理费时费力,通常实施人员不懂客户的业务,需要业主方全力配合,费时费力,容易出错。本发明通过机器学习的方式自动构建交易链路,能够节省大量的人力和时间,并且保证准确率。另外,本发明解决了需要在应用所在服务器安装agent的问题,可以节约系统资源,更好的保障系统服务。
附图说明
[0037]
图1为本发明的流程示意图;
具体实施方式
[0038]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0039]
如图1所示,本发明针对交易链路的全自动构建,过程如下:
[0040]
步骤一:日志模板抽取和参数提取
[0041]
日志模板抽取是一项较为成熟的技术,包括早期的logcluster和近期的spell、drain等都可以做到日志模板提取,但是日志模板抽取以后生成的模板有可能会过度聚合,例如将模块a的请求日志聚合为
[0042]“user yanghaoying send request,transaction type:***”[0043]
这个时候需要找到被替换为变量的***中的具体参数。我们采用了一种n-gram技术,例如将变量部分“loan,transaction_id=0012345”经过分词后变为“[var]transaction_id 0012345”、“loan[var]0012345”、“loan transaction_id[var]”三种情况,然后用实际的日志去匹配发现0012345是真正的变量,同时可以发现交易类型loan所在位置只有有限取值,可能为交易类型字段。
[0044]
步骤二:流水号提取
[0045]
以数量最多的参数去重后数量为基准,保留各模块中数量基准值95%以上的字段为流水号字段,生成各模块的流水号字段集合。
[0046]
模块a流水号字段集合:transaction_id:(0012345,0012346,......,0020000)
[0047]
模块b流水号字段集合:t_id:(0012345,0012400,......,0018000),liushui_id:(0xabc123,0xabc124,...,0xabc200)
[0048]
模块c流水号字段集合:ls_id:(0xabc123,0xabc124,...,0xabc200)
[0049]
模块d流水号字段集合:tid:(0012346,0012347,......,0020000)
[0050]
步骤三:流水号字段映射和关联
[0051]
进行流水号字段集合间的集合运算,发现
[0052]
set(模块a:transaction_id)=set(模块b:t_id)+set(模块d:tid)
[0053]
set(模块b:liushui_id)=set(模块c:ls_id)
[0054]
对同一模块内超过2个流水号字段的情况,进行字段共现计算,发现
[0055]
模块b中:set(t_id)与set(liushui_id)一一对应
[0056]
步骤四:模块串联
[0057]
根据步骤三的计算,得出模块a=》模块b,模块a=》模块d,模块b=》模块c的模块间拓扑关系
[0058]
步骤五:交易串联
[0059]
将模块a的transaction_id字段与模块b的t_id字段、模块d的tid字段自动映射,将模块b内的t_id字段与liushui_id字段进行自动一一关联,将模块b的liushui_id字段与模块c的ls_id字段自动映射。
[0060]
至此,已经通过机器学习技术将交易日志中的链路拓扑自动构建完毕,并可以根据某一模块中的流水id查询到相关的日志。
[0061]
本发明经过实际测试应用,我们的方案能够大幅节省实施人力和使用成本,本技术方案节约人力成本约每核心交易系统6人/月,且目前市场上尚无现有的自动化替代方案可以达到完全同样的目的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1