CN110838929B - 系统错误排查方法和系统错误排查装置 - Google Patents

系统错误排查方法和系统错误排查装置 Download PDF

Info

Publication number
CN110838929B
CN110838929B CN201810935430.0A CN201810935430A CN110838929B CN 110838929 B CN110838929 B CN 110838929B CN 201810935430 A CN201810935430 A CN 201810935430A CN 110838929 B CN110838929 B CN 110838929B
Authority
CN
China
Prior art keywords
information
user
test environment
account
system error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810935430.0A
Other languages
English (en)
Other versions
CN110838929A (zh
Inventor
韩方超
阳际荣
耿诚
张天博
王�华
李增辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810935430.0A priority Critical patent/CN110838929B/zh
Publication of CN110838929A publication Critical patent/CN110838929A/zh
Application granted granted Critical
Publication of CN110838929B publication Critical patent/CN110838929B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Environmental & Geological Engineering (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种系统错误排查方法和系统错误排查装置。该系统错误排查方法包括如下步骤:提供测试环境;在当前系统运行环境中检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;根据获取到的用户行为信息和系统异常信息排查系统错误。本发明提出的系统错误排查方法和装置,至少具有如下技术效果:本发明提出的系统错误排查方法,将线上用户引流到测试环境,用少量的机器及计算资源解决系统错误排查成本问题。

Description

系统错误排查方法和系统错误排查装置
技术领域
本申请涉及计算机网络领域,特别是涉及一种系统错误排查方法和系统错误排查装置。
背景技术
在互联网技术领域,当网络系统出现问题时,需要进行问题分析和排查。网络系统的问题排查主要依赖于应用日志分析。用户行为均基于海量日志的计算、分析获得。因此,会有大量的机器资源、计算资源浪费在排查问题上。但是问题发生的概率较低,因此上述的机器资源和计算资源投入其中会造成浪费。
另外,一般的网络系统出现问题,需要用户提供问题复现场景、页面地址、操作路径,系统研发人员根据上述信息去重现问题,然后通过日志分析、测试环境debug排查问题,最终得到问题出现原因。在一些异常场景中,异常只能在用户机器上才发生,对于这种在研发不能复现的问题,研发人员往往不会去处理,或者处理优先级很低,造成隐患。
为了减少资源的利用,业界在寻找减少资源投入并能够提高问题排查效率的方法。现有技术提供的方法中,其中一种方法是将线上环境所有机器部署动态日志,获取用户行为数据,给问题排查提供数据依据。但是全量部署动态日志消耗过多的资源,并且存在未知隐患,一旦隐患发生,可能产生灾难性的影响。
发明内容
鉴于上述问题,本发明一实施例提出一种系统错误排查方法和系统错误排查装置,以解决现有技术存在的问题。
为了解决上述问题,本申请一实施例公开一系统错误排查方法,其特征在于,包括:
在检测到系统错误时,提供测试环境;
在当前系统运行环境中检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
在根据获取到的用户行为信息和系统异常信息排查系统错误。
为了解决上述问题,本申请一实施例还公开一种电子装置,该电子装置包括:
存储器,用于存储计算机可读程序;
处理器,当所述处理器读取所述存储器中的计算机可读程序时,所述电子装置执行如下操作:
在检测到系统错误时,提供测试环境;
在当前系统运行环境中检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
在根据获取到的用户行为信息和系统异常信息排查系统错误。
为了解决上述问题,本申请一实施例公开一种系统错误排查装置,包括:
提供模块,用于在检测到系统错误时,提供测试环境;
切换模块,用于在当前系统运行环境中检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
获取模块,用于获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
排查模块,用于在根据获取到的用户行为信息和系统异常信息排查系统错误。
本申请一实施例还公开一种终端设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行上述的方法。
本申请一实施例还公开一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行上述的方法。
由上述可知,本申请实施例包括以下优点:
综上所述,本发明提出的系统错误排查方法,至少具有如下技术效果:
1.本发明提出的系统错误排查方法,将线上用户引流到测试环境,用少量的机器及计算资源解决系统错误排查成本问题。
2.该方案不依赖于开发,实现方案对应用代码无侵入,在测试环境中获取用户行为数据及系统异常信息,使用更轻量的方式解决问题。
3.本发明可以在不增加依赖和不重启的情况下对java方法级的请求参数、返回值全部获取,可以做到动态热插拔,而非传统的方式,增加日志还需要重启服务。
4.在保证被测应用稳定和安全的情况下,自动获取业务链路上用户、用户行为及之间的关系,获取系统异常信息,为系统错误排查提供依据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请核心构思的示意图。
图2是本申请第一实施例的系统错误排查方法的流程图。
图3是本申请第二实施例的系统错误排查方法的流程图。
图4是本申请图3中步骤S200包含的子步骤的流程图。
图5所示为本申请图3中步骤S203的子步骤的流程图。
图6是本申请第三实施例的系统错误排查装置的方框图。
图7是本申请第四实施例的系统错误排查装置的方框图。
图8示意性地示出了用于执行根据本发明的方法的终端设备的框图。
图9示意性地示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请的核心思想之一在于,提出一种系统错误排查方法,在检测到当前运行环境中的系统错误之后,将出现问题的用户账号或者测试账号等目标账号的操作引流到测试环境中,在该测试环境中执行复现操作,在测试环境中从所产生的相对少量的日志获取用户行为日志和系统日志,从而获取系统异常问题,进行问题排查处理。
以下通过多个实施例进行具体说明。
第一实施例
本发明第一实施例提出一种系统错误排查方法。图2所示为本发明第一实施例的系统错误排查方法的步骤流程图。如图2所示,本发明实施例的系统错误排查方法包括如下步骤:
101,在当前系统运行环境中检测到系统错误时,提供测试环境;
在一典型的客户端-服务端交互的应用环境中,用户在客户端进行相关操作,客户端将请求发送至服务端,服务端接收客户端的请求并反馈信息至客户端,完成一次交互操作。
用户在客户端进行操作时,正常情况下服务端在接收到用户的操作后会给客户端发出成功或者失败的反馈信息。但是在一些情况下,服务端未能在预定时间内发出反馈,客户端在指定时间内未收到来自服务端的反馈则认为系统错误,便会将系统错误的信息上报至服务端。
在这一实施例中,当服务端收到系统错误的信息时,可以搭建一个测试环境,或称为灰度环境或者微灰度环境。在这个测试环境内可以将用户的各种操作进行还原,从相对少量的日志信息中获取用户行为信息和系统错误信息,对系统错误进行分析和排查。
在实际应用中,当用户通过客户端执行某一个操作之后,例如用户打开手机淘宝的应用程序、进入主页进行搜索、点击了搜索结果第一个商品、点选购物,在点选购物时应用程序闪退,出现系统错误。当用户再次打开该应用程序时,客户端按照预设的报错通道,自动执行向服务器报错,或者由用户操作向服务端报错。
在接收到客户端的报错之后,服务端开始搭建测试环境。接入测试环境的目的是将期望运行的请求在测试环境中运行。通过端配置规则和后端配置路由的方式,将用户端的操作接入测试环境。
通常情况下,一个大型的应用程序后台包括多个服务端,例如,对于交易类应用程序来说,程序的登录认证在服务器A上,购物操作在服务器B上,主页面在服务器C上,用户下单在服务器D上。在提供测试环境的操作中,隔离响应用户在客户端上的操作的至少一个服务器——例如上述用于登录认证在服务器A、购物操作的服务器B、淘宝主页面的服务器C、用户下单的服务器D,确保该用户的所有操作——认证、搜索、下单等操作,都接入测试环境中。
因此,在一实施例,提供测试环境的步骤例如可以包括:隔离响应用户操作的至少一个服务端;将所述至少一个服务端接入测试环境。
在这一步骤中,服务端还可以根据客户端的报错的信息,获得用户信息,用于后续收集用户的日志信息。用户信息例如包括用户账号、用户使用的客户端的唯一识别码(例如机器Mac地址)等。
在执行步骤101之后,可以执行步骤102如下:
102,在检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
上述的目标账号可以包括用户账号、用户的Mac地址、预先设置的测试账号、预先验证的Mac地址等。用户账号和用户的Mac地址在上一步骤中已经记录,预先设置的测试账号、预先验证的Mac地址可以事设定。在这一步骤中,当需要对该系统错误进行排查分析时,可以在检测到目标账号登录时将该目标账号的操作环境引流至前述的测试环境中。
例如当用户通过客户端访问www.taobao.com时,出现错误,通过该客户端向服务端汇报错误,并携带了用户账号。为了排查系统错误,服务端可以在用户账号或者测试账号再次访问网站时,将这一账号引流至步骤101中新搭建的测试环境,例如www.taobao1.com中。
在步骤102之后,可以执行步骤103:
103,获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
在这一步骤中,可以通过用户账号或者测试账号执行问题复现的操作。例如,开发人员可以对出现问题的用户账号发出邀请,请用户对出现问题的操作进行还原;或者,开发人员也可以利用测试账号对出现系统错误的操作进行还原。
用户执行复现问题操作的过程中,产生用户行为信息(例如用户行为日志)和系统异常信息(例如系统日志),在后续环节中可以利用上述信息对问题进行排查。用户行为信息可以包括用户每一个步骤的操作,例如输入和输出内容。系统异常信息可以包括系统针对用户的每一个操作做出的响应的内容,以及从中获取的响应异常的内容。
例如,用户账号或者测试账号在该测试环境中,重新执行登录、进入主页、搜索、点选、付款等操作,这些操作产生的对应的用户行为日志和系统日志将会被保存,进行后续分析处理。
在一实施例中,执行主体可以拦截分布式服务框架(例如HSF,High-SpeedService Framework)请求,获取程序请求名称、入口参数、返回值信息、透传标志(例如traceID)等用户行为信息。
其中透传标志可以为用户在多个服务器上内部所有操作的一个唯一标示,即,该ID可以确定用户在上述服务器A至服务器D上所有的操作,这些操作均对应同一透传标志。
在获取了透传标志之后,可以将用户行为信息(例如用户行为日志)、系统信息(例如系统日志)与该透传标志进行关联,用于后续分析。
由于在测试环境中产生的用户行为日志和系统日志的数量远小于用户在正常环境中产生的日志数量,通过测试环境中的信息进行问题排查,可以更快地定位到系统存在的问题。
在执行步骤103之后,可以执行步骤104如下:
104,根据获取到的用户行为信息和系统异常信息排查系统错误。
在这一步骤中,在获取了请求名称(例如登录请求、主页请求、搜索请求、下单请求等)、入口参数、返回值信息等内容后,可以由问题分析服务器或者开发人员对问题进行分析。例如,登录请求返回的数据应当为data1,但是其返回的数据为data2;则认为用户在登录过程中出现错误。因此可以很方便地定位出现问题的服务器。搜索服务器在接收到搜索指令后返回的数据为data3,与预计返回的数据相同,因此可以确定问题不是出在搜索服务器。
综上所述,本发明第一实施例提出了一种系统错误排查方法,通过将用户操作引流至测试环境,利用测试环境中产生的少量日志尽快寻找到目标账号对应的所有操作,并将用户行为信息和系统信息进行拼装,通过对用户行为信息和系统异常信息的分析,分析和定位系统错误。由于链路隔离后产生的测试环境中产生的日志的数据量远小于在服务器中直接抓取用户行为日志和系统日志,因此本发明的方案可以尽快地定位错误,提高了排查错误的效率。
第二实施例
本发明第二实施例提出一种系统错误排查方法。图3所示为本发明第二实施例的系统错误排查方法的步骤流程图。如图3所示,本发明实施例的系统错误排查方法如下步骤:
S203,在当前系统运行环境中检测到系统错误时,提供测试环境;
S204,在检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
S205,获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
S206,根据获取到的用户行为信息和系统异常信息排查系统错误。
上述步骤S203至步骤S206与上一实施例的步骤101至步骤104相同或相似,在此不再赘述。本实施例重点说明与上一实施例的不同之处。
在一实施例中,上述步骤S203即提供测试环境之前,所述方法还可以包括如下步骤:
201,在接收到上报的系统错误时,获取上报系统错误的用户信息;
202,将上报系统错误的用户账号和测试账号至少其中之一作为目标账号。
在步骤201中,在服务端收到用户从客户端上报的系统错误时,从系统错误所携带的相关的用户信息中获取用户账号等信息,并存储在相应的存储表中。上述的存储表中可以存储用户账号和用户机器mac地址的对应关系,还可以存储测试账号和测试账号的mac地址的对应关系,及服务端可以根据用户账号和用户机器mac地址其中一者获取另一者,或者根据测试账号和测试账号所在的mac地址其中一者获取另一者。
在步骤202中,服务端可以识别目标账号,上述的目标账号就是用户账号和测试账号其中之一。在一些情况下,开发人员可以邀请上报了系统错误的用户在测试环境中重新执行出现问题的操作,在另外一些情况下,开发人员可以利用测试账号,在测试环境中重新执行出现问题的操作。
在一实施例中,如图4所示,所述步骤S200提供测试环境的步骤包括如下子步骤:
2001,隔离响应所述目标账号操作的至少一个服务器;
在这一步骤中,可以根据用户的操作,确定该用户的操作链路上使用了哪些服务器,例如前述的服务器A至服务器D。将每一个链路上的服务器隔离,可以是将发生系统错误的用户在操作中使用到的每一个服务器A至D隔离。例如在使用手机淘宝这一应用时,如果经过检测获知用户的IP是北京IP段,则在用户使用时接入北京的服务器,用户的操作均由北京的机房服务器来处理。隔离该链路中的每一个节点上的服务器,是指隔离北京IP段对应的上述认证、主页、搜索、下单服务器。使得北京的服务器与其他地区的服务器的网络不发生交互。
2002,将所述至少一个服务器接入测试环境;
在这一步骤中,可以将用户操作链路上对应的至少一个服务器接入测试环境,由于用户在测试环境中操作产生的日志量远小于在正常操作下产生的日志量,进入测试环境中,可以减小日志量,提高分析系统错误的准确性和效率。
在一实施例中,可以将用户操作链路上的每一个服务器都接入测试环境,因此用户的操作所产生的日志全部都在测试环境中被获取,避免了遗漏。
在一实施例中,如图5所示,所述步骤S203,即获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息的步骤可以包括如下子步骤:
2031,拦截所述测试环境的请求,获取每一个被调用程序的请求名称、输入信息、输出信息和透传标志;
在这一步骤中,服务端可以拦截每一个进入测试环境的每一个被调用的程序的请求,获得其请求名称,输出信息和透传标志。例如服务端可以拦截hsf请求,获取请求名称、入口参数、返回值信息、透传标志;
在这一步骤中,执行主体可以拦截分布式服务框架(例如HSF,High-SpeedService Framework)请求,获取请求名称、入口参数、返回值信息、透传标志等用户行为信息。其中透传标志可以为用户在多个服务器上内部所有操作的一个唯一标示,即,该ID可以确定用户在上述服务器A至服务器D上所有的操作,这些操作均对应同一透传标志。
在实际操作中,可以将隔离的被调用程序接入沙箱(sandbox),获取服务请求对应的入口参数、返回值信息;
在一可选实施例中,可以利用沙箱访问被隔离的至少一个服务器,在后续从这些服务器中获取动态日志并拼装动态日志。
举例来说,当用户在搜索服务器中搜索“面膜”时,搜索服务器记录了用户的各种信息:用户名(ID)、搜索时间201801012000000、搜索频次1、搜索条件例如价格区间、发货地等等,上述这些内容可以构成针对该搜索服务器的搜索程序输入信息,返回信息则为该搜索服务器通过网页给出的返回响应,例如300个商品和具体的商品信息。
2032,将所述目标账号与所述每一个被调用程序的请求名称、输入信息、输出信息和透传标志关联;
在这一步骤中,在获取了目标账号每一个被调用程序的请求名称、输入信息、输出信息和透传标志关联。具体的服务端中可以具有存储表,请输表中可以存储这些请求名称,输入信息,输出信息和透传标志,并且对应地可以存储有产生这些信息的目标账号。将目标账号与这些信息关联,可以在后期生成针对这些目标账号的用户行为信息和系统异常信息。
上述的透传标志,用来追溯多个被调用程序,在后续将多个被调用程序的输入输出信息进行拼接,获取完整的用户行为日志。
2033,利用所述请求名称、输入信息、输出信息,获得用户行为信息和系统异常信息;
在这一步骤中,可以利用所获得的请求名称,输入输出信息和透传标志,对用户的日志进行拼接,获取用户行为日志和系统日志。
在一实施例中,步骤2031,即拦截所述测试环境的请求,获取每一个被调用程序的请求名称、输入信息、输出信息和透传标志的步骤可以包括如下子步骤:
步骤a,利用java反射技术和instrument特性,拦截Throwable的构造器;
步骤b,通过Throwable的构造器获得当前线程的上下文信息;
步骤c,利用java反射技术获取远程程序调用请求上下文的请求名称、输入信息、输出信息和透传标志,获得一次java调用的全部异常信息。
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。JAVA反射机制是在程序运行时,允许改变程序结构或变量类型,从而在程序请求中,在现有的日志信息的基础上,获取其他的类。
使用instrument特性,可以构建一个独立于应用程序的代理程序(Agent),用来监测和协助运行在JVM上的程序,甚至能够替换和修改某些类的定义。从而可以实现更为灵活的运行时虚拟机监控和Java类操作。
因此在步骤2031a和2031b中,可以拦截Throwable构造器,并获得当前线程的上下文信息,进行字节增强,在步骤2031c中,可以利用Java反射技术在不改变程序代码的前提下,获取请求名称、输入信息、输出信息和透传标志,从而获取一次Java调用的全部异常信息。
综上所述,本发明提出的系统错误排查方法,至少具有如下技术效果:
本发明提出的方法通过将用户操作引流至测试环境,利用测试环境中产生的少量日志尽快寻找到目标账号对应的所有操作,并将用户行为信息和系统信息进行拼装,通过对用户行为信息和系统异常信息的分析,分析和定位系统错误。由于链路隔离后产生的测试环境中产生的日志的数据量远小于在服务器中直接抓取用户行为日志和系统日志,因此本发明的方案可以尽快地定位错误,提高了排查错误的效率。
此外,本发明提出的方法至少还具有如下效果:
1.本发明提出的系统错误排查方法,将线上用户引流到测试环境,用少量的机器及计算资源解决系统错误排查成本问题。
2.该方案不依赖于开发,实现方案对应用代码无侵入,在测试环境中获取用户行为数据及系统异常信息,使用更轻量的方式解决问题。
3.本发明可以在不增加依赖和不重启的情况下对java方法级的请求参数、返回值全部获取,可以做到动态热插拔,而非传统的方式,增加日志还需要重启服务。
4.在保证被测应用稳定和安全的情况下,自动获取业务链路上用户、用户行为及之间的关系,获取系统异常信息,为问题排查提供依据。除此之外,本实施例提出的系统错误排查方法至少还包括如下优点:
第三实施例
本发明第三实施例提出一种系统错误排查装置,如图6所示,该装置包括:
提供模块301,用于在当前系统运行环境中检测到系统错误时,提供测试环境;
切换模块302,用于在检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
获取模块303,用于获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
排查模块304,用于根据获取到的用户行为信息和系统异常信息排查系统错误。
综上所述,本实施例提出的系统错误排查装置至少具有如下优点
本发明通过将用户操作引流至测试环境,利用测试环境中产生的少量日志尽快寻找到目标账号对应的所有操作,并将用户行为信息和系统信息进行拼装,通过对用户行为信息和系统异常信息的分析,分析和定位系统错误。由于链路隔离后产生的测试环境中产生的日志的数据量远小于在服务器中直接抓取用户行为日志和系统日志,因此本发明的方案可以尽快地定位错误,提高了排查错误的效率。
第四实施例
本发明第四实施例提出一种系统错误排查装置,如图7所示,该装置包括:
提供模块401,用于在当前系统运行环境中检测到系统错误时,提供测试环境;
切换模块402,用于在检测到目标账号的操作时,将该目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
获取模块403,用于获取目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
排查模块404,用于根据获取到的用户行为信息和系统异常信息排查系统错误。
在一实施例中,所述目标账号包括上报系统错误的用户账号以及测试账号至少其中之一。
在一实施例中,所述装置还包括:
上报模块405,在接收到上报的系统错误时,获取上报系统错误的用户账号;
确定模块406,将上报系统错误的用户账号和测试账号至少其中之一作为目标账号。
在一实施例中,所述提供模块401可以包括如下子模块:
隔离子模块,隔离响应所述目标账号操作的至少一个服务器;
接入子模块,将所述至少一个服务器接入测试环境。
在一实施例中,所述获取模块403可以包括如下子模块:
拦截子模块,拦截所述测试环境的请求,获取每一个被调用程序的请求名称、输入信息、输出信息和透传标志;
关联子模块,将所述目标账号与所述每一个被调用程序的请求名称、输入信息、输出信息和透传标志关联;
获取子模块,利用所述请求名称、输入信息、输出信息和透传标志,获得用户行为日志。
在一实施例中,所述拦截子模块可以用于:
利用java反射技术获取远程程序调用请求上下文的请求名称、输入信息、输出信息和透传标志。
在一实施例中,所述拦截子模块可以包括:
拦截单元,利用java反射技术和instrument特性,拦截Throwable的构造器;
信息获取单元,通过Throwable的构造器获得当前线程的上下文信息;
异常信息确定单元,利用java反射技术获取远程程序调用请求上下文的请求名称、输入信息、输出信息和透传标志,获得一次java调用的全部异常信息。
在一实施例中,所述拦截单元可以用于:
利用代理程序构造应用程序的代理程序,监测和协助运行虚拟机上的程序,和/或替换和修改类的定义。
综上所述,本发明提出的系统错误排查装置,通过将用户操作引流至测试环境,利用测试环境中产生的少量日志尽快寻找到目标账号对应的所有操作,并将用户行为信息和系统信息进行拼装,通过对用户行为信息和系统异常信息的分析,分析和定位系统错误。由于链路隔离后产生的测试环境中产生的日志的数据量远小于在服务器中直接抓取用户行为日志和系统日志,因此本发明的方案可以尽快地定位错误,提高了排查错误的效率。
本发明提出的系统错误排查装置,至少还具有如下技术效果:
1.本发明提出的系统错误排查方法,将线上用户引流到测试环境,用少量的机器及计算资源解决问题排查成本问题。
2.该方案不依赖于开发,实现方案对应用代码无侵入,在测试环境中获取用户行为数据及系统异常信息,使用更轻量的方式解决问题。
3.本发明可以在不增加依赖和不重启的情况下对java方法级的请求参数、返回值全部获取,可以做到动态热插拔,而非传统的方式,增加日志还需要重启服务。
4.在保证被测应用稳定和安全的情况下,自动获取业务链路上用户、用户行为及之间的关系,获取系统异常信息,为问题排查提供依据。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
图8为本申请一实施例提供的终端设备的硬件结构示意图。如图8所示,该终端设备可以包括输入设备90、处理器91、输出设备92、存储器93和至少一个通信总线94。通信总线94用于实现元件之间的通信连接。存储器93可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器93中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器91例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器91通过有线或无线连接耦合到上述输入设备90和输出设备92。
可选的,上述输入设备90可以包括多种输入设备,例如可以包括面向用户的用户请求、面向设备的设备请求、软件的可编程请求、摄像头、传感器中至少一种。可选的,该面向设备的设备请求可以是用于设备与设备之间进行数据传输的有线请求、还可以是用于设备与设备之间进行数据传输的硬件插入请求(例如USB请求、串口等);可选的,该面向用户的用户请求例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程请求例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚请求或者输入请求等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备92可以包括显示器、音响等输出设备。
在本实施例中,该终端设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图9为本申请另一实施例提供的终端设备的硬件结构示意图。图9是对图8在实现过程中的一个具体的实施例。如图9所示,本实施例的终端设备包括处理器101以及存储器102。
处理器101执行存储器102所存放的计算机程序代码,实现上述实施例中图2至图5的系统错误排查方法。
存储器102被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器102可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器101设置在处理组件100中。该终端设备还可以包括:通信组件103,电源组件104,多媒体组件105,音频组件106,输入/输出请求107和/或传感器组件108。终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件100通常控制终端设备的整体操作。处理组件100可以包括一个或多个处理器101来执行指令,以完成上述图2至图5方法的全部或部分步骤。此外,处理组件100可以包括一个或多个模块,便于处理组件100和其他组件之间的交互。例如,处理组件100可以包括多媒体模块,以方便多媒体组件105和处理组件100之间的交互。
电源组件104为终端设备的各种组件提供电力。电源组件104可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
多媒体组件105包括在终端设备和用户之间的提供一个输出请求的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件106被配置为输出和/或输入音频信号。例如,音频组件106包括一个麦克风(MIC),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件103发送。在一些实施例中,音频组件106还包括一个扬声器,用于输出音频信号。
输入/输出请求107为处理组件100和外围请求模块之间提供请求,上述外围请求模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件108包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件108可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件108可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件108还可以包括摄像头等。
通信组件103被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该终端设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得终端设备可以登录GPRS网络,通过互联网与服务端建立通信。
由上可知,在图9实施例中所涉及的通信组件103、音频组件106以及输入/输出请求107、传感器组件108均可以作为图8实施例中的输入设备的实现方式。
本申请实施例提供了一种终端设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行如本申请实施例中一个或多个所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种系统错误排查方法和系统错误排查装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (8)

1.一种系统错误排查方法,其特征在于,包括:
在当前系统运行环境中检测到系统错误时,提供测试环境;所述提供测试环境的步骤包括:隔离响应目标账号操作的至少一个服务器,将所述至少一个服务器接入测试环境;
在检测到所述目标账号的操作时,将所述目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
获取所述目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
根据获取到的用户行为信息和系统异常信息排查系统错误,其中所述用户行为信息与透传标志关联,所述透传标志为用户在多个服务器上执行的所有操作对应的唯一标识。
2.根据权利要求1所述的方法,其特征在于,所述目标账号包括上报系统错误的用户账号以及测试账号至少其中之一。
3.根据权利要求1所述的方法,其特征在于,所述提供测试环境的步骤之前,所述方法还包括:
在接收到上报的系统错误时,获取上报系统错误的用户账号;
将上报系统错误的用户账号和测试账号至少其中之一作为目标账号。
4.根据权利要求1所述的方法,其特征在于,所述获取所述目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息的步骤包括:
拦截所述测试环境中的请求,获取每一个被调用程序的请求名称、输入信息、输出信息和透传标志;
将所述目标账号与所述每一个被调用程序的请求名称、输入信息、输出信息和透传标志关联;
利用所述请求名称、输入信息、输出信息和透传标志,获得用户行为日志。
5.根据权利要求4所述的方法,其特征在于,所述拦截所述测试环境中的请求,获取每一个被调用程序的请求名称、输入信息、输出信息和透传标志的步骤还包括:
利用java反射技术获取远程程序调用请求上下文的请求名称、输入信息、输出信息和透传标志。
6.一种系统错误排查装置,其特征在于,包括:
提供模块,用于在当前系统运行环境中检测到系统错误时,提供测试环境;所述提供测试环境的步骤包括:隔离响应目标账号操作的至少一个服务器,将所述至少一个服务器接入测试环境;
切换模块,用于在检测到所述目标账号的操作时,将所述目标账号对应的操作环境由当前系统运行环境切换至所述测试环境;
获取模块,用于获取所述目标账号在测试环境中执行复现系统错误的操作产生的用户行为信息和系统异常信息;
排查模块,用于根据获取到的用户行为信息和系统异常信息排查系统错误,其中所述用户行为信息与透传标志关联,所述透传标志为用户在多个服务器上执行的所有操作对应的唯一标识。
7.根据权利要求6所述的装置,其特征在于,所述目标账号包括上报系统错误的用户账号以及测试账号至少其中之一。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
上报模块,用于在接收到上报的系统错误时,获取上报系统错误的用户账号;
确定模块,用于将上报系统错误的用户账号和测试账号至少其中之一作为目标账号。
CN201810935430.0A 2018-08-16 2018-08-16 系统错误排查方法和系统错误排查装置 Active CN110838929B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810935430.0A CN110838929B (zh) 2018-08-16 2018-08-16 系统错误排查方法和系统错误排查装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810935430.0A CN110838929B (zh) 2018-08-16 2018-08-16 系统错误排查方法和系统错误排查装置

Publications (2)

Publication Number Publication Date
CN110838929A CN110838929A (zh) 2020-02-25
CN110838929B true CN110838929B (zh) 2022-08-02

Family

ID=69573305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810935430.0A Active CN110838929B (zh) 2018-08-16 2018-08-16 系统错误排查方法和系统错误排查装置

Country Status (1)

Country Link
CN (1) CN110838929B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448873B (zh) * 2021-07-22 2022-12-20 亿咖通(湖北)技术有限公司 软件测试方法、设备、存储介质及程序产品
CN114546823B (zh) * 2021-12-27 2023-09-12 芯华章科技股份有限公司 用于重现逻辑系统设计的调试场景的方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853189A (zh) * 2010-05-26 2010-10-06 北京航空航天大学 一种基于Java的异常处理装置及其异常处理方法
CN102394775A (zh) * 2011-11-01 2012-03-28 中兴通讯股份有限公司 一种模拟网元的方法、装置和系统
CN104407971A (zh) * 2014-11-18 2015-03-11 中国电子科技集团公司第十研究所 自动化测试嵌入式软件的方法
CN107404456A (zh) * 2016-05-18 2017-11-28 阿里巴巴集团控股有限公司 错误定位方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973643B2 (en) * 2001-08-17 2005-12-06 International Business Machines Corporation Method, system and program for handling errors occurring in function calls
US20070028216A1 (en) * 2005-07-28 2007-02-01 Boss Gregory J Systems and methods for embedded application test suites

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853189A (zh) * 2010-05-26 2010-10-06 北京航空航天大学 一种基于Java的异常处理装置及其异常处理方法
CN102394775A (zh) * 2011-11-01 2012-03-28 中兴通讯股份有限公司 一种模拟网元的方法、装置和系统
CN104407971A (zh) * 2014-11-18 2015-03-11 中国电子科技集团公司第十研究所 自动化测试嵌入式软件的方法
CN107404456A (zh) * 2016-05-18 2017-11-28 阿里巴巴集团控股有限公司 错误定位方法及装置

Also Published As

Publication number Publication date
CN110838929A (zh) 2020-02-25

Similar Documents

Publication Publication Date Title
KR102194052B1 (ko) 서비스 실행 방법 및 디바이스
CN109308263B (zh) 一种小程序测试方法、装置及设备
CN108038039B (zh) 记录日志的方法及微服务系统
CN111654495B (zh) 用于确定流量产生来源的方法、装置、设备及存储介质
CN109491733B (zh) 基于可视化的界面显示方法及相关设备
CN112035344A (zh) 多场景测试方法、装置、设备和计算机可读存储介质
CN110838929B (zh) 系统错误排查方法和系统错误排查装置
CN112948272A (zh) 基于生产环境的数据测试系统功能方法、装置及相关设备
CN112866348A (zh) 数据库访问方法、装置、计算机设备和存储介质
US20230267228A1 (en) Detection method and apparatus, and non-transitory computer readable storage medium
US9348999B2 (en) User terminal, reliability management server, and method and program for preventing unauthorized remote operation
CN115705190A (zh) 依赖程度的确定方法及装置
CN109828920A (zh) 一种日志分析方法、装置及计算机可读存储介质
KR20150003651A (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 제어방법
CN117499287A (zh) Web测试方法、装置、存储介质及代理服务器
CN115052037B (zh) 客户端检测方法、装置、存储介质和设备
US20230118838A1 (en) Advanced agent instrumentation for opentelemetry implementations
CN112241362A (zh) 一种测试方法、装置、服务器及存储介质
CN107357562B (zh) 一种信息填充方法、装置及客户端
CN115600213A (zh) 基于应用程序的漏洞管理方法、装置、介质及设备
CN114238140A (zh) 一种准入测试方法及装置
CN111488286B (zh) 一种Android模块独立开发的方法及装置
CN114116388A (zh) 一种小程序数据采集方法、装置、设备及可读存储介质
CN113238940A (zh) 一种接口测试结果的比对方法、装置、设备和存储介质
CN112817566B (zh) 一种信息处理方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant