基于网络调用日志的应用性能分析方法、装置、计算机设备及存储介质与流程

文档序号:17475423发布日期:2019-04-20 06:05阅读:133来源:国知局
基于网络调用日志的应用性能分析方法、装置、计算机设备及存储介质与流程

本发明属于计算机领域,尤其涉及一种基于网络调用日志的应用性能分析方法、装置、计算机设备及存储介质。



背景技术:

应用服务即互联网应用服务,是指由互联网应用提供的各种服务,如资金交易系统、社交网站等。随着智能终端的发展,应用服务在人们生活中已普遍使用。

分布式部署的环境的资金交易应用服务偶尔会存在服务耗时长、响应慢,即使作为开发者,也很难以直观看到整个调用关系以及性能瓶颈。目前主要采用人工驱动链路的方式处理,既被动又低效,因此,如何才能够有效监控每一个应用服务,并及时发现应用服务运行中代码各部分的异常点及耗时点显得极为重要。

因此,有必要发明一种方法,能有效监控每一个应用服务,并及时发现应用服务运行中代码各部分的异常点及耗时点。



技术实现要素:

本发明实施例提供一种基于网络调用日志的应用性能分析方法、装置、计算机设备及存储介质,通过对应用服务的网络调用日志进行分析,找到网络应用服务请求处理瓶颈,定位错误异常的根源位置,提高网络应用服务故障处理效率。

本发明实施例提供一种基于网络调用日志的应用性能分析方法,其特征在于,所述方法包括如下步骤:

获取应用服务的网络调用日志;

分析所述网络调用日志;

根据所述网络调用日志的分析结果进行判断,当判断所述网络调用日志中存在异常点时,按照预设的规则进行预警。

一种基于网络调用日志的应用性能分析装置,其特征在于,所述装置包括:

日志获取单元,用于获取应用服务的网络调用日志;

日志分析单元,用于分析所述网络调用日志;

判断预警单元,用于根据所述网络调用日志的分析结果进行判断,当判断所述网络调用日志中存在异常点时,按照预设的规则进行预警。

综上所述,通过利用上述基于网络调用日志的应用性能分析方法能有效监控每一个网络应用服务,分析网络请求在各个分布式系统之间的调用情况,从而找到所述应用服务请求处理瓶颈,并及时发现应用服务运行中代码各部分的耗时点,定位错误异常的根源位置,提高网络应用服务故障处理效率。

附图说明

图1是本发明实施例提供的一种基于网络调用日志的应用性能分析方法的流程图;

图2是本发明实施例提供的一种网络服务调用场景流程图;

图3是本发明实施例提供的又一种基于网络调用日志的应用性能分析方法的流程图;

图4是本发明实施例提供的一种基于网络调用日志的应用性能分析装置的结构框图;

图5是本发明实施例提供的又一种基于网络调用日志的应用性能分析装置的结构框图;

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了本发明实施例提供的一种基于网络调用日志的应用性能分析方法,其特征在于,所述方法包括如下步骤:

步骤s101,获取应用服务的网络调用日志。

在本发明实施例中,所述网络调用日志包含网络应用服务的在分布式系统中的执行过程,如处理请求在调用链上的入口url、应用、服务的调用关系等,由网络应用程序的探针搜集,应用程序探针是应用程序的收集端,负责所述应用程序的网络调用日志的采集。一般使用插件的模式,自动探针一般是不需要修改程序,而普通的软件开发工具包(如sdk)则是需要修改部分配置或者代码。

优选的,在本发明实施例中,为了便于收集各网络应用服务的网络调用日志,需要预先对所述网络应用程序的探针和sdk提供网络接口(如http形式接口),所述网络接口为可以与所述网络应用程序之间传输网络调用日志数据的接口即可。

优选的,对每一个获取的网络调用日志数据进行验证,判断是否为相应的网络应用服务的调用日志。

优选的,当所述网络调用日志验证通过后即可存储所述网络调用日志数据并设置索引,便于后续的使用和查找。

优选的,可以在所述网络调用日志的调用链上添加自己的业务埋点日志,使各个系统的网络调用与实际业务内容得到关联。

步骤s102,分析所述网络调用日志;

在本发明实施例中,先将收集的网络调用日志的数据进行汇总,再对收集数据进行解析,提取各个区段(span)的数据,并转换成存储所需的格式,然后按照预设的分析方式分析网络请求在各个分布式系统之间的调用情况,从而得到处理请求的调用链上的入口url、应用、服务的调用关系,从而找到请求处理瓶颈,定位错误异常的根源位置。所述预设的分析方式包括但不限于流式分析和异步批量,而流式分析会对数据统计和告警的实时性更有帮助。

为了更清楚的表达本发明的的分析内容,结合图2所示对本发明的网络应用服务调用日志做一个简单的说明,假设一个trace代表一个网络应用服务或者流程在分布式系统中的执行过程,是存在并行数据或并行执行轨迹的系统,是多个span组成的一个有向无环图,所述span代表所述trace中被命名和计时的连续性执行片段(逻辑运行单元),在分布式轨迹中每个组件都包含各自的一个或者多个span。span之间通过嵌套或者顺序排列建立逻辑因果关系。例如,在一个rpc调用中,客户端和服务端各有一个span,记录rpc调用的信息。

图2所描述的网络服务调用场景是很常见也很简单的调用场景,一个网络服务请求通过gateway服务路由到下游的service1,然后service1先调用服务service2,拿到结果后再调用服务service3,最后组合service2和service3服务的结果,通过gateway返回给用户。我们用①②③④⑤⑥表示了rpc的顺序。

在本发明实施例中,每一次完整的网络应用服务调用都被标记了全局跟踪id,即traceid,所以和一次网络应用服务调用相关的span中的traceid都是相同的,具有相同traceid的span可以组装成跟踪树来直观的将调用链路图展现在用户面前。

优选的,在本发明实施例中,span也设置相应的id,理论上来说,span的id只要做到一个traceid下唯一就可以。

span设置了id后,可以按照结构树的形式形成父span和子span。因调用有层级关系,所以span作为调用节点的存储结构,也有层级关系,跟踪链是采用跟踪树的形式来展现的,树的根节点就是调用的顶点,从开发者的角度来说,顶级span是从最先接触到服务调用的应用中采集的。所以,顶级span可以不设置id字段,以图2所示的服务调用为例,顶级span由gateway来采集,service1的span是它的子span,而service2和service3的span是service1的span的子span,很显然service2和service3的span是平级关系,是followfrom关系。

在本发明实施例中,每一个span都需设置有一个操作名称(name),所述操作名词需简单,可读性高,主要用于在界面上展示,一般是接口方法的名称,或者一个大型计算过程中的子任务或者阶段名称。所述操作名称的作用是让用户或系统知道它是哪里采集的span,因此,一旦分析发现某个span耗时较高即可以知道是哪个服务节点耗时高。例如调用核心扣款,则设置name=collect

在本发明实施例中,每一个span都有自己的时间戳(timestamp)和持续时间(duration),所述时间戳为创建时的时间戳,用来记录采集的时刻。所述持续时间,即span的创建到span完成最终的采集所经历的时间,除去span自己逻辑处理的时间,该时间段可以理解成对于该跟踪埋点来说服务调用的总耗时。

在本发明实施例中,每一个span都包含一组基本标注列表(annotation)和业务标注列表(binaryannotation)。所述基本标注列表用于定位一个request的开始和结束,一个标注可以理解成span生命周期中重要时刻的数据快照,比如一个标注中一般包含发生时刻(timestamp)、事件类型(value)、端点(endpoint)等信息;所述业务标注列表用于提供一些额外信息,一般以key-value对出现。

优选的,如果某些跟踪埋点需要带上部分业务数据(比如url地址、返回码和异常信息等),可以将需要的数据以键值对的形式放入到业务标注列表的字段中。支持简单的对span进行注解和补充。

通过上述对网络调用日志内容的设置、分解及时间和事件记录等操作,即可以利用所述预设的分析方法分析出所述网络调用日志的调用链上的入口url、应用、服务的调用关系,从而找到请求处理瓶颈,定位错误异常的根源位置。

步骤s103,根据所述网络调用日志的分析结果进行判断,当判断所述网络调用日志中存在异常点时,按照预设的规则进行预警。

在本发明实施例中,通过上述网络调用日志的分析,对所述分析结果进行判断,当判断所述网络调用日志中存在处理瓶颈或异常耗时点时,对故障系统进行分类,并按照预设的规则进行预警,快速将介入的各监控系统报障通知给相应运维人员。

在本发明实施例中,所述按照预设的规则进行预警的方式包括但不限于向预设的通信终端发送预警短信、向预设的终端发送预警电子邮件、向用户输出语音提示。

作为本发明的一个优选实施例,所述预警方式可以是向预设的通信终端发送预警短信。用户需提前预设预警短信发送的通讯号码,当判断满足预警条件时,即向所述通讯号码发送预警短信,所述预警短信的内容可以是系统自带的,也可以是用户预先编辑好的。

作为本发明的一个优选实施例,所述预警方式可以是向预设的终端发送预警电子邮件。用户需提前预设预警电子邮件发送的通讯地址,当判断满足预警条件时,即向所述通讯地址发送预警电子邮件,所述预警电子邮件的内容可以是系统自带的,也可以是用户预先编辑好的。

作为本发明的一个优选实施例,所述向用户提醒的方式可以是语音的方式,即向用户播放预设的语音,所述语音可以是由用户选择确定的预先存储的一条或多条语音中的一条,也可以是用户录制的一条或多条语音中的一条。

优选的,在本发明实施例中,可以将所有已获取的所述网络调用日志进行存储,同时可以设置存储时间,当数据存储超过所述存储时间时,自动清除。所述存储可以采用多种形式,此处不做限制,例如当用于大规模时,可以采用zipkin-server-es,存储形式为json。

优选的,在本发明实施例中,所述网络调用日志及其查询和分析结果可以以预设的形式向用户进行展示,如ui(search),所述暂时内容包括但不限于trace的查询,统计数据等监控关键数据的展现。

综上所述,通过利用上述基于网络调用日志的应用性能分析方法能有效监控每一个网络应用服务,分析网络请求在各个分布式系统之间的调用情况,从而找到所述应用服务请求处理瓶颈,并及时发现应用服务运行中代码各部分的耗时点,定位错误异常的根源位置,提高网络应用服务故障处理效率。

图3示出了适用于本发明实施例提供的又一种基于网络调用日志的应用性能分析方法流程图,与图1相比,步骤s102具体包括步骤s301、s302和s303,具体如下:

步骤s301,提取所述网络调用日志中各区段的数据。

当获取到所述网络调用日志后,将各区段的数据提取出来,并转换成存储所需的格式,便于后续处理。

步骤s302,解析所述已提取的数据。

在本发明实施例中,为了便于分析,需要对所述网络调用日志中已提取的数据进行解析,将所述网络调用日志的数据解析成可以用相应的分析方法来分析的形式,所述网络调用日志包含了整个网络服务过程的流程说明,包括trace、span、全局跟踪id、时间戳(timestamp)和持续时间(duration)等

为了更清楚的表达本发明的的分析内容,结合图2所示对本发明的网络应用服务调用日志解析的内容进行说明。假设一个trace代表一个网络应用服务或者流程在分布式系统中的执行过程,是存在并行数据或并行执行轨迹的系统,是多个span组成的一个有向无环图,所述span代表所述trace中被命名和计时的连续性执行片段(逻辑运行单元),在分布式轨迹中每个组件都包含各自的一个或者多个span。span之间通过嵌套或者顺序排列建立逻辑因果关系。例如,在一个rpc调用中,客户端和服务端各有一个span,记录rpc调用的信息。

图2所描述的网络服务调用场景是很常见也很简单的调用场景,一个网络服务请求通过gateway服务路由到下游的service1,然后service1先调用服务service2,拿到结果后再调用服务service3,最后组合service2和service3服务的结果,通过gateway返回给用户。我们用①②③④⑤⑥表示了rpc的顺序。

在本发明实施例中,每一次完整的网络应用服务调用都被标记了全局跟踪id,即traceid,所以和一次网络应用服务调用相关的span中的traceid都是相同的,具有相同traceid的span可以组装成跟踪树来直观的将调用链路图展现在用户面前。

优选的,在本发明实施例中,span也设置相应的id,理论上来说,span的id只要做到一个traceid下唯一就可以。

span设置了id后,可以按照结构树的形式形成父span和子span。因调用有层级关系,所以span作为调用节点的存储结构,也有层级关系,跟踪链是采用跟踪树的形式来展现的,树的根节点就是调用的顶点,从开发者的角度来说,顶级span是从最先接触到服务调用的应用中采集的。所以,顶级span可以不设置id字段,以图2所示的服务调用为例,顶级span由gateway来采集,service1的span是它的子span,而service2和service3的span是service1的span的子span,很显然service2和service3的span是平级关系,是followfrom关系。

在本发明实施例中,每一个span都需设置有一个操作名称(name),所述操作名词需简单,可读性高,主要用于在界面上展示,一般是接口方法的名称,或者一个大型计算过程中的子任务或者阶段名称。所述操作名称的作用是让用户或系统知道它是哪里采集的span,因此,一旦分析发现某个span耗时较高即可以知道是哪个服务节点耗时高。例如调用核心扣款,则设置name=collect

在本发明实施例中,每一个span都有自己的时间戳(timestamp)和持续时间(duration),所述时间戳为创建时的时间戳,用来记录采集的时刻。所述持续时间,即span的创建到span完成最终的采集所经历的时间,除去span自己逻辑处理的时间,该时间段可以理解成对于该跟踪埋点来说服务调用的总耗时。

在本发明实施例中,每一个span都包含一组基本标注列表(annotation)和业务标注列表(binaryannotation)。所述基本标注列表用于定位一个request的开始和结束,一个标注可以理解成span生命周期中重要时刻的数据快照,比如一个标注中一般包含发生时刻(timestamp)、事件类型(value)、端点(endpoint)等信息;所述业务标注列表用于提供一些额外信息,一般以key-value对出现。

步骤s303,根据预设的分析方式分析所述已解析的数据。

按照预设的分析方式分析所述已解析的网络调用日志数据,通过分析网络请求在各个分布式系统之间的调用情况,从而得到处理请求的调用链上的入口url、应用、服务的调用关系,从而找到请求处理瓶颈,定位错误异常的根源位置。所述预设的分析方式包括但不限于流式分析和异步批量,而流式分析会对数据统计和告警的实时性更有帮助。

图4示出了适用于本发明实施例提供的一种基于网络调用日志的应用性能分析装置的结构框图,其特征在于,所述装置包括:

日志获取单元401,用于获取应用服务的网络调用日志。

在本发明实施例中,所述网络调用日志包含网络应用服务的在分布式系统中的执行过程,如处理请求在调用链上的入口url、应用、服务的调用关系等,由网络应用程序的探针搜集,应用程序探针是应用程序的收集端,负责所述应用程序的网络调用日志的采集。一般使用插件的模式,自动探针一般是不需要修改程序,而普通的软件开发工具包(如sdk)则是需要修改部分配置或者代码。

优选的,所述基于网络调用日志的应用性能分析装置还包括:

网络接口提供单元,用于向应用服务提供网络接口。

为了便于收集各网络应用服务的网络调用日志,需要预先对所述网络应用程序的探针和sdk提供网络接口(如http形式接口),所述网络接口为可以与所述网络应用程序之间传输网络调用日志数据的接口即可。

验证单元,用于对获取的应用服务网络调用日志进行验证。

对每一个获取的网络调用日志数据进行验证,判断是否为相应的网络应用服务的调用日志。

存储单元,用于存储所述网络调用日志并设置索引。

当所述网络调用日志验证通过后即可存储所述网络调用日志数据并设置索引,便于后续的使用和查找。

优选的,可以在所述网络调用日志的调用链上添加自己的业务埋点日志,使各个系统的网络调用与实际业务内容得到关联。

日志分析单元402,用于分析所述网络调用日志;

在本发明实施例中,先将收集的网络调用日志的数据进行汇总,再对收集数据进行解析,提取各个区段(span)的数据,并转换成存储所需的格式,然后按照预设的分析方式分析网络请求在各个分布式系统之间的调用情况,从而得到处理请求的调用链上的入口url、应用、服务的调用关系,从而找到请求处理瓶颈,定位错误异常的根源位置。所述预设的分析方式包括但不限于流式分析和异步批量,而流式分析会对数据统计和告警的实时性更有帮助。

为了更清楚的表达本发明的的分析内容,结合图2所示对本发明的网络应用服务调用日志做一个简单的说明,假设一个trace代表一个网络应用服务或者流程在分布式系统中的执行过程,是存在并行数据或并行执行轨迹的系统,是多个span组成的一个有向无环图,所述span代表所述trace中被命名和计时的连续性执行片段(逻辑运行单元),在分布式轨迹中每个组件都包含各自的一个或者多个span。span之间通过嵌套或者顺序排列建立逻辑因果关系。例如,在一个rpc调用中,客户端和服务端各有一个span,记录rpc调用的信息。

图2所描述的网络服务调用场景是很常见也很简单的调用场景,一个网络服务请求通过gateway服务路由到下游的service1,然后service1先调用服务service2,拿到结果后再调用服务service3,最后组合service2和service3服务的结果,通过gateway返回给用户。我们用①②③④⑤⑥表示了rpc的顺序。

在本发明实施例中,每一次完整的网络应用服务调用都被标记了全局跟踪id,即traceid,所以和一次网络应用服务调用相关的span中的traceid都是相同的,具有相同traceid的span可以组装成跟踪树来直观的将调用链路图展现在用户面前。

优选的,在本发明实施例中,span也设置相应的id,理论上来说,span的id只要做到一个traceid下唯一就可以。

span设置了id后,可以按照结构树的形式形成父span和子span。因调用有层级关系,所以span作为调用节点的存储结构,也有层级关系,跟踪链是采用跟踪树的形式来展现的,树的根节点就是调用的顶点,从开发者的角度来说,顶级span是从最先接触到服务调用的应用中采集的。所以,顶级span可以不设置id字段,以图2所示的服务调用为例,顶级span由gateway来采集,service1的span是它的子span,而service2和service3的span是service1的span的子span,很显然service2和service3的span是平级关系,是followfrom关系。

在本发明实施例中,每一个span都需设置有一个操作名称(name),所述操作名词需简单,可读性高,主要用于在界面上展示,一般是接口方法的名称,或者一个大型计算过程中的子任务或者阶段名称。所述操作名称的作用是让用户或系统知道它是哪里采集的span,因此,一旦分析发现某个span耗时较高即可以知道是哪个服务节点耗时高。例如调用核心扣款,则设置name=collect

在本发明实施例中,每一个span都有自己的时间戳(timestamp)和持续时间(duration),所述时间戳为创建时的时间戳,用来记录采集的时刻。所述持续时间,即span的创建到span完成最终的采集所经历的时间,除去span自己逻辑处理的时间,该时间段可以理解成对于该跟踪埋点来说服务调用的总耗时。

在本发明实施例中,每一个span都包含一组基本标注列表(annotation)和业务标注列表(binaryannotation)。所述基本标注列表用于定位一个request的开始和结束,一个标注可以理解成span生命周期中重要时刻的数据快照,比如一个标注中一般包含发生时刻(timestamp)、事件类型(value)、端点(endpoint)等信息;所述业务标注列表用于提供一些额外信息,一般以key-value对出现。

优选的,如果某些跟踪埋点需要带上部分业务数据(比如url地址、返回码和异常信息等),可以将需要的数据以键值对的形式放入到业务标注列表的字段中。支持简单的对span进行注解和补充。

通过上述对网络调用日志内容的设置、分解及时间和事件记录等操作,即可以利用所述预设的分析方法分析出所述网络调用日志的调用链上的入口url、应用、服务的调用关系,从而找到请求处理瓶颈,定位错误异常的根源位置

判断预警单元403,用于根据所述网络调用日志的分析结果进行判断,当判断所述网络调用日志中存在异常点时,按照预设的规则进行预警。

在本发明实施例中,通过上述网络调用日志的分析,对所述分析结果进行判断,当判断所述网络调用日志中存在处理瓶颈或异常耗时点时,对故障系统进行分类,并按照预设的规则进行预警,快速将介入的各监控系统报障通知给相应运维人员。

在本发明实施例中,所述按照预设的规则进行预警的方式包括但不限于向预设的通信终端发送预警短信、向预设的终端发送预警电子邮件、向用户输出语音提示。

作为本发明的一个优选实施例,所述预警方式可以是向预设的通信终端发送预警短信。用户需提前预设预警短信发送的通讯号码,当判断满足预警条件时,即向所述通讯号码发送预警短信,所述预警短信的内容可以是系统自带的,也可以是用户预先编辑好的。

作为本发明的一个优选实施例,所述预警方式可以是向预设的终端发送预警电子邮件。用户需提前预设预警电子邮件发送的通讯地址,当判断满足预警条件时,即向所述通讯地址发送预警电子邮件,所述预警电子邮件的内容可以是系统自带的,也可以是用户预先编辑好的。

作为本发明的一个优选实施例,所述向用户提醒的方式可以是语音的方式,即向用户播放预设的语音,所述语音可以是由用户选择确定的预先存储的一条或多条语音中的一条,也可以是用户录制的一条或多条语音中的一条。

优选的,在本发明实施例中,可以将所有已获取的所述网络调用日志进行存储,同时可以设置存储时间,当数据存储超过所述存储时间时,自动清除。所述存储可以采用多种形式,此处不做限制,例如当用于大规模时,可以采用zipkin-server-es,存储形式为json。

优选的,在本发明实施例中,所述网络调用日志及其查询和分析结果可以以预设的形式向用户进行展示,如ui(search),所述暂时内容包括但不限于trace的查询,统计数据等监控关键数据的展现。

综上所述,通过利用上述基于网络调用日志的应用性能分析装置能有效监控每一个网络应用服务,分析网络请求在各个分布式系统之间的调用情况,从而找到所述应用服务请求处理瓶颈,并及时发现应用服务运行中代码各部分的耗时点,定位错误异常的根源位置,提高网络应用服务故障处理效率。

图5示出了适用于本发明实施例提供的一种基于网络调用日志的应用性能分析装置的结构框图,其特征在于,所述日志分析单元102具体还包括:

提取模块501,用于提取所述网络调用日志中各区段的数据。

当获取到所述网络调用日志后,将各区段的数据提取出来,并转换成存储所需的格式,便于后续处理。

解析模块502,用于解析所述已提取的数据。

在本发明实施例中,为了便于分析,需要对所述网络调用日志中已提取的数据进行解析,将所述网络调用日志的数据解析成可以用相应的分析方法来分析的形式,所述网络调用日志包含了整个网络服务过程的流程说明,包括trace、span、全局跟踪id、时间戳(timestamp)和持续时间(duration)等

为了更清楚的表达本发明的的分析内容,结合图2所示对本发明的网络应用服务调用日志解析的内容进行说明。假设一个trace代表一个网络应用服务或者流程在分布式系统中的执行过程,是存在并行数据或并行执行轨迹的系统,是多个span组成的一个有向无环图,所述span代表所述trace中被命名和计时的连续性执行片段(逻辑运行单元),在分布式轨迹中每个组件都包含各自的一个或者多个span。span之间通过嵌套或者顺序排列建立逻辑因果关系。例如,在一个rpc调用中,客户端和服务端各有一个span,记录rpc调用的信息。

图2所描述的网络服务调用场景是很常见也很简单的调用场景,一个网络服务请求通过gateway服务路由到下游的service1,然后service1先调用服务service2,拿到结果后再调用服务service3,最后组合service2和service3服务的结果,通过gateway返回给用户。我们用①②③④⑤⑥表示了rpc的顺序。

在本发明实施例中,每一次完整的网络应用服务调用都被标记了全局跟踪id,即traceid,所以和一次网络应用服务调用相关的span中的traceid都是相同的,具有相同traceid的span可以组装成跟踪树来直观的将调用链路图展现在用户面前。

优选的,在本发明实施例中,span也设置相应的id,理论上来说,span的id只要做到一个traceid下唯一就可以。

span设置了id后,可以按照结构树的形式形成父span和子span。因调用有层级关系,所以span作为调用节点的存储结构,也有层级关系,跟踪链是采用跟踪树的形式来展现的,树的根节点就是调用的顶点,从开发者的角度来说,顶级span是从最先接触到服务调用的应用中采集的。所以,顶级span可以不设置id字段,以图2所示的服务调用为例,顶级span由gateway来采集,service1的span是它的子span,而service2和service3的span是service1的span的子span,很显然service2和service3的span是平级关系,是followfrom关系。

在本发明实施例中,每一个span都需设置有一个操作名称(name),所述操作名词需简单,可读性高,主要用于在界面上展示,一般是接口方法的名称,或者一个大型计算过程中的子任务或者阶段名称。所述操作名称的作用是让用户或系统知道它是哪里采集的span,因此,一旦分析发现某个span耗时较高即可以知道是哪个服务节点耗时高。例如调用核心扣款,则设置name=collect

在本发明实施例中,每一个span都有自己的时间戳(timestamp)和持续时间(duration),所述时间戳为创建时的时间戳,用来记录采集的时刻。所述持续时间,即span的创建到span完成最终的采集所经历的时间,除去span自己逻辑处理的时间,该时间段可以理解成对于该跟踪埋点来说服务调用的总耗时。

在本发明实施例中,每一个span都包含一组基本标注列表(annotation)和业务标注列表(binaryannotation)。所述基本标注列表用于定位一个request的开始和结束,一个标注可以理解成span生命周期中重要时刻的数据快照,比如一个标注中一般包含发生时刻(timestamp)、事件类型(value)、端点(endpoint)等信息;所述业务标注列表用于提供一些额外信息,一般以key-value对出现。

分析模块503,用于根据预设的分析方式分析所述已解析的数据。

按照预设的分析方式分析所述已解析的网络调用日志数据,通过分析网络请求在各个分布式系统之间的调用情况,从而得到处理请求的调用链上的入口url、应用、服务的调用关系,从而找到请求处理瓶颈,定位错误异常的根源位置。所述预设的分析方式包括但不限于流式分析和异步批量,而流式分析会对数据统计和告警的实时性更有帮助。

在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明任一项方法的步骤。

在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本发明任一项方法的步骤。

应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1