一种全链路追踪监控方法技术

技术编号:19938262 阅读:398 留言:0更新日期:2018-12-29 06:29
本发明专利技术公开了一种全链路追踪监控方法,其特征在于,包括以下步骤,步骤S1:埋点和生成格式化日志;步骤S2:收集和存储日志;步骤S3:关联上下游信息,实时计算报警。本发明专利技术用于展示异常节点上下文调用关系,定位故障业务来源,实时报警,关联异常堆栈日志,找到异常根源。

【技术实现步骤摘要】
一种全链路追踪监控方法
本专利技术涉及日志异常监测
,尤其涉及一种全链路追踪监控方法。
技术介绍
目前公司系统正往服务化方向发展,涉及到的业务子系统众多,系统之间存在互相调用的情况。那么接口之间就存在着各种上下游调用关系,当某个节点抛出了一个异常,我们很难定位上下游的调用关系,较难排查异常是由哪个节点调用产生的。同时,各个接口的调用情况我们无法做一个直观,全面的查看,对于各个服务接口的“健康度”较难做一个整体诊断。在此背景下我们希望能够建立一套全面有效的链路监控系统,为系统服务化做基础支撑。
技术实现思路
本专利技术的目的在于提供一种全链路追踪监控方法,展示异常节点上下文调用关系,定位故障业务来源,实时报警,关联异常堆栈日志,找到异常根源。为实现上述目的,本专利技术提供如下技术方案:一种全链路追踪监控方法,其特征在于,包括以下步骤,步骤S1:埋点和生成格式化日志;步骤S2:收集和存储日志;步骤S3:关联上下游信息,实时计算报警。进一步的,所述步骤S1的具体内容如下:通过提供独立组件的方式,与业务代码进行分离,在系统底层进行记录请求参数信息和请求结果数据,所述请求参数信息包括全局唯一跟踪标识TraceID和链路层级标识SpanID,所述请求结果数据包括响应状态、响应大小和响应时间,并将请求参数信息与请求结果数据通过json格式共同写入到文本日志。进一步的,所述请求参数信息中唯一跟踪标识TraceID为日志的唯一标识,在应用请求入口生成,并跟随下游请求附加到header中进行透传;链路层级标识SpanID代为上下游关系的层级ID,表示日志对应的子系统在链路中所处的层级。进一步的,所述请求结果数据中响应状态为http状态码,响应大小为请求下级子系统返回的消息体的内存大小,响应时间为调用下级子系统所使用的时间。进一步的,所述步骤S3的具体内容如下:对日志中的请求结果数据进行分析判断是否异常,具体的,将响应状态、响应大小和响应时间分别与预先设定的数值区间进行比较,若在对应数值区间内,则判断为正常,否则判断为异常;然后将存在任意异常的日志提取出来,发出报警,再根据请求参数信息关联上下游,调用对应链路的所有日志,并将结果反馈给开发人员。进一步的,所述步骤S2的具体内容如下:通过filebeat服务实时监听日志并推送到Kafka消息系统中,然后使用Storm框架将请求数据结果保存到Elasticsearch索引和Mongodb数据库中。与现有技术相比,本专利技术的有益效果是:本专利技术展示异常节点上下文调用关系,定位故障业务来源并进行实时报警;本专利技术还了解每个请求内部的交互过程,分析内部瓶颈点,如统计响应时间、出错率等;实时报警,关联异常堆栈日志,找到异常根源。附图说明图1为本专利技术的总流程图。图2为本专利技术的日志埋点工作流程图。具体实施方式下面对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术提供一种全链路追踪监控方法,其特征在于,包括以下步骤,步骤S1:埋点和生成格式化日志;步骤S2:收集和存储日志;步骤S3:关联上下游信息,实时计算报警。以下对每一步进行展开叙述:步骤S1:埋点和生成格式化日志;通过提供独立组件的方式,与业务代码进行分离,在系统底层进行记录请求参数信息和请求结果数据,所述请求参数信息包括全局唯一跟踪标识TraceID和链路层级标识SpanID,所述请求结果数据包括响应状态、响应大小和响应时间,并将请求参数信息与请求结果数据通过json格式共同写入到文本日志。所述请求参数信息中唯一跟踪标识TraceID为日志的唯一标识,如图2所示,在客户端应用请求入口生成,并跟随下游请求附加到header中进行透传;链路层级标识SpanID代为上下游关系的层级ID,表示日志对应的子系统在链路中所处的层级,入口初始值为0,每深入一级调用记录为0.1,0.1.1,0.1.1.1,以此类推。所述请求结果数据中响应状态为http状态码,响应大小为请求下级子系统返回的消息体的内存大小,响应时间为调用下级子系统所使用的时间。步骤S2:收集和存储日志;请继续参照图1,通过filebeat服务实时监听日志并推送到Kafka消息系统中,然后使用Storm框架将请求数据结果保存到Elasticsearch索引和Mongodb数据库中,优选的,还提供Kibana数据可视化平台,实现可视化的人机交互。步骤S3:关联上下游信息,实时计算报警;对日志中的请求结果数据进行分析判断是否异常,具体的,将响应状态、响应大小和响应时间分别与预先设定的数值区间进行比较,若在对应数值区间内,则判断为正常,否则判断为异常;以响应状态和响应时间为例,预先设定返回非200的http状态码为异常,若从日志中提取出的响应状态不是500或300或其他任意非200的数值,则判定其为异常,预先设定响应时间超过2s为异常,若从日志中提取出的响应时间为600ms或800ms,则判定其为正常。然后将存在任意异常的日志提取出来,发出报警,再根据请求参数信息关联上下游,调用对应链路的所有日志,并将结果反馈给开发人员。对于本领域技术人员而言,显然本专利技术不限于上述示范性实施例的细节,而且在不背离本专利技术的精神或基本特征的情况下,能够以其他的具体形式实现本专利技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本专利技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本专利技术内。本文档来自技高网...

【技术保护点】
1.一种全链路追踪监控方法,其特征在于,包括以下步骤,步骤S1:埋点和生成格式化日志;步骤S2:收集和存储日志;步骤S3:关联上下游信息,实时计算报警。

【技术特征摘要】
1.一种全链路追踪监控方法,其特征在于,包括以下步骤,步骤S1:埋点和生成格式化日志;步骤S2:收集和存储日志;步骤S3:关联上下游信息,实时计算报警。2.根据权利要求1所述的全链路追踪监控方法,其特征在于,所述步骤S1的具体内容如下:通过提供独立组件的方式,与业务代码进行分离,在系统底层进行记录请求参数信息和请求结果数据,所述请求参数信息包括全局唯一跟踪标识TraceID和链路层级标识SpanID,所述请求结果数据包括响应状态、响应大小和响应时间,并将请求参数信息与请求结果数据通过json格式共同写入到文本日志。3.根据权利要求2所述的全链路追踪监控方法,其特征在于,所述请求参数信息中唯一跟踪标识TraceID为日志的唯一标识,在应用请求入口生成,并跟随下游请求附加到header中进行透传;链路层级标识SpanID代为上下游关系的层级ID,表示日志对应的子系统在链路中所处的层级。4.根...

【专利技术属性】
技术研发人员:杨君李恒刘义雷邓道成
申请(专利权)人:杭州鑫合汇互联网金融服务有限公司
类型:发明
国别省市:浙江,33

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

1