一种实时分布式调试跟踪方法及系统技术方案

技术编号:13680594 阅读:85 留言:0更新日期:2016-09-08 08:44
本发明专利技术实施例提供一种实时分布式调试跟踪方法及系统,所述方法包括:当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,利用客户端浏览器向所述接口发送请求,该请求附加调试标志,所述请求的标头中包含日志等级调试密文;利用分布式日志收集系统自动收集所述接口、及所述接口调用涉及的多台服务器的接口输出的所有日志消息;汇总收集到的所有日志消息,利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息,根据调试结果信息确定所述接口的故障原因。上述技术方案具有如下有益效果:不影响线上服务用户,实现了单接口在线调试功能,根据调试结果信息确定接口的故障原因。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种实时分布式调试跟踪方法及系统
技术介绍
目前线上互联网环境调试基本上都是通过唯一id(标识)+分布式日志索引来实现的。每次请求日志汇集及索引,知名的分布式跟踪系统如Dapper,Blackfire,Eagleeye都是基础与请求时生成唯一标识TRACEID(跟踪标识)及RPCid(Remote Procedure Call id,远程过程调用标识)作为起始id并将其传递到所有子系统,子系统记录日志的时候会将这两个标识id记录在日志内,以此来找出一次请求所有经历的路径日志。跟踪系统会将分布在多台服务器的日志进行实时收集并根据id做成检索索引,当拿着RPCid和TRACEID过来时可以根据这个id查询调用路径及产生的日志,以此来分析线上工作情况。另外对于性能,可以使用Xhprof插件在PHP(Hypertext Preprocessor,超文本预处理器)运行环境中,但是此插件会有大量的磁盘写操作导致系统缓慢,所以正常情况下,会随机10万分之一几率开启这个功能。如果需要线上实时调试,是需要运气才能拿到当前请求的性能日志。当碰到只有在线上可复现的情况下的时候,只能在代码上埋入更多的点来抓取什么原因导致的问题,与此同时带来的就是应用接口的性能下降。为此又不能埋太多点,这也直接导致线上排查问题的不便。
技术实现思路
本专利技术实施例提供一种实时分布式调试跟踪方法及系统,以不影响线上服务用户,实现单接口在线调试功能,根据调试结果信息确定接口的故障原因。一方面,本专利技术实施例提供了一种实时分布式调试跟踪方法,所述方法包括:当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,利用客户端浏览器向所述接口发送请求,该请求附加调试标志,所述请求的标头中包含日志
等级调试密文;利用分布式日志收集系统自动收集所述接口、及所述接口调用涉及的多台服务器的接口输出的所有日志消息;汇总收集到的所有日志消息,利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息,根据调试结果信息确定所述接口的故障原因。另一方面,本专利技术实施例提供了一种实时分布式调试跟踪系统,所述系统包括:客户端浏览器、多台服务器、分布式日志收集系统,其中:所述客户端浏览器,用于当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,向所述接口发送请求,该请求附加调试标志,所述请求的标头中包含日志等级调试密文;所述分布式日志收集系统,用于自动收集所述接口、及所述接口调用涉及的多台服务器的接口输出的所有日志消息;汇总收集到的所有日志消息,利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息,根据调试结果信息确定所述接口的故障原因。上述技术方案具有如下有益效果:采用分级日志+Header(标头)调试方式实现实时在线调试功能,根据调试结果信息确定接口的故障原因。通过在请求中附加调试标志,且该请求的标头中包含日志等级调试密文开启调试模式,从而临时更改日志记录级别实现单接口在线调试功能,对线上服务用户没有任何影响,接口性能也不会下降。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一种实时分布式调试跟踪方法流程图;图2为本专利技术实施例一种实时分布式调试跟踪系统结构示意图;图3为本专利技术实施例分布式日志收集系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术实施例一种实时分布式调试跟踪方法流程图,所述方法包括:101、当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,利用客户端浏览器向所述接口发送请求,该请求附加调试标志,所述请求的标头中包含日志等级调试密文;102、利用分布式日志收集系统自动收集所述接口、及所述接口调用涉及的多台服务器的接口输出的所有日志消息;103、汇总收集到的所有日志消息,利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息,根据调试结果信息确定所述接口的故障原因。优选地,当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,将如下日志等级调试密文中的一种或多种设置到向所述接口发送的请求的标头中:临时开启性能监控密文,临时提高或临时降低分级日志级别密文;通过如下参数于所述请求的标头中设置所述日志等级调试密文:此次调试请求的日志等级LOGLEVEL、此次调试请求是否临时开启所有涉及此次请求的接口的性能检测工具XHPROF、此次调试请求运行超过多长时间记录XHPROF日志XHPROFTIME。优选地,所述调试结果信息包括:跟踪标识TRACEID、此次调试请求的日志等级LOGLEVEL、此次调试请求是否记录了性能日志XHPROF。优选地,所有日志消息包括:业务日志、性能日志、调用链日志;利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息之前,还包括:汇总收集到的所有日志消息后,按照所述接口根据该请求返回的跟踪标识TRACEID进行实时索引,所述TRACEID作为在索引系统中列出所有日志消息的唯一标识。优选地,将收集到的所有日志消息按照键值Key-Value方式存储。对应于上述方法实施例,如图2所示,为本专利技术实施例一种实时分布式调试跟踪系统
结构示意图,所述系统包括:客户端浏览器21、多台服务器23、分布式日志收集系统22,其中:所述客户端浏览器21,用于当检测到分布式系统中线上服务器23某一接口出现故障,需要在线进行排查调试时,向所述接口发送请求,该请求附加调试标志,所述请求的标头中包含日志等级调试密文;所述分布式日志收集系统22,用于自动收集所述接口、及所述接口调用涉及的多台服务器23的接口输出的所有日志消息;汇总收集到的所有日志消息,利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息,根据调试结果信息确定所述接口的故障原因。优选地,所述客户端浏览器21,具体用于当检测到分布式系统中线上服务器23某一接口出现故障,需要在线进行排查调试时,将如下日志等级调试密文中的一种或多种设置到向所述接口发送的请求的标头中:临时开启性能监控密文,临时提高或临时降低分级日志级别密文;还具体用于通过如下参数于所述请求的标头中设置所述日志等级调试密文:此次调试请求的日志等级LOGLEVEL、此次调试请求是否临时开启所有涉及此次请求的接口的性能检测工具XHPROF、此次调试请求运行超过多长时间记录X本文档来自技高网
...

【技术保护点】
一种实时分布式调试跟踪方法,其特征在于,所述方法包括:当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,利用客户端浏览器向所述接口发送请求,该请求附加调试标志,所述请求的标头中包含日志等级调试密文;利用分布式日志收集系统自动收集所述接口、及所述接口调用涉及的多台服务器的接口输出的所有日志消息;汇总收集到的所有日志消息,利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息,根据调试结果信息确定所述接口的故障原因。

【技术特征摘要】
1.一种实时分布式调试跟踪方法,其特征在于,所述方法包括:当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,利用客户端浏览器向所述接口发送请求,该请求附加调试标志,所述请求的标头中包含日志等级调试密文;利用分布式日志收集系统自动收集所述接口、及所述接口调用涉及的多台服务器的接口输出的所有日志消息;汇总收集到的所有日志消息,利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息,根据调试结果信息确定所述接口的故障原因。2.如权利要求1所述实时分布式调试跟踪方法,其特征在于,当检测到分布式系统中线上服务器某一接口出现故障,需要在线进行排查调试时,将如下日志等级调试密文中的一种或多种设置到向所述接口发送的请求的标头中:临时开启性能监控密文,临时提高或临时降低分级日志级别密文;通过如下参数于所述请求的标头中设置所述日志等级调试密文:此次调试请求的日志等级LOGLEVEL、此次调试请求是否临时开启所有涉及此次请求的接口的性能检测工具XHPROF、此次调试请求运行超过多长时间记录XHPROF日志XHPROFTIME。3.如权利要求1或2所述实时分布式调试跟踪方法,其特征在于,所述调试结果信息包括:跟踪标识TRACEID、此次调试请求的日志等级LOGLEVEL、此次调试请求是否记录了性能日志XHPROF。4.如权利要求1所述实时分布式调试跟踪方法,其特征在于,所有日志消息包括:业务日志、性能日志、调用链日志;利用所述接口根据该请求返回的跟踪标识TRACEID,确定所有日志消息中所述日志等级调试密文对应的调试结果信息之前,还包括:汇总收集到的所有日志消息后,按照所述接口根据该请求返回的跟踪标识TRACEID进行实时索引,所述TRACEID作为在索引系统中列出所有日志消息的唯一标识。5.如权利要求4所述实时分布式调试跟踪方法,其特征在于,将收集到的所有日志消息按照键值Key-Value方式存储。6.一种实时分布式调试跟踪系统,其特征在于,所述系统包括:客户端浏览器、多
\t台服务器、分布式日志收集...

【专利技术属性】
技术研发人员:徐长龙王崇任文越
申请(专利权)人:微梦创科网络科技中国有限公司
类型:发明
国别省市:北京;11

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

1