本公开涉及计算机应用领域,尤其涉及一种远程调试方法、装置、设备及存储介质。
背景技术:
1、在互联网应用中,线上服务出现问题是比较常见的现象。在线上应用出现故障时,最常见的解决方案包括查看日志、在测试环境进行调试等方法。但是这些方法都存在一些缺点,比如因为开发者经验不够等原因导致埋点少,日志信息不够全面,而且依靠日志来推测故障原因,通常会耗费时间较长,效率低下。而线下调试也无法完全模拟线上环境,甚至有可能根本就不能重现线上问题。总之,它们都不能高效地帮助程序员定位和解决线上问题。
技术实现思路
1、本公开提供了一种远程调试方法、装置、设备及存储介质,以至少解决现有技术中存在的以上技术问题。
2、根据本公开的第一方面,提供了一种远程调试方法,包括:
3、获取系统任一节点的第一连接信息,基于所述第一连接信息对所述任一节点的运行状态进行判定,得到判定结果;
4、基于所述判定结果确定运行状态异常的节点作为异常节点;或
5、基于所述第一连接信息和第一算法,计算所述任一节点中连接数最少的节点,将所述连接数最少的节点确定异常节点;
6、基于所述异常节点的节点信息暂停新增所述异常节点与用户网络之间的连接,直至所述异常节点与现存用户网络之间的连接数为零;
7、所述异常节点与现存用户网络之间的连接数为零后,基于所述异常节点的节点信息配置线上调试参数,基于所述调试参数建立所述异常节点与调试服务器之间的调试通路;
8、基于所述调试通路在所述异常节点中设置断点,基于所述断点和节点日志对所述异常节点进行线上调试;
9、所述线上调试完成后,基于所述异常节点的节点信息恢复所述异常节点与所述用户网络之间的连接。
10、在一可实施方式中,所述直至所述异常节点与现存用户网络之间的连接数为零后,所述方法还包括:
11、获取所述系统的状态信息存储位置,检测所述系统的第一共享存储点中是否存在所述状态信息;
12、若所述状态信息未存储在所述第一共享存储点中,则将所述异常节点中的状态信息导入所述系统中的所述剩余节点中。
13、在一可实施方式中,所述基于所述调试参数建立所述异常节点与调试服务器之间的调试通路后,所述方法还包括:
14、基于所述系统正常运行时的第二连接信息设置第一阈值;
15、实时获取所述系统的所述剩余节点的第三连接信息,基于所述第一阈值监测所述第三连接信息,当所述第三连接信息低于所述第一阈值时,基于所述剩余节点的状态信息配置新的节点,将所述新的节点添加到所述剩余节点中用于所述系统的运行。
16、在一可实施方式中,所述直至所述异常节点与现存用户网络之间的连接数为零后,所述方法还包括:
17、访问所述系统的存储单元中的操作日志,基于所述操作日志查找所述系统中所述剩余节点的前一个版本的状态和操作记录;
18、基于所述操作日志中的状态信息和操作记录,将所述剩余节点的当前运行版本回滚到所述前一个版本。
19、在一可实施方式中,所述基于所述断点和节点日志对所述异常节点进行线上调试,包括:
20、基于所述断点检测所述异常节点程序段运行时的变量值和调用栈信息;
21、基于所述变量值和调用栈信息确定所述异常节点中的问题程序段;
22、获取所述节点日志,基于所述节点日志和所述问题程序段确定所述异常节点的异常原因,基于所述异常原因对所述异常节点进行线上调试。
23、根据本公开的第二方面,提供了一种远程调试装置,包括:
24、监控单元,用于获取系统任一节点的第一连接信息,基于所述第一连接信息对所述任一节点的运行状态进行判定,得到判定结果;
25、异常判定单元,用于基于所述判定结果确定运行状态异常的节点作为异常节点;或基于所述第一连接信息和第一算法,计算所述任一节点中连接数最少的节点,将所述连接数最少的节点确定异常节点;
26、节点控制单元,用于基于所述异常节点的节点信息暂停新增所述异常节点与用户之间的连接,直至所述异常节点与现存用户网络之间的连接数为零;
27、调试单元,用于所述异常节点与现存用户网络之间的连接数为零后,基于所述异常节点的节点信息配置线上调试参数,基于所述调试参数建立所述异常节点与调试服务器之间的调试通路;基于所述调试通路在所述异常节点中设置断点,基于所述断点和节点日志对所述异常节点进行线上调试;
28、所述节点控制单元还用于,所述线上调试完成后,基于所述异常节点的节点信息恢复所述异常节点与所述用户网络之间的连接。
29、在一可实施方式中,负载转移单元,用于获取所述系统的状态信息存储位置,检测所述系统的第一共享存储点中是否存在所述状态信息;若所述状态信息未存储在所述第一共享存储点中,则将所述异常节点中的状态信息导入所述系统中的所述剩余节点中;
30、节点扩容单元,用于基于所述系统正常运行时的第二连接信息设置第一阈值;实时获取所述系统的所述剩余节点的第三连接信息,基于所述第一阈值监测所述第三连接信息,当所述第三连接信息低于所述第一阈值时,基于所述剩余节点的状态信息配置新的节点,将所述新的节点添加到所述剩余节点中用于所述系统的运行;
31、回滚单元,用于访问所述系统的存储单元中的操作日志,基于所述操作日志查找所述系统中所述剩余节点的前一个版本的状态和操作记录;基于所述操作日志中的状态信息和操作记录,将所述剩余节点的当前运行版本回滚到所述前一个版本。
32、在一可实施方式中,所述调试单元还用于,基于所述断点检测所述异常节点程序段运行时的变量值和调用栈信息;基于所述变量值和调用栈信息确定所述异常节点中的问题程序段;获取所述节点日志,基于所述节点日志和所述问题程序段确定所述异常节点的异常原因,基于所述异常原因对所述异常节点进行线上调试。
33、根据本公开的第三方面,提供了一种电子设备,包括:
34、至少一个处理器;以及
35、与所述至少一个处理器通信连接的存储器;其中,
36、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
37、根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
38、本公开的远程调试方法、装置、设备及存储介质,通过监测系统节点的运行状态,识别异常节点并基于异常节点进行限制连接、节点扩容、版本回滚操作后,再进行远程调试,减少了调试时间,线上调试也可完全实现对服务环境的模拟,提高了测试效率,高效的解决线上问题。
39、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。