基于服务起源的云服务监控方法和装置制造方法及图纸

技术编号:13178719 阅读:46 留言:0更新日期:2016-05-11 10:11
本发明专利技术公开一种基于服务起源的云服务监控方法,该方法包括以下步骤:1)捕获服务起源数据;其中服务起源的定义为,描述了服务的动态执行历史和过程,体现了服务运行的状态和动态依赖关系;所述服务运行的状态包括服务运行耗时和服务运行频率;2)应用服务起源数据规范根据服务起源数据生成起源日志文件;3)使用非关系数据库存储起源日志文件;4)根据服务起源日志记录生成服务起源图;5)若发现某个服务Si异常,定位查找导致服务Si异常的服务。本发明专利技术方法有效解决云计算环境下,分布式服务的故障追踪、服务性能分析难题,能够细粒度的监控业务系统的服务运行状态。

【技术实现步骤摘要】

本专利技术涉及云服务
,尤其涉及一种基于服务起源的云服务监控方法和装置
技术介绍
现有的服务监控,主要关注的是服务本身的运行状态,很少关注服务之间的依赖关系。专利“一种WEB服务监控参数的调整装置和方法-200910094000.1”主要关注特定的web服务监控方法,专利“一种分布式应用系统的服务监控方法及装置201310625603.6”关注应用系统的服务调用次数,发现调用异常。专利“云计算服务监控系统及方法201310625603.6”和“服务监控方法及系统201210009234.3”主要关注服务监控系统的体系结构和通讯,没有关注服务状态和依赖的监控。在服务监控中,以Google,Twitter为代表的互联网公司处于自身需要开发了相应的服务追踪平台。Google在2010年发布了Dapper[BenjaminH.Sigelman,LuizAndreBarroso,MikeBurrows,PatStephenson,ManojPlakal,DonaldBeaver,SaulJaspan,ChandanShanbhagDapper,“aLarge-ScaleDistributedSystemsTracingInfrastructure”,GoogleTechnicalReportdapper-2010-1,April2010],通过修改服务调用底层库结构,实现自动获取服务动态行为,服务之间的依赖关系通过栅格和树形结构进行表达,起源信息存储在bigtable。Dapper本身建立在Google的基础平台上,高性能要求和同构特性使得其不支持其他异构平台。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种基于服务起源的云服务监控方法。本专利技术解决其技术问题所采用的技术方案是:1)捕获服务起源数据;其中服务起源的定义为,描述了服务的动态执行历史和过程,体现了服务运行的状态(耗时、频率等)和动态依赖关系;2)应用服务起源数据规范根据服务起源数据生成起源日志文件;3)使用非关系数据库存储起源日志文件;所述非关系数据库包括文档型数据库和图数据库;采用图数据库进行存储,该存储模式包括节点及节点属性,关系和关系属性,具体如下:(3.1)所有的服务作为节点存储在节点集合中(3.2)服务之间的依赖作为关系(边)存储(3.3)节点属性,主要存储服务起源规范中的location信息,以Key-Value的形式在属性结合存储。(3.4)关系属性存储在属性集合中,主要存储服务起源规范中的(token,elapsedtime,timestamp,input,output,status)信息,以Key-Value的形式在属性结合存储。(3.5)当服务Si多次调用Sj,调用关系只存储一次,每次调用的信息存储在关系属性集合中。4)生成服务起源图;服务起源图的生成过程包括:4.1)读取捕获的服务起源日志记录;4.2)从上述描述的服务起源数据结构(9元组),获得InvokingService,ServiceInvoked,在现有的服务列表中通过哈希查找确定是否已经记录了这两个服务,如果没有,则加入服务节点,并从9元组中读取location信息,存入到服务节点属性;4.3)根据<InvokingService,ServiceInvoked>表示的两个服务之间的依赖关系,把该关系存储为图数据库的一条边;4.4)获取某次服务调用的属性信息,包括(token,elapsedtime,timestamp,input,output,status)存储在边的属性对中,该属性对以Key-Value的形式存储。4.5)通过服务节点和服务依赖,构造服务起源图;5)若发现某个服务Si异常,定位查找导致服务Si异常的服务;5.1)在服务起源图中查找该服务是否有依赖服务,如果没有依赖服务,则该故障发生在该服务本身;5.2)查询该服务所有的直接依赖服务,并搜索时间最新的调用属性记录,提取token值,形成Si调用异常的服务节点集合M;5.3)采用图的深度遍历算法,以M集合中的服务节点为起点,查询具有同样token值的依赖服务;5.4)反复迭代,重复步骤5.2)和5.3),直到找到没有服务依赖的服务,终止搜索;5.5)综合返回的路径,构造给定服务Si的实时调用起源图,在进行故障诊断的时候采用如下方法:A)在Si的调用图中,查找status为0的调用路径P,则该路径上的服务节点可能是故障点;(Status为1表示服务调用正常,status为0表示服务调用异常)B)对路径P上的所有节点进行故障排查,如果某个节点服务调用其他服务正常,则该节点正常,并从P中删除;C)P中的服务节点即可能为故障节点;6)监测所有服务的执行耗时,统计某段时间范围内耗时较多的服务;具体步骤为:6.1)通过聚合运算统计具有直接依赖关系的服务调用平均耗时,即Si调用Sj的平均耗时6.2)通过聚合运算统计具有直接依赖关系的服务调用次数,即Si调用Sj的次数6.3)基于上述的起源图存储模式,统计两个直接依赖关系的服务,其每次调用信息存储在关系属性集合中,所以只需要对这两个服务之间的记录按照要求进行聚合运算;6.4)对统计的服务调用平均耗时数据和服务调用次数排序,进行服务起源的服务性能分析。按上述方案,步骤1)中捕获服务起源数据采取以下方法:1.1)根据服务框架和调用协议设计服务调用拦截器;1.2)将服务调用拦截器内置在服务调用协议中;1.3)当服务调用发生时,服务调用拦截器拦截服务调用请求,获得服务动态调用依赖关系,并标识每个任务的服务组合;服务调用拦截器的设计方法包括以下步骤:1.11)创建用于存储服务起源信息的文件;1.12)服务调用者产生一个唯一的token值,作为识别服务动态依赖的标志;1.13)创建用于读取并存储服务调用开始时间的参量;1.14)创建用于读取和存储当前的IP地址的参量;1.15)创建用于存储所调用的服务名称的参量;1.16)创建用于存储所调用的服务的入口参数的参量;1.17)上述参量、文件和token值共同构成服务调用拦截器。按上述方案,步骤2)中捕获服务起源数据采取以下方法:服务调用拦截器按照服务起源数据规范,根据获得的服务动态调用依赖关系和经过标识的每个任务的服务组合生成并输出起源日志文件;将起源日志文件进行数据处理后,存储在云数据库中;所述服务起源数据规范为一个9元组:BasicProv(token,InvokingService,ServiceInvoked,location,elapsedtime,timestamp,input,output,status);其中Token为一个32位的字符串,用于标本文档来自技高网
...

【技术保护点】
一种基于服务起源的云服务监控方法,其特征在于,包括以下步骤:1)捕获服务起源数据;其中服务起源的定义为,描述了服务的动态执行历史和过程,体现了服务运行的状态和动态依赖关系;所述服务运行的状态包括服务运行耗时和服务运行频率;2)应用服务起源数据规范根据服务起源数据生成起源日志文件;3)使用非关系数据库存储起源日志文件; 4)根据服务起源日志记录生成服务起源图;5)若发现某个服务Si异常,定位查找导致服务Si异常的服务。

【技术特征摘要】
1.一种基于服务起源的云服务监控方法,其特征在于,包括以下步骤:
1)捕获服务起源数据;其中服务起源的定义为,描述了服务的动态执行历史和过程,体现了服务运行的状态和动态依赖关系;所述服务运行的状态包括服务运行耗时和服务运行频率;
2)应用服务起源数据规范根据服务起源数据生成起源日志文件;
3)使用非关系数据库存储起源日志文件;
4)根据服务起源日志记录生成服务起源图;
5)若发现某个服务Si异常,定位查找导致服务Si异常的服务。
2.根据权利要求1所述的基于服务起源的云服务监控方法,其特征在于,所述步骤3)中非关系数据库包括文档型数据库和图数据库;
采用图数据库进行存储,该存储模式包括节点及节点属性,关系和关系属性,具体如下:
(3.1)所有的服务作为节点存储在节点集合中;
(3.2)服务之间的依赖作为关系(边)存储;
(3.3)节点属性,主要用于存储服务起源规范中的location信息,以Key-Value的形式在属性集合存储;
(3.4)关系属性存储在属性集合中,主要存储服务起源规范中的(token,elapsedtime,timestamp,input,output,status)信息,以Key-Value的形式在属性集合存储;
(3.5)当服务Si多次调用Sj,调用关系只存储一次,每次调用的信息存储在关系属性集合中。
3.根据权利要求1所述的基于服务起源的云服务监控方法,其特征在于,所述步骤4)中服务起源图的生成过程包括:
4.1)读取捕获的服务起源日志记录;
4.2)从上述描述的服务起源数据结构(9元组),获得InvokingService,ServiceInvoked,在现有的服务列表中查找确定是否已经记录了这两个服务,如果没有,则加入服务节点,并从9元组中读取location信息,存入到服务节点属性;
4.3)根据<InvokingService,ServiceInvoked>表示的两个服务之间的依赖关系,把该关系存储为图数据库的一条边;
4.4)获取某次服务调用的属性信息,包括(token,elapsedtime,timestamp,input,output,status)存储在边的属性对中,该属性对以Key-Value的形式存储;
4.5)通过服务节点和服务依赖,构造服务起源图。
4.根据权利要求1所述的基于服务起源的云服务监控方法,其特征在于,所述步骤5)中定位查找导致服务Si异常的服务;
5.1)在服务起源图中查找该服务是否有依赖服务,如果没有依赖服务,则该故障发生在该服务本身;
5.2)查询该服务所有的直接依赖服务,并搜索时间最新的调用属性记录,提取token值,形成Si调用异常的服务节点集合M;
5.3)采用图的深度遍历算法,以M集合中的服务节点为起点,查询具有同样token值的依赖服务;
5.4)反复迭代,重复步骤5.2)和5.3),直到找到没有服务依赖的服务,终止搜索;
5.5)综合返回的路径,构造给定服务Si的实时调用起源图,在进行故障诊断的时候采用如下方法:
A)在Si的调用图中,查找status为0的调用路径P,则该路径上的服务节点可能是故障点;(Status为1表示服务调用正常,status为0表示服务调用异常)
B)对路径P上的所有节点进行故障排查,如果某个节点服务调用其他服务正常,则该节点正常,并从P中删除;
C)P中的服务节点即可能为故障节点。
5.根据权利要求1所述的基于服务起源的云服务监控方法,其特征在于,还包括步骤6):监测所有服务的执行耗时,统计某段时间范围内耗时较多的服务;
具体步骤为:
6.1)通过聚合运算统计具有直接依赖关系的服务调用平均耗时,即Si调用Sj的平均耗时;
6.2)通过聚合运算统计具有直接依赖关系的服务调用次数,即Si调用Sj的次数;
6.3)基于上...

【专利技术属性】
技术研发人员:李涛
申请(专利权)人:武汉科技大学
类型:发明
国别省市:湖北;42

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

1