一种SOA服务实时监控上报与性能度量系统的制作方法

文档序号:12491344阅读:205来源:国知局

本发明涉及数据监控技术领域,尤其涉及一种SOA服务实时监控上报与性能度量系统。



背景技术:

后台服务使用分布式的微服务,对应用的运行状态,接口的响应时间,处理量,关键业务指标等数据,均需要一个系统进行实时的监控,同时该系统是分布式的,且与微服务是松耦合,相互之间无影响;

现有技术采用的数据监控技术方案,是针对于日志收集归档和分析,页面展示方式多样,数据图格式较丰富,缺点是没有专门针对微服务的特定指标监控的方式,不能满足服务实时监控治理的需求;

当前也没有比较通用的开源实现,各公司的方案均是与自身运行环境紧密的结合在一块,难以开源;

因此,本领域的技术人员亟需研究出一种独立于日志处理系统,可专门对接口、服务内部、业务数据这些运行时的关键指标进行上报和收集监控,通过文件和运行的服务相互关联,与各运行的服务相互解耦,可将各机器设备的监控文件的内容实时收集给数据处理程序,满足公司日益增多的微服务治理需求的SOA服务实时监控上报与性能度量系统。



技术实现要素:

本发明要解决的技术问题是提供一种SOA服务实时监控上报与性能度量系统,该SOA服务实时监控上报与性能度量系统可专门对接口、服务内部、业务数据这些运行时的关键指标进行上报和收集监控,通过文件和运行的服务相互关联,与各运行的服务相互解耦,可将各机器设备的监控文件的内容实时收集给数据处理程序,可实时对被监控设备的服务构件的服务性能进行计算,确保服务构件工作实时的耦合性与内聚性,满足了公司日益增多的微服务治理需求。

为解决上述技术问题,本发明提供了一种SOA服务实时监控上报与性能度量系统,包括用于实现关键的服务内部数据指标的聚合计算的聚合计算模块、与所述聚合计算模块连接的用于对被监控的设备的服务性能进行度量的服务性能度量模块,若干设置于被监控的设备上的收集器、与所述收集器连接的监控处理器、与所述监控处理器连接的数据库、与所述数据库连接的网络服务器、与所述网络服务器连接的监控展示模块,所述聚合计算模块配置有监控聚合json协议,所述聚合计算模块根据监控聚合json协议以时间为单位对计算主体进行聚合计算,并将计算结果发送给监控文件作为一条监控记录,所述服务性能度量模块根据服务构件耦合性计算公式对所述被监控设备的服务构件的耦合性进行计算,并将耦合性计算结果发送给监控文件作为一条监控记录,各个所述收集器对监控文件的变更事件进行监控,当微服务向所述监控文件保存一条监控数据,所述收集器捕获文件变更数据并将捕获的变更事件数据发送给所述监控服务器,所述监控服务器对各个设备上的不同服务的监控数据进行处理后实时发送所述数据库,所述数据库将监控数据发送给所述网络服务器,所述网络服务器将监控数据发送到所述监控展示模块进行显示,所述服务性能度量模块包括配置有服务构件耦合性计算公式;

所述服务构件耦合性计算公式为:

其中,Q(X)表示设备服务构件的耦合性,|X|表示设备中所有服务构件的数目,|Ci|表示服务构件Ci包含的性能指标数量,OU(Ci)表示服务构件Ci关联外部构件的数量;

其中,所述监控聚合json协议定义的计算主体为:API、服务相关性能指标、业务自定义的指标,所述聚合计算类型为:求和、平均值、最大值、最小值、计算次数。

优选地,所述监控服务器包括监控数据处理模块、数据接收模块、数据存储模块,所述数据接收模块接收收集器捕获的变更事件数据,所述数据接收模块将所述变更事件数据发送给所述监控数据处理模块,所述监控数据处理模块对各个设备上的不同服务的监控数据进行处理并发送给所述数据存储模块存储,所述监控数据处理模块将处理后的监控数据实时发送所述数据库。

优选地,所述聚合计算模块包括数据队列单元及数据聚合计算单元,各个所述设备包括若干收集器数据线程,所述数据队列单元以队列作为与其他线程交互的缓冲通道,所述收集器数据线程以无阻塞方式将每个待计算的数据单元的数据上报给所述队列,所述收集器数据线程从队列中以循环方式取出计算单元数据并发送所述数据聚合计算单元,所述数据聚合计算单元根据所述监控聚合json协议计算以计算主体一个时间单位内的聚合数据并将计算出来的数据发送给所述监控文件作为一条监控记录。

优选地,所述收集器包括文件变更监听模块、文件变更捕捉模块及文件变更数据发送模块,所述文件变更监听模块对监控文件的变更事件进行监控,所述文件变更捕捉模块捕获文件变更数据并将捕获的变更文件数据发送给所述文件变更数据发送模块,所述文件变更数据发送模块将变更事件数据发送给所述监控服务器。

优选地,所述监控聚合json协议中的服务相关性能指标包括:API被调用的相关指标、微服务主动调用缓存器的相关指标、本条监控数据记录的保存时间、微服务名及服务实例。

优选地,所述收集器将收集上来的数据发送给所述监控服务器进行存储,以微服务为单位,使用网络服务器是以python实现的。

优选地,所述监控展示模块通过本条监控数据记录的保存时间、微服务名、及服务实例在时间维度上聚合上报上来的数据,画成以时间为横坐标监控数据为纵坐标的连续图谱。

优选地,所述SOA服务实时监控上报与性能度量系统还包括与所述网络服务器连接的图谱比较分析模块、与各个所述设备连接的设备主控制器及用户端,所述图谱比较分析模块比较连续图谱和程序计算图谱曲线偏向方差,如果图谱显著异常,所述图谱比较分析模块将监控的事态的情况发送给所述用户端;如果请求数据不断在增加,则设备主控制器动态地增加服务实例,降低平均的负载。

采用了上述系统之后,所述聚合计算模块根据监控聚合json协议以时间为单位对计算主体进行聚合计算,并将计算结果发送给监控文件作为一条监控记录,所述服务性能度量模块根据服务构件耦合性计算公式对所述被监控设备的服务构件的耦合性进行计算,并将耦合性计算结果发送给监控文件作为一条监控记录,各个所述收集器对监控文件的变更事件进行监控,当微服务向所述监控文件保存一条监控数据,所述收集器捕获文件变更数据并将捕获的变更事件数据发送给所述监控服务器,所述监控服务器对各个设备上的不同服务的监控数据进行处理后实时发送所述数据库,所述数据库将监控数据发送给所述网络服务器,所述网络服务器将监控数据发送到所述监控展示模块进行显示;其中,所述数据队列单元以队列作为与其他线程交互的缓冲通道,所述收集器数据线程以无阻塞方式将每个待计算的数据单元的数据上报给所述队列,所述收集器数据线程从队列中以循环方式取出计算单元数据并发送所述数据聚合计算单元,所述数据聚合计算单元根据所述监控聚合json协议计算以计算主体一个时间单位内的聚合数据并将计算出来的数据发送给所述监控文件作为一条监控记录,该SOA服务实时监控上报与性能度量系统可专门对接口、服务内部、业务数据这些运行时的关键指标进行上报和收集监控,通过文件和运行的服务相互关联,与各运行的服务相互解耦,可将各机器设备的监控文件的内容实时收集给数据处理程序,可实时对被监控设备的服务构件的服务性能进行计算,确保服务构件工作实时的耦合性与内聚性,满足了公司日益增多的微服务治理需求。

附图说明

图1是本发明的一种SOA服务实时监控上报与性能度量系统的整体模型示意图。

具体实施方式

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

实施例1

请参阅图1,图1是本发明的一种SOA服务实时监控上报与性能度量系统;

本发明公开了一种SOA服务实时监控上报与性能度量系统,包括用于实现关键的服务内部数据指标的聚合计算的聚合计算模块、与所述聚合计算模块连接的用于对被监控的设备的服务性能进行度量的服务性能度量模块,若干设置于被监控的设备上的收集器、与所述收集器连接的监控处理器、与所述监控处理器连接的数据库、与所述数据库连接的网络服务器、与所述网络服务器连接的监控展示模块,所述聚合计算模块配置有监控聚合json协议,所述聚合计算模块根据监控聚合json协议以时间为单位对计算主体进行聚合计算,并将计算结果发送给监控文件作为一条监控记录,所述服务性能度量模块根据服务构件耦合性计算公式对所述被监控设备的服务构件的耦合性进行计算,并将耦合性计算结果发送给监控文件作为一条监控记录,各个所述收集器对监控文件的变更事件进行监控,当微服务向所述监控文件保存一条监控数据,所述收集器捕获文件变更数据并将捕获的变更事件数据发送给所述监控服务器,所述监控服务器对各个设备上的不同服务的监控数据进行处理后实时发送所述数据库,所述数据库将监控数据发送给所述网络服务器,所述网络服务器将监控数据发送到所述监控展示模块进行显示,所述服务性能度量模块配置有服务构件耦合性计算公式;

所述服务构件耦合性计算公式为:

其中,|X|表示设备中所有服务构件的数目,|Ci|表示服务构件Ci包含的性能指标数量,OU(Ci)表示服务构件Ci关联外部构件的数量;

所述服务构件耦合性说明该设备的内部构件同其他构件的关联程度,反映了多构件之间的依赖属性。

所述服务性能度量模块还配置有内聚性计算公式,所述内聚性计算公式为:

其中,S(X)表示被监控设备的服务构件的内聚性,设备的服务构件的内聚性表示构件内部与外部的关联度,关联度越高表示设备的服务构件的内聚性越高,W(Ci)和W(Ci)2分别表示被监控设备的服务构件Ci在本构件内的数据关联操作数目和控制关联操作数目。

其中,所述监控聚合json协议定义的计算主体为:API、服务相关性能指标、业务自定义的指标,所述聚合计算类型为:求和、平均值、最大值、最小值、计算次数。

所述监控服务器包括监控数据处理模块、数据接收模块、数据存储模块,所述数据接收模块接收收集器捕获的变更事件数据,所述数据接收模块将所述变更事件数据发送给所述监控数据处理模块,所述监控数据处理模块对各个设备上的不同服务的监控数据进行处理并发送给所述数据存储模块存储,所述监控数据处理模块将处理后的监控数据实时发送所述数据库。

所述聚合计算模块包括数据队列单元及数据聚合计算单元,各个所述设备包括若干收集器数据线程,所述数据队列单元以队列作为与其他线程交互的缓冲通道,所述收集器数据线程以无阻塞方式将每个待计算的数据单元的数据上报给所述队列,所述收集器数据线程从队列中以循环方式取出计算单元数据并发送所述数据聚合计算单元,所述数据聚合计算单元根据所述监控聚合json协议计算以计算主体一个时间单位内的聚合数据并将计算出来的数据发送给所述监控文件作为一条监控记录。

所述收集器包括文件变更监听模块、文件变更捕捉模块及文件变更数据发送模块,所述文件变更监听模块对监控文件的变更事件进行监控,所述文件变更捕捉模块捕获文件变更数据并将捕获的变更文件数据发送给所述文件变更数据发送模块,所述文件变更数据发送模块将变更事件数据发送给所述监控服务器。

所述监控聚合json协议中的服务相关性能指标包括:API被调用的相关指标、微服务主动调用缓存器的相关指标、本条监控数据记录的保存时间、微服务名及服务实例。

在本实施例,所述收集器将收集上来的数据发送给所述监控服务器进行存储,以微服务为单位,使用网络服务器是以python实现的。

所述监控展示模块通过本条监控数据记录的保存时间、微服务名、及服务实例在时间维度上聚合上报上来的数据,画成以时间为横坐标监控数据为纵坐标的连续图谱。

所述SOA服务实时监控上报与性能度量系统还包括与所述网络服务器连接的图谱比较分析模块、与各个所述设备连接的设备主控制器及用户端,所述图谱比较分析模块比较连续图谱和程序计算图谱曲线偏向方差,如果图谱显著异常,所述图谱比较分析模块将监控的事态的情况发送给所述用户端;如果请求数据不断在增加,则设备主控制器动态地增加服务实例,降低平均的负载。

在本实施例,监控聚合json协议的构成如下所示:

be-call:API被调用的相关指标

call-redis:微服务主动调用redis的相关指标

biz-:开发者自定义上报的相关监控指标

ts_f:本条监控数据记录的落地时间

sv:微服务名(公司内部环境相关)

si:服务实例(公司内部环境相关)

如果下列例子配置:

所述数据聚合计算单元根据上述监控聚合json协议计算以计算主体一个时间单位内的聚合数据并将计算出来的数据发送给所述监控文件作为一条监控记录。

采用了上述系统之后,所述聚合计算模块根据监控聚合json协议以时间为单位对计算主体进行聚合计算,并将计算结果发送给监控文件作为一条监控记录,所述服务性能度量模块根据服务构件耦合性计算公式对所述被监控设备的服务构件的耦合性进行计算,并将耦合性计算结果发送给监控文件作为一条监控记录,各个所述收集器对监控文件的变更事件进行监控,当微服务向所述监控文件保存一条监控数据,所述收集器捕获文件变更数据并将捕获的变更事件数据发送给所述监控服务器,所述监控服务器对各个设备上的不同服务的监控数据进行处理后实时发送所述数据库,所述数据库将监控数据发送给所述网络服务器,所述网络服务器将监控数据发送到所述监控展示模块进行显示;其中,所述数据队列单元以队列作为与其他线程交互的缓冲通道,所述收集器数据线程以无阻塞方式将每个待计算的数据单元的数据上报给所述队列,所述收集器数据线程从队列中以循环方式取出计算单元数据并发送所述数据聚合计算单元,所述数据聚合计算单元根据所述监控聚合json协议计算以计算主体一个时间单位内的聚合数据并将计算出来的数据发送给所述监控文件作为一条监控记录,该SOA服务实时监控上报与性能度量系统可专门对接口、服务内部、业务数据这些运行时的关键指标进行上报和收集监控,通过文件和运行的服务相互关联,与各运行的服务相互解耦,可将各机器设备的监控文件的内容实时收集给数据处理程序,可实时对被监控设备的服务构件的服务性能进行计算,确保服务构件工作实时的耦合性与内聚性,满足了公司日益增多的微服务治理需求。

同时,应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效实现方法,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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