一种生产工单问题排查方法、装置、设备及存储介质制造方法及图纸

技术编号:38867678 阅读:19 留言:0更新日期:2023-09-22 14:06
本申请公开了一种生产工单问题排查方法、装置、设备及存储介质,涉及计算机技术领域,包括:利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎;基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息;确定用于获取外部节点数据的方法对应的方法名称,将所述方法名称与所述本地缓存信息进行匹配,以确定与所述方法名称对应的目标链路节点数据;将所述目标链路节点数据进行反序列化操作,得到反序列化后信息,以基于所述反序列化后信息在本地进行问题排查。由此,本申请能够在本地还原线上事故,便于排查线上问题。便于排查线上问题。便于排查线上问题。

【技术实现步骤摘要】
一种生产工单问题排查方法、装置、设备及存储介质


[0001]本专利技术涉及计算机
,特别涉及一种生产工单问题排查方法、装置、设备及存储介质。

技术介绍

[0002]目前互联网公司产品层出不穷,产品迭代速度快,产品质量一方面依赖公司研发、测试以及上线流程来保证,一方面依赖用户给到产品使用体验的反馈。当开发者收到用户对产品提出的工单,通常情况下作为开发的处理方案大致有以下几种:经验判断是产品问题、技术问题或是业务问题;产品问题交由对应产品设计完善流程;技术或业务问题根据线上监控数据还原事故现场。如果日志、调用链或指标监控有直观的异常信息,那么对于开发者来说定位问题,会变得异常容易,可如果排查完所有的线索后发现问题或许被隐藏在自己编写的成百上千行的计算和判断逻辑中时(项目就常出现这类情况,数据源多且依赖下游,最后看到结果与预期不符时,人工反推过程变得难以实现且费时费力),那么通常情况下对开发者来说最好的方式就是debug代码来发现问题。目前针对工单问题,多数开发者都会寄希望于测试同学在测试环境复现问题后,根据测试数据调试还原事故现场,如果关联的数据太多测试往往难以复现,开发通常只能通过调用链人工扒代码来发现问题,这是最普遍的处理方式。当然市面上有公司支持开发者直连线上环境,这样处理问题当然会变得简单很多,但仔细想想其实并不可行,首先直连线上环境是否意味着跳过权限校验直接拥有了线上数据的操作权限?其次数据在实时更新,想要的效果是还原事故现场而不是再造一次事故,或者有时候因为数据的变更,甚至没办法制造事故。当然可以复制一套线上数据作为只读库,但仍存在数据更新无法还原事故现场的问题。

技术实现思路

[0003]有鉴于此,本专利技术的目的在于提供一种生产工单问题排查方法、装置、设备及存储介质,能够在本地还原事故现场,便于排查线上问题,且做到无侵入,低成本使用。其具体方案如下:
[0004]第一方面,本申请公开了一种生产工单问题排查方法,包括:
[0005]利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎;
[0006]基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息;
[0007]确定用于获取外部节点数据的方法对应的方法名称,将所述方法名称与所述本地缓存信息进行匹配,以确定与所述方法名称对应的目标链路节点数据;
[0008]将所述目标链路节点数据进行反序列化操作,得到反序列化后信息,以基于所述反序列化后信息还原目标链路在程序中的上下文,并根据所述上下文在本地进行问题排查。
[0009]可选的,所述利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎之前,还包括:
[0010]基于分布式配置中心判断是否开启Dubbo mock功能;
[0011]若是,则触发所述利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎的步骤。
[0012]可选的,所述基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息,包括:
[0013]利用所述Skywalking提供的接口基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息。
[0014]可选的,所述确定用于获取外部节点数据的方法对应的方法名称之前,还包括:
[0015]基于Dubbo mock根据所述目标请求判断各待调试接口的类型,得到相应的判断结果,并根据所述判断结果将所述目标请求转发至相应的所述待调试接口。
[0016]可选的,所述根据所述判断结果将所述目标请求转发至相应的所述待调试接口,包括:
[0017]若所述待调试接口的类型为Http类,则直接将所述目标请求转发至Http接口;
[0018]若所述待调试接口的类型为Dubbo类,则将Dubbo接口的字符串形式的入参数据转化为java对象形式的入参数据,然后将所述目标请求转发至所述Dubbo接口。
[0019]可选的,所述将所述目标链路节点数据进行反序列化操作,得到反序列化后信息,包括:
[0020]若基于Dubbo调用获取所述目标链路节点数据,则利用所述Dubbo的扩展点Inovker对所述目标链路节点数据进行反序列化操作,以将所述目标链路节点数据的出入参对应的字符串转化为java对象,得到所述反序列化后信息;
[0021]若利用数据库获取所述目标链路节点数据,则利用mybatis的ResultSetHandler拦截器对所述目标链路节点数据进行反序列化操作,以将所述目标链路节点数据的出入参对应的字符串转化为java对象,得到所述反序列化后信息。
[0022]可选的,所述基于所述反序列化后信息还原目标链路在程序中的上下文,并根据所述上下文在本地进行问题排查,包括:
[0023]利用debug技术基于所述反序列化后信息还原目标链路在程序中的上下文,并根据所述上下文在本地进行问题排查。
[0024]第二方面,本申请公开了一种生产工单问题排查装置,包括:
[0025]节点数据存储模块,用于利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎;
[0026]本地缓存模块,用于基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息;
[0027]匹配模块,用于确定用于获取外部节点数据的方法对应的方法名称,将所述方法名称与所述本地缓存信息进行匹配,以确定与所述方法名称对应的目标链路节点数据;
[0028]问题排查模块,用于将所述目标链路节点数据进行反序列化操作,得到反序列化后信息,以基于所述反序列化后信息还原目标链路在程序中的上下文,并根据所述上下文
在本地进行问题排查。
[0029]第三方面,本申请公开了一种电子设备,包括:
[0030]存储器,用于保存计算机程序;
[0031]处理器,用于执行所述计算机程序,以实现前述公开的所述的生产工单问题排查方法的步骤。
[0032]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的所述的生产工单问题排查方法的步骤。
[0033]由上可知,本申请在进行问题排查时,首先利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎;基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息;确定用于获取外部节点数据的方法对应的方法名称,将所述方法名称与所述本地缓存信息进行匹配,以确定与所述方法名称对应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种生产工单问题排查方法,其特征在于,包括:利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎;基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息;确定用于获取外部节点数据的方法对应的方法名称,将所述方法名称与所述本地缓存信息进行匹配,以确定与所述方法名称对应的目标链路节点数据;将所述目标链路节点数据进行反序列化操作,得到反序列化后信息,以基于所述反序列化后信息还原目标链路在程序中的上下文,并根据所述上下文在本地进行问题排查。2.根据权利要求1所述的生产工单问题排查方法,其特征在于,所述利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎之前,还包括:基于分布式配置中心判断是否开启Dubbo mock功能;若是,则触发所述利用Skywalking采集调用链节点的链路节点数据,并将所述链路节点数据存储至ES搜索引擎的步骤。3.根据权利要求1所述的生产工单问题排查方法,其特征在于,所述基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息,包括:利用所述Skywalking提供的接口基于目标请求对应的所述链路节点数据的目标标识获取所述ES搜索引擎中的所述链路节点数据的信息并缓存至本地,得到本地缓存信息。4.根据权利要求1所述的生产工单问题排查方法,其特征在于,所述确定用于获取外部节点数据的方法对应的方法名称之前,还包括:基于Dubbo mock根据所述目标请求判断各待调试接口的类型,得到相应的判断结果,并根据所述判断结果将所述目标请求转发至相应的所述待调试接口。5.根据权利要求4所述的生产工单问题排查方法,其特征在于,所述根据所述判断结果将所述目标请求转发至相应的所述待调试接口,包括:若所述待调试接口的类型为Http类,则直接将所述目标请求转发至Http接口;若所述待调试接口的类型为Dubbo类,则将Dubbo接口的字符串形式的入参数据转化为java对象形式的入参数据,然后将所述目标请...

【专利技术属性】
技术研发人员:张翔耀
申请(专利权)人:上海微盟企业发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1