[发明专利]故障定位方法、装置、电子设备、介质及程序产品在审
申请号: | 202111468103.7 | 申请日: | 2021-12-03 |
公开(公告)号: | CN114138649A | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 杨聪敏;李人杰;赵立伟 | 申请(专利权)人: | 北京神州新桥科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京智信四方知识产权代理有限公司 11519 | 代理人: | 吕雁葭 |
地址: | 100089 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 故障 定位 方法 装置 电子设备 介质 程序 产品 | ||
本公开实施例公开了一种故障定位方法、装置、电子设备、介质及程序产品,所述方法包括:在监测到第一埋点对应的第一埋点输出信息后,在第一预设时长内监测第二埋点对应的第二埋点输出信息,所述第二埋点位于当前运行的程序中所述第一埋点所在位置之后的位置处,所述当前运行的程序在所述第一埋点和所述第二埋点之间有至少两个函数;在所述第一预设时长内未监测到所述第二埋点输出信息,获取所述第一埋点和所述第二埋点之间的各个待监测函数;获取当前正在执行的至少一个线程中正在调用的调用函数;将所述各个待监测函数中属于所述调用函数的待监测函数,确定为故障函数。该技术方案能够减少埋点数量,降低服务器负载,且故障定位也很快捷准确。
技术领域
本公开实施例涉及计算机技术领域,具体涉及一种故障定位方法、装置、电子设备、介质及程序产品。
背景技术
在一个业务系统的客户较多的情况下,业务系统出现一点微小的故障都有可能在瞬间影响数以万计的客户。因此,为了避免业务系统出现故障影响客户,业务系统需要在出现故障的时候能够快速实现自愈。为了使业务系统在出现故障的时候能够快速实现自愈,需要对故障进行定位,确定故障出现的位置,这样在业务系统出现故障时,就可以将确定到的故障位置通知给对应的技术人员,以便技术人员及时进行故障排除。
为了确定出现故障的具体位置,目前可以采用埋点的方式进行监控。埋点指的是在应用程序中插入输出语句。程序在运行到该输出语句时,可以输出预设字符。如果监测到预设字符,则说明输出语句前的程序并无问题。如此,可以确定程序中出现故障的位置。但是,埋点这种技术方案仅能确定两个埋点之间的程序是否出现故障。为了确定程序中各个函数的运行情况,需要在任意两个函数之间进行埋点。那么,当业务系统的体量较大时,需要埋点的数量大幅度增加,对代码的修改量较大,也会给服务器带来额外的负担。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种故障定位方法、装置、电子设备、介质及程序产品。
第一方面,本公开实施例中提供了一种故障定位方法。
具体的,所述故障定位方法,包括:
在监测到第一埋点对应的第一埋点输出信息后,监测第二埋点对应的第二埋点输出信息,所述第二埋点位于当前运行的程序中所述第一埋点位置之后的相邻埋点位置处,所述当前运行的程序在所述第一埋点和所述第二埋点之间有至少两个函数;
在第一预设时长内未监测到所述第二埋点输出信息时,获取所述第一埋点和所述第二埋点之间的各个待监测函数的标识;
获取当前正在执行的至少一个线程中正在调用的调用函数的标识;
基于所述各个待监测函数的标识和所述调用函数的标识,将所述各个待监测函数中属于所述调用函数的待监测函数确定为故障函数。
结合第一方面,本公开实施例在第一方面的第一种实现方式中,所述方法还包括:
根据历史故障信息和系统中服务器的负载能力,确定各埋点位置;
在所述各埋点位置设置对应的埋点代码。
结合第一方面和第一方面的第一种实现方式,本公开实施例在第一方面的第二种实现方式中,所述方法还包括:
在监测到第一埋点对应的第一埋点输出信息后,删除所述第一埋点输出信息。
结合第一方面、第一方面的上述实现方式,本公开在第一方面的第三种实现方式中,其中,所述获取当前正在执行的至少一个线程中正在调用的调用函数的标识,包括:
获取线程列表,所述线程列表包括至少一个正在执行的线程;
获取所述至少一个正在执行的线程的方法栈;
基于所述方法栈的栈顶的函数信息,得到所述调用函数的标识。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州新桥科技有限公司,未经北京神州新桥科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111468103.7/2.html,转载请声明来源钻瓜专利网。