CN110647447A - 用于分布式系统的异常实例检测方法、装置、设备和介质 - Google Patents

用于分布式系统的异常实例检测方法、装置、设备和介质 Download PDF

Info

Publication number
CN110647447A
CN110647447A CN201910708389.8A CN201910708389A CN110647447A CN 110647447 A CN110647447 A CN 110647447A CN 201910708389 A CN201910708389 A CN 201910708389A CN 110647447 A CN110647447 A CN 110647447A
Authority
CN
China
Prior art keywords
instance
abnormal
call
current
call chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910708389.8A
Other languages
English (en)
Other versions
CN110647447B (zh
Inventor
甄真
侯进超
陈佳捷
齐志宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu com Times Technology Beijing Co Ltd
Original Assignee
Baidu com Times Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baidu com Times Technology Beijing Co Ltd filed Critical Baidu com Times Technology Beijing Co Ltd
Priority to CN201910708389.8A priority Critical patent/CN110647447B/zh
Publication of CN110647447A publication Critical patent/CN110647447A/zh
Application granted granted Critical
Publication of CN110647447B publication Critical patent/CN110647447B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种用于分布式系统的异常实例检测方法、装置、设备和介质,其中,所述分布式系统包括多个服务,各服务包括至少一个实例,该方法包括:采集各实例的时序指标数据,以及各请求对所述各实例进行调用的调用链数据;根据所述时序指标数据,确定系统异常时刻的候选异常实例集合;根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异常实例,其中,所述关键异常实例为其调用对请求集合的整体处理时间具有正贡献的异常实例。本发明实施例可以实现高效与准确地定位分布式系统中的关键异常实例。

Description

用于分布式系统的异常实例检测方法、装置、设备和介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种用于分布式系统的异常 实例检测方法、装置、设备和介质。
背景技术
大规模分布式系统包含数量庞大的节点,请求往往要经历多层级大规模的 “扇出”过程,即一个请求会被发散成多个请求并行地请求下游服务,请求经 历的服务调用链十分复杂。
在大规模分布式系统中,特别是在混部场景下,服务实例异常是常态,为 了避免因服务实例异常造成的系统容量退化,现有技术通常是利用如下两种方 法进行实例异常检测:
1)人工方法。人工方法需要技术人员获取一定时间段中各个实例的所有性 能指标,再对这些指标进行逐个排查。在大规模系统中,需要分析的数据量非 常多,人工分析起来效率极其低下,难以做到快速。排查过程中,大多需要依 赖技术人员自身的知识和经验,得出的结论受人的主观因素影响大,难以做到 异常实例确定的准确性;
2)基于时间段聚合指标的自动分析法。该方法本质上是将人工处理的过程 自动化,甚至在此基础上进行复杂的数学建模,给每个实例基于历史正常表现 建立指标模型,当新指标产生时,通过指标模型来判断实例是否异常。这种方 法虽然可以做到快速,但找到的异常实例可能并不会对请求的整体处理时间造 成恶化,那么也就不会对系统容量退化造成影响,因此,该方法也难以做到异 常实例确定的准确性。
发明内容
本发明实施例提供一种用于分布式系统的异常实例检测方法、装置、设备 和介质,以实现高效与准确地定位分布式系统中的关键异常实例。
第一方面,本发明实施例提供了一种用于分布式系统的异常实例检测方法, 所述分布式系统包括多个服务,各服务包括至少一个实例,该方法包括:
采集各实例的时序指标数据,以及各请求对所述各实例进行调用的调用链 数据;
根据所述时序指标数据,确定系统异常时刻的候选异常实例集合;
根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异 常实例,其中,所述关键异常实例为其调用对请求集合的整体处理时间具有正 贡献的异常实例。
第二方面,本发明实施例还提供了一种用于分布式系统的异常实例检测装 置,所述分布式系统包括多个服务,各服务包括至少一个实例,该装置包括:
数据采集模块,用于采集各实例的时序指标数据,以及各请求对所述各实 例进行调用的调用链数据;
候选异常实例集合确定模块,用于根据所述时序指标数据,确定系统异常 时刻的候选异常实例集合;
关键异常实例筛选模块,用于根据所述调用链数据,从所述候选异常实例 集合中筛选出至少一个关键异常实例,其中,所述关键异常实例为其调用对请 求集合的整体处理时间具有正贡献的异常实例。
第三方面,本发明实施例还提供了一种设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多 个处理器实现如本发明任一实施例所述的用于分布式系统的异常实例检测方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有 计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的用于分布 式系统的异常实例检测方法。
本发明实施例通过采集实例的时序指标数据以及各请求对所述各实例进行 调用的调用链数据,在确定系统异常时刻的候选异常实例集合的基础上,进一 步根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异常 实例,而由于这些关键异常实例对其所属请求的完整处理时间具有正贡献,因 此实现了对分布式系统中异常实例的高效与准确定位,解决了现有技术中关于 关键异常实例的确定效率较低以及确定准确率较低的问题。并且,基于确定出 的关键异常实例,可以提高分布式系统中异常实例修复的针对性以及修复效率。
附图说明
图1a是本发明实施例一提供的用于分布式系统的异常实例检测方法的流程 图;
图1b是本发明实施例一提供的一种系统请求的完整调用链构成的调用图 的示意图;
图2是本发明实施例二提供的用于分布式系统的异常实例检测方法的流程 图;
图3a是本发明实施例三提供的用于分布式系统的异常实例检测方法的流程 图;
图3b-图3d是本发明实施例三提供的基于调用树的目标请求的处理时间缩 短量的确定过程示意图;
图4是本发明实施例四提供的用于分布式系统的异常实例检测装置的结构 示意图;
图5是本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此 处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需 要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结 构。
实施例一
图1a是本发明实施例一提供的用于分布式系统的异常实例检测方法的流程 图,本实施例可适用于针对分布式系统(或者分布式集群)中的异常实例,按 照异常实例对系统请求整体处理时间的影响进行筛选的情况,该方法可以由用 于分布式系统的异常实例检测装置来执行,该装置可以采用软件和/或硬件的方 式实现,并可集成在任意的具有计算能力的设备上,包括但不限于服务器等。 本发明实施例中的分布式系统包括多个服务(即多个业务模块),各服务包括 至少一个实例,不同实例可以对不同数据分片进行处理。
如图1a所示,本实施例提供的用于分布式系统的异常实例检测方法可以包 括:
S110、采集各实例的时序指标数据,以及各请求对各实例进行调用的调用 链数据。
其中,时序指标数据用于衡量分布式系统中每个实例是否出现异常,本实 施例中所提及的实例异常是指实例对系统请求的响应时间异常,例如响应时间 超过预设的标准响应时间。各个实例的时序指标数据采集是以时间粒度进行采 集,可以通过周期性的实例日志分析的方式采集。示例性的,每10s采集一次, 实例执行过程中可以逐行生成日志,例如每个日志行就表示一个请求的处理情 况,则每隔10s采集就会读取10行的日志数据,通过取平均值的方式,得到各 个实例在当前时间的各个指标数据,最后可以得到各个实例在第10s的指标数 据,在第20s的指标数据等。
调用链数据采集是以系统请求为粒度进行采集,采集到的调用链数据可以 包括表示请求与实例以及实例与实例之间调用关系的调用链,每个请求的完整 调用链构成调用图。对于每个系统请求而言,调用链表示该请求从开始执行到 执行结束的完整执行过程中对各实例的完整调用情况,例如可以包括调用链的 开始时间戳和结束时间戳,而调用链中的开始时间戳(st)和结束时间戳(et) 表示每个实例的开始处理和结束处理的时刻,均可从实例日志中提取。实例与 实例之间调用关系指上下游实例之间的调用关系。
可选的,采集各实例的时序指标数据,以及各请求对各实例进行调用的调 用链数据,包括:
按照特定时间周期,从实例日志中采集各实例的时序指标数据,时序指标 包括如下中至少之一:CPU使用率、请求处理时间和流量;以及
从实例日志中识别并提取各请求对各实例进行调用的调用链数据,调用链 数据还包括请求标识(traceid)、本调用链标识(spanid)、父调用链标识 (parentspanid)、本调用链发起的实例地址(add)和本调用链的目的实例地址。 其中,调用链的实例地址可以对实例进行唯一性的标识。本调用链标(即当前 调用链)识和父调用链标识一起可恢复出系统请求的整个调用图。
具体的,可以在分布式集群的每个设备上同时部署时序指标数据采集服务、 调用链采集服务和多个业务模块,分布式采集各实例的时序指标数据以及各系 统请求对各实例进行调用的调用链数据,并分别发送至时序指标数据收集中心 和调用链收集中心进行存储。时序指标数据收集中心支持依据时间点查询指定 实例的指标数据。调用链收集中心支持依据系统请求标识查询该请求的完整调 用链信息。时序指标数据收集中心和调用链收集中心可以集成在用于执行本实 施例技术方案的设备上。
图1b作为示例,示出了一种系统请求的完整调用链构成的调用图,具体的, 该调用图以调用树的形式实现。如图1b所示,针对特定系统请求,处理该请求 涉及三类服务A、B和C,A服务有1个实例,B服务有2个实例B1、B2,C 服务有4个实例C1、C2、C3、C4,该请求直接调用实例A,各实例之间的调 用关系如图2所示,相当于处理该请求同时调用了多个实例。时间序列指标采 集服务和调用链采集服务均与服务A、B、C同机部署。以实例A调用实例B2的调用链为例,该调用链发起的实例地址为addr1=A,该调用链的目的实例地 址为addr2=B2。
以时序指标数据为CPU使用率为例,时序指标数据可以包含的信息如下: cpu{inst=B2,module=B,timestamp=1}10,其中,cpu代表指标名,大括号{} 中是该指标关联的一些标签tag,在实际应用中可以任意扩展,inst=B2说明此 实例是B2,module=B说明是B服务,timestamp=1说明该指标关联的时刻(即 指标数据采集的时刻)是1s,数值10表示这个指标的当前值。此例中,假设指 标数据的采集周期也是1s,因此,每隔1s就会有一个新值产出。
时序指标数据收集中心提供“指标{筛选tag集}”格式的查询接口,例如 cpu{timestamp=1},可以用prometheus实现。调用链收集中心提供“traceid=xxx” 格式的查询接口,返回对应请求的完整调用链。
S120、根据所述时序指标数据,确定系统异常时刻的候选异常实例集合。
系统异常时刻是指发生系统容量退化或请求的整体处理时间上涨的任一时 刻。系统容量退化可以理解为分布式系统在单位时间内处理的系统请求数量减 少,例如,如果在正常情况下分布式系统每秒种能处理100个请求,但是由于 实例异常,分布式系统每秒钟只能处理50个请求,即称之为系统容量退化。
候选异常实例集合T的确定可以通过各时序指标数据与相应的指标阈值之 间的比较实现,一个或者多个指标数据超过相应的指标阈值即为实例异常,例 如某系统异常时刻r,针对每个指标数据m,收集其历史时间内的值作为训练样 本,由此训练样本求出每个指标数据的均值a,如果|m-a|/a>5%,则认为 指标数据m对应的实例存在异常。
候选异常实例集合T的确定也可以针对每种服务预先建立一种指标分析模 型,适用于该服务下的多个实例,将指标数据输入指标分析模型,即可得到实 例是否异常的结果。示例性的,根据所述时序指标数据,确定系统异常时刻的 候选异常实例集合,包括:利用预先建立的指标分析模型,对时序指标数据进 行分析,得到系统异常时刻的候选异常实例集合;其中,指标分析模型用于根 据实例的时序指标数据判断实例是否异常。
S130、根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个 关键异常实例,其中,所述关键异常实例为其调用对请求集合的整体处理时间 具有正贡献的异常实例。
具体的,如果假设将某一个候选异常实例从其所在的调用图中删除,导致 该调用图对应的请求在整体处理时间上减少,那么就说明该候选异常实例对该 请求的整体处理时间具有正贡献,而且减少越多,说明该候选异常实例对该请 求的整体处理时间,乃至整个分布式系统的影响越大,那么在异常修复过程中, 则需要优先进行修复。而现有技术中只能依据时序指标数据确定候选异常实例 集合,也就是说,判断实例是否异常,仅仅依据各实例自身的时序指标,却没 有考虑该实例与请求级别的关联,导致确定出来的实例确实存在异常,但该异 常并不会对请求的整体处理时间造成恶化,即“假异常”。
而本发明实施例结合指标系统和全量调用链系统,在检测异常实例的基础 上,根据调用链数据进行时序推演,进一步筛选出其调用对请求集合的整体处 理时间具有正贡献的关键异常实例,保证了异常实例定位的准确性和针对性, 并且整个过程通过算法全自动化进行,保证了异常定位的快速性和实时性。
本发明实施例通过采集实例的时序指标数据以及各请求对所述各实例进行 调用的调用链数据,在确定系统异常时刻的候选异常实例集合的基础上,进一 步根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异常 实例,而由于这些关键异常实例对其所属请求的完整处理时间具有正贡献,因 此实现了对分布式系统中异常实例的高效与准确定位,解决了现有技术中关于 关键异常实例的确定效率较低以及确定准确率较低的问题。并且,基于确定出 的关键异常实例,可以提高分布式系统中异常实例修复的针对性以及修复效率。
实施例二
图2是本发明实施例二提供的用于分布式系统的异常实例检测方法的流程 图,本实施例是在上述实施例的基础上进一步进行优化与扩展。如图2所示, 该方法包括:
S210、采集各实例的时序指标数据,以及各请求对各实例进行调用的调用 链数据。
其中,调用链数据包括表示请求与实例以及实例与实例之间调用关系的调 用链,每个调用链中至少包括调用链的开始时间戳和结束时间戳,每个请求的 完整调用链构成调用图。
S220、根据所述时序指标数据,确定系统异常时刻的候选异常实例集合。
S230、将任一候选异常实例作为当前候选异常实例,根据调用链数据,确 定当前候选异常实例在系统异常时刻对应的任一目标请求的目标调用图中对应 的当前异常实例节点。
在调用图中,一个实例对应一个节点。那么根据调用链数据中的本调用链 发起的实例地址和本调用链的目的实例地址,即可确定任一实例对应的节点。
其中,系统异常时刻对应的任一目标请求,是指在根据系统异常时刻确定 的异常时间段中实现完整处理的请求;相应的,候选异常实例集合中的每个异 常实例来自目标请求,即候选异常实例均是处理目标请求过程中的被调用方。
在本实施例中,如果分布式系统中存在因异常实例导致的容量退化或请求 的整体处理时间上涨,取异常时刻r,以及包含该异常时刻r的一小段时间区间 [r-delta1,r+delta2]作为异常时刻r处的实例指标数据采集区间,该时间区间 [r-delta1,r+delta2]即为根据异常时刻r确定的异常时间段,delta1和delta2可以 取相同的值也可以取不同的值。示例性的,各实例的时序指标数据以采集周期 为10s进行周期性采集,指标数据关联的时间戳可以包括timestamp=10s、 timestamp=20s、timestamp=30s等一系列离散值,以时间戳timestamp=30s的指 标数据为例,它实际上对应的是[21s,30s]这个时间区间的指标数据的平均值。 如果异常时刻r=12s,其对用的异常时间段为[11s,20s],如果异常时刻r=23s, 其对用的异常时间段为[21s,30s],其他异常时刻对应的异常时间段可以依次类推。
系统异常时刻r对应的任一目标请求,是指在异常时间段[r-delta1,r+delta2]中接收并处理的系统请求,而且是该请求的完整调用关系都处于这个时间段内, 如果该请求的调用关系中存在实例不在这个区间内运行,即该请求的调用关系 中只有部分实例在该异常时间段内运行,则该请求不作为目标请求。
S240、根据任一目标请求的目标调用图以及当前异常实例节点在目标调用 图中的调用关系,计算当前候选异常实例对全部目标请求的影响权重,其中, 影响权重用于衡量异常实例的调用对请求在整体处理时间上的贡献量。
分布式系统可以逐个接收并处理系统请求,也可以批量接收并处理系统请 求,本实施例中所提及的任一目标请求即调用当前异常实例的任意一个系统请 求。贡献量是指假设去除异常实例的情况下,调用该异常实例的目标请求的整 体处理时间(即请求从执行开始到执行结束所用的全部时间)的减少量,示例 性的,该减少量可以依据调用链逻辑图,在假设去掉当前候选异常实例对应调 用链的情况下,利用逻辑图中各调用链的开始时间戳和结束时间戳,以及完整 调用图中的调用关系,通过时序推演进行确定,也即,确定当前候选异常实例 对请求的影响权重。而该减少量的值越大,对应的影响权重的值越大。针对候 选异常实例集合中的每个候选异常实例,均按照上述操作计算其对全部目标请 求的影响权重。
S250、根据每个候选异常实例对与之对应的全部目标请求的影响权重,从 候选异常实例集合中筛选出至少一个关键异常实例,其中,关键异常实例为其 调用对请求集合的整体处理时间具有正贡献的异常实例。
具体的,可以利用预先设定的异常实例筛选条件,将影响权重符合筛选条 件的候选异常实例确定为关键异常实例,例如异常实例筛选条件设置为影响权 重的筛选阈值,影响权重大于该阈值的候选异常实例即属于对调用其的全部目 标请求的整体处理时间具有正贡献的异常实例;影响权重不符合筛选条件的候 选异常实例可以认为属于“假异常”,其对全部目标请求的整体处理时间几乎 没有影响。
可选的,在从候选异常实例集合中筛选出至少一个关键异常实例之后,该 方法还包括:
将每个关键异常实例的影响权重按照数值从大到小的顺序排序,得到影响 权重序列;
根据影响权重序列,对应得到关键异常实例序列。
例如,如果每个关键异常实例的影响权重用w表示,影响权重序列可以表 示为WL=(w1,w2,…,wn),排序在前的关键异常实例的修复优先级越高。 当分布式系统出现多个异常实例而导致系统容量退化时,本实施例方案可以快 速、准确找出关键异常实例,并给出修复优先级,提升了分布式系统的止损效 率。
本实施例的技术方案在确定出系统异常时刻的候选异常实例集合基础上, 将任一候选异常实例作为当前候选异常实例,并根据任一目标请求的目标调用 图以及当前异常实例节点在目标调用图中的调用关系,结合各调用链的开始时 间戳和结束时间戳,计算当前候选异常实例对分布式系统中全部目标请求的影 响权重,最后根据每个候选异常实例对与之对应的全部目标请求的影响权重, 从候选异常实例集合中筛选出至少一个关键异常实例,实现了对分布式系统中 异常实例的高效与准确定位,解决了现有技术中关于关键异常实例的确定效率 较低以及确定准确率较低的问题;并且,基于确定出的关键异常实例,可以提 高分布式系统中异常实例修复的针对性以及修复效率。
实施例三
图3a是本发明实施例三提供的用于分布式系统的异常实例检测方法的流程 图,本实施例是在上述实施例的基础上进一步进行优化与扩展。如图3a所示, 该方法包括:
S310、采集各实例的时序指标数据,以及各请求对各实例进行调用的调用 链数据。
其中,调用链数据包括表示请求与实例以及实例与实例之间调用关系的调 用链,每个调用链中至少包括调用链的开始时间戳和结束时间戳,每个请求的 完整调用链构成调用图。
S320、根据所述时序指标数据,确定系统异常时刻的候选异常实例集合。
S330、将任一候选异常实例作为当前候选异常实例,根据调用链数据中的 本调用链发起的实例地址和本调用链的目的实例地址,确定当前候选异常实例 在系统异常时刻对应的任一目标请求的目标调用图中对应的当前异常实例节点。
S340、将任一目标请求作为当前目标请求,并确定当前异常实例节点在当 前目标调用图中作为被调用方的至少一个当前调用链。
以图3b所示的目标请求q的调用树(即q的目标调用图)为例,目标请求 q调用实例A,实例A调用实例B1和B2,实例B1调用实例C1和C2,实例 B2调用实例C3和C4,图3b中的时间轴上对应显示了各调用链的开始时间戳 和结束时间戳。以当前候选异常实例为实例C1为例,实例C1在目标请求q的 调用树中,作为被调用方的当前调用链为B1→C1。
S350、针对每一个当前调用链,如果当前调用链不是当前目标调用图中根 节点对应的调用链,则调整当前调用链的结束时间戳为其开始时间戳。
继续如图3b所示,当前调用链为B1→C1,实例B1对应调用链A→B1, 因此,当前调用链为B1→C1不属于调用树中根节点对应的调用链,根节点为A, 根节点对应的调用链为A→B1以及A→B2,将当前调用链为B1→C1的结束时 间戳调整为其开始时间戳,相当于将调用链B1→C1从调用树中删除。
S360、计算各当前调用链的上层各父节点对应调用链的处理时间缩短量, 直到当前目标调用图中只剩一个根节点为止,并将该根节点对应调用链的处理 时间缩短量作为当前目标请求的处理时间缩短量。
如图3c所示,对于当前调用链为B1→C1而言,实例C1节点直接对应的 上层父节点为实例B1节点,实例B1节点对应的调用链即A→B1,计算调用链A→B1在假设删除当前调用链B1→C1的情况下,处理时间的缩短量,例如图 3b中沿时间轴显示的较小虚线框表示处理时间缩短量1s,即A→B1的处理时 间由7s变为6s;然后再次向上循环迭代,计算实例B1节点直接对应的上层父 节点A对应的调用链处理时间的缩短量,例如图3d中显示的上层父节点A对 应的调用链处理时间缩短1s。实例B1节点的上层父节点A即为当前调用树中 的根节点,因此,根节点A对应的调用链处理时间缩短量1s即目标请求q的处 理时间缩短量。
需要说明的是,图3b-图3d作为示例,示出的目标请求q的调用图中每个 实例节点只存在一个上层父节点,但不应当理解为对本实施例的具体限定,当 每个实例节点存在至少两个上层父节点时,在计算调用链处理时间的缩短量过 程中,需要计算每个上层父节点对应的调用链的处理时间缩短量,并综合考虑 各个上层父节点对应的调用链处理时间缩短量确定根节点对应的调用链的处理 时间缩短量,例如按照预设的时间缩短量统计公式(如求和公式或者按比例求 和公式等,具体可以根据实际情况进行设置),将各个上层父节点对应的调用 链处理时间缩短量参与计算的结果作为根节点对应的调用链的处理时间缩短量。
进一步,该方法还包括:
如果当前调用链即为当前目标调用图中根节点对应的调用链,则该根节点 对应调用链的处理时间缩短量为该根节点对应调用链的结束时间戳减去开始时 间戳的值。
S370、根据每个目标请求的处理时间缩短量,计算当前候选异常实例对全 部目标请求的影响权重。
对于批量的目标请求,按照上述操作确定出每个目标请求的处理时间缩短 量后,然后对各目标请求的处理时间缩短量进行综合考虑,从而确定当前候选 异常实例对全部目标请求的影响权重。示例性的,根据每个目标请求的处理时 间缩短量,计算当前候选异常实例对全部目标请求的影响权重,包括:计算各 目标请求的处理时间缩短量的平均值,并将平均值作为当前候选异常实例对全 部目标请求的影响权重。
S380、根据每个候选异常实例对与之对应的全部目标请求的影响权重,将 其中影响权重的数值大于零的候选异常实例,作为关键异常实例。
在实际情况中,影响权重的值通常不会小于0,可能是等于0或者大于0。 当影响权重的值大于0时,说明该候选异常实例对全部目标请求的整体处理时 间影响较大,该候选异常实例属于关键异常实例;当影响权重的值等于0时, 说明该候选异常实例对全部目标请求的整体处理时间没有影响,不是真正的异 常实例,不属于关键异常实例。例如,可以将各候选异常实例的影响权重w用 权重序列WL表示,WL=(w1,w2,…,wn),从头依次遍历WL,对于其中 的每个元素w,如果w大于0,将其追加到关键异常实例的影响权重序列WF, 并将其对应的实例追加到关键异常实例序列TF,遍历结束,返回关键异常实例 序列TF。本实施例技术方案与现有技术相比,能够准确的筛选出这部分“假异 常”,提高分布式系统中实例异常定位的准确性和针对性。
在上述操作的基础上,进一步的,计算各当前调用链的上层各父节点对应 调用链的处理时间缩短量,直到当前目标调用图中只剩一个根节点为止,并将 该根节点对应调用链的处理时间缩短量作为当前目标请求的处理时间缩短量, 包括:
d1针对每一个当前调用链,根据当前目标调用图,确定当前调用链的上级 父调用链集合P,以及当前调用链的兄弟调用链集合B;
d2确定兄弟调用链集合B中结束时间戳与当前调用链调整前的结束时间 戳中的最大值,记为第一最大值,确定兄弟调用链集合B中结束时间戳与当前 调用链调整后的结束时间戳中的最大值,记为第二最大值,并计算第一最大值 与第二最大值的差值;
d3将当前调用链的每一个上级父调用链的结束时间戳调整为其原始结束 时间戳减去差值;
对上级父调用链集合P中的每一个调用链重复执行将重复执行上述差值的 计算以及其上级父调用链结束时间戳的调整操作(即重复执行上述操作d1-d2), 直到当前目标调用图中只剩一个根节点为止;
将根节点对应调用链的调整后的结束时间戳减去调整前的结束时间戳,得 到的值即为当前目标请求的处理时间缩短量。
下面仍以图3b为例,对上述操作进行示例性说明:将调用链B1→C1作为 当前调用链,其直接对应的上级父调用链集合P={A→B1},兄弟调用链集合 B={B1→C2},上述第一最大值与第二最大值的差值可以表示为:
w=max{etold(B1→C1),et(B1→C2)}-max{etnew(B1→C1),et(B1→C2)}
=6s-5s=1s;
其中,etold(B1→C1)表示未执行调整当前调用链的结束时间戳为其开始时 间戳的操作之前,当前调用链的结束时间戳,具体为6s;etnew(B1→C1)表示 执行调整当前调用链的结束时间戳为其开始时间戳的操作之后,当前调用链的 结束时间戳,具体为3s;调用链B1→C2的结束时间戳为5s。
如图3c所示,当前调用链B1→C1的上级父调用链A→B1的原始结束时间 戳为7s,依据差值w进行结束时间戳调整后,其结束时间戳(即4b中A→B1对 应的实线框末端)变为:
etnew(A→B1)=etold(A→B1)-w=7s-1s=6s。
对于调用链A→B1,将其作为新的当前调用链,其直接对应的上级父调用 链集合P={parent(A)→A},兄弟调用链集合B={A→B2},A→B2的结束时 间戳为6s,此时,关于上述第一最大值与第二最大值的差值可以表示为:
w=max{etold(A→B1),et(A→B2)}-max{etnew(A→B1),et(A→B2)}
=7s-6s=1s。
如图3d所示,调用链A→B1的上级父调用链parent(A)→A的原始结束时 间戳为8s,依据当前差值进行结束时间戳调整后,其结束时间戳(即3d中A对 应的实线框末端)变为:
etnew(parent(A)→A)=etold(parent(A)→A)-w=8s-1s=7s。
由于当前实例A节点即为根节点,因此,迭代操作结束,调用链parent(A)→ A的处理时间缩短量1s即为当前目标请求的处理时间缩短量。
针对每个目标请求,重复执行上述操作,得到其处理时间缩短量,然后综 合考虑各目标请求的处理时间缩短量,计算当前候选异常实例对全部目标请求 的影响权重。
综合而言,对于单个候选异常实例,其对目标请求q的影响权重的计算过 程如下:
(1)在目标请求q的目标调用图中,确定候选异常实例t直接对应的调用 链集合X。
(2)如果调用链集合X只包含一个根节点parent(x)→x,则算法返回的 影响权重值是w=et{parent(x)→x}-st{parent(x)→x}。否则,转至操作(3)。
(3)对于调用链集合X中的每条调用链parent(x)→x,调整其结束时间 戳et值,使etnew{parent(x)→x}=st{parent(x)→x},st()表示调用链开始时间 戳。
(4)对于调用链集合X中的每条调用链parent(x)→x,存在其上级父调 用链grandparent(x)→parent(x),这些父调用链组成上级父调用链集合P。每 条调用链parent(x)→x的兄弟调用链集合记作B。
将第一最大值与第二最大值的差值表示为:
w=max{et(B),etold(parent(x)→x)}-max{et(B),etnew(parent(X)→X)}
调整上级父调用链的结束时间戳:etnew{grandparent(X)→parent(X)}= etold{grandparent(X)→parent(X)}-w。
并且,将上级父调用链集合P替代调用链集合X,即令X=P,重复执行上 述操作。如果调用链集合X只剩一个根节点,则算法返回的候选异常实例t对 目标请求q的影响权重值为:etold{parent(x)→x}-etnew{parent(x)→x}。否 则继续执行操作(4)。
本实施例的技术方案结合分布式系统中各实例的时序指标数据和各请求的 全量调用链数据,在初步确定的候选异常实例集合的基础上,通过时序推演, 进一步筛选出关键异常实例,保证了分布式系统中关键异常实例确定的准确性 与效率;当分布式系统出现多个异常实例导致系统容量退化时,利用本实施例 方案能够快速给出异常实例修复优先级,提升止损效率。
实施例四
图4是本发明实施例四提供的用于分布式系统的异常实例检测装置的结构 示意图,本实施例可适用于针对分布式系统(或者分布式集群)中的异常实例, 按照异常实例对系统请求整体处理时间的影响进行筛选的情况。该装置可以采 用软件和/或硬件的方式实现,并可集成在任意的具有计算能力的设备上,包括 但不限于服务器等。本发明实施例中的分布式系统包括多个服务,各服务包括 至少一个实例。
如图4所示,本实施例提供的用于分布式系统的异常实例检测装置可以包 括数据采集模块401、候选异常实例集合确定模块402、关键异常实例筛选模块 403:
数据采集模块401,用于采集各实例的时序指标数据,以及各请求对所述 各实例进行调用的调用链数据;
候选异常实例集合确定模块402,用于根据所述时序指标数据,确定系统 异常时刻的候选异常实例集合;
关键异常实例筛选模块403,用于根据所述调用链数据,从所述候选异常 实例集合中筛选出至少一个关键异常实例,其中,所述关键异常实例为其调用 对请求集合的整体处理时间具有正贡献的异常实例。
本发明实施例通过采集实例的时序指标数据以及各请求对所述各实例进行 调用的调用链数据,在确定系统异常时刻的候选异常实例集合的基础上,进一 步根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异常 实例,而由于这些关键异常实例对其所属请求的完整处理时间具有正贡献,因 此实现了对分布式系统中异常实例的高效与准确定位,解决了现有技术中关于 关键异常实例的确定效率较低以及确定准确率较低的问题。并且,基于确定出 的关键异常实例,可以提高分布式系统中异常实例修复的针对性以及修复效率。
可选的,所述调用链数据包括表示请求与实例以及实例与实例之间调用关 系的调用链,每个请求的完整调用链构成调用图。
可选的,关键异常实例筛选模块403包括:
异常实例节点确定单元,用于将任一候选异常实例作为当前候选异常实例, 根据所述调用链数据,确定所述当前候选异常实例在所述系统异常时刻对应的 任一目标请求的目标调用图中对应的当前异常实例节点;
影响权重计算单元,用于根据所述任一目标请求的目标调用图以及当前异 常实例节点在目标调用图中的调用关系,计算所述当前候选异常实例对全部目 标请求的影响权重,其中,所述影响权重用于衡量异常实例的调用对请求在整 体处理时间上的贡献量;
关键异常实例筛选单元,用于根据每个候选异常实例对与之对应的全部目 标请求的影响权重,从所述候选异常实例集合中筛选出至少一个关键异常实例。
可选的,所述影响权重计算单元,包括:
调用链确定子单元,用于将任一目标请求作为当前目标请求,并确定所述 当前异常实例节点在当前目标调用图中作为被调用方的至少一个当前调用链;
时间戳调整子单元,用于针对每一个当前调用链,如果所述当前调用链不 是所述当前目标调用图中根节点对应的调用链,则调整所述当前调用链的结束 时间戳为其开始时间戳,其中,每个调用链中至少包括调用链的开始时间戳和 结束时间戳;
缩短量计算子单元,用于计算各当前调用链的上层各父节点对应调用链的 处理时间缩短量,直到所述当前目标调用图中只剩一个根节点为止,并将该根 节点对应调用链的处理时间缩短量作为所述当前目标请求的处理时间缩短量;
影响权重计算子单元,用于根据每个目标请求的处理时间缩短量,计算所 述当前候选异常实例对全部目标请求的影响权重。
可选的,所述缩短量计算子单元具体用于:
针对每一个当前调用链,根据所述当前目标调用图,确定所述当前调用链 的上级父调用链集合,以及所述当前调用链的兄弟调用链集合;
确定所述兄弟调用链集合中结束时间戳与所述当前调用链调整前的结束时 间戳中的最大值,记为第一最大值,确定所述兄弟调用链集合中结束时间戳与 所述当前调用链调整后的结束时间戳中的最大值,记为第二最大值,并计算第 一最大值与第二最大值的差值;
将所述当前调用链的每一个上级父调用链的结束时间戳调整为其原始结束 时间戳减去所述差值;
对所述上级父调用链集合中的每一个调用链,重复执行所述差值的计算以 及其上级父调用链结束时间戳的调整操作,直到所述当前目标调用图中只剩一 个根节点为止;
将所述根节点对应调用链的调整后的结束时间戳减去调整前的结束时间戳, 得到的值即为所述当前目标请求的处理时间缩短量。
可选的,所述时间戳调整子单元还用于:
如果所述当前调用链即为所述当前目标调用图中根节点对应的调用链,则 该根节点对应调用链的处理时间缩短量为该根节点对应调用链的结束时间戳减 去开始时间戳的值。
可选的,所述影响权重计算子单元具体用于:
计算各目标请求的处理时间缩短量的平均值,并将所述平均值作为所述当 前候选异常实例对全部目标请求的影响权重。
可选的,所述数据采集模块401具体用于:
按照特定时间周期,从实例日志中采集各实例的时序指标数据,所述时序 指标包括如下中至少之一:CPU使用率、请求处理时间和流量;以及
从所述实例日志中识别并提取各请求对所述各实例进行调用的调用链数据, 所述调用链数据至少包括请求标识、本调用链标识、父调用链标识、本调用链 发起的实例地址和本调用链的目的实例地址。
可选的,所述异常实例节点确定单元具体用于:
将任一候选异常实例作为所述当前候选异常实例,根据所述调用链数据中 的本调用链发起的实例地址和本调用链的目的实例地址,确定所述当前候选异 常实例在所述系统异常时刻对应的任一目标请求的目标调用图中对应的当前异 常实例节点;
其中,所述系统异常时刻对应的任一目标请求,是指在根据所述系统异常 时刻确定的异常时间段中实现完整处理的请求;
相应的,所述候选异常实例集合中的每个异常实例来自所述目标请求。
可选的,所述关键异常实例筛选单元具体用于:
根据每个候选异常实例对与之对应的全部目标请求的影响权重,将其中影 响权重的数值大于零的候选异常实例,作为所述关键异常实例。
可选的,所述装置还包括关键异常实例序列确定模块,具体用于:
在关键异常实例筛选模块403从所述候选异常实例集合中筛选出至少一个 关键异常实例之后,将每个关键异常实例的影响权重按照数值从大到小的顺序 排序,得到影响权重序列;根据所述影响权重序列,对应得到关键异常实例序 列。
可选的,所述候选异常实例集合确定模块402具体用于:
利用预先建立的指标分析模型,对所述时序指标数据进行分析,得到系统 异常时刻的候选异常实例集合;
其中,所述指标分析模型用于根据实例的时序指标数据判断实例是否异常; 所述系统异常时刻是指发生系统容量退化或请求的整体处理时间上涨的任一时 刻。
本发明实施例所提供的用于分布式系统的异常实例检测装置可执行本发明 任意实施例所提供的用于分布式系统的异常实例检测方法,具备执行方法相应 的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本发明任意方 法实施例中的描述。
实施例五
图5是本发明实施例五提供的一种设备的结构示意图。图5示出了适于用 来实现本发明实施方式的示例性设备512的框图。图5显示的设备512仅仅是 一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备512可 以是任意的具有计算能力的设备,包括但不限于服务器。
如图5所示,设备512以通用设备的形式表现。设备512的组件可以包括 但不限于:一个或者多个处理器516,存储装置528,连接不同系统组件(包括 存储装置528和处理器516)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储装置总线或者存储 装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任 意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系 结构(Industry SubversiveAlliance,ISA)总线,微通道体系结构(Micro Channel Architecture,MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够 被设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移 动的介质。
存储装置528可以包括易失性存储器形式的计算机系统可读介质,例如随 机存取存储器(Random Access Memory,RAM)530和/或高速缓存存储器532。 设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统 存储介质。仅作为举例,存储系统535可以用于读写不可移动的、非易失性磁 介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用 于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非 易失性光盘,例如只读光盘(Compact Disc Read-Only Memory,CD-ROM),数 字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介 质接口与总线518相连。存储装置528可以包括至少一个程序产品,该程序产 品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各 实施例的功能。
具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在例 如存储装置528中,这样的程序模块542包括但不限于操作系统、一个或者多 个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中 可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的 功能和/或方法。
设备512也可以与一个或多个外部设备514(例如键盘、指向终端、显示 器524等)通信,还可与一个或者多个使得用户能与该设备512交互的终端通 信,和/或与使得该设备512能与一个或多个其它计算终端进行通信的任何终端 (例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 522进行。并且,设备512还可以通过网络适配器520与一个或者多个网络(例 如局域网(Local Area Network,LAN),广域网(Wide AreaNetwork,WAN) 和/或公共网络,例如因特网)通信。如图5所示,网络适配器520通过总线518与设备512的其它模块通信。应当明白,尽管图中未示出,可以结合设备512 使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理 器、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID) 系统、磁带驱动器以及数据备份存储系统等。
处理器516通过运行存储在存储装置528中的程序,从而执行各种功能应 用以及数据处理,例如实现本发明任意实施例所提供的用于分布式系统的异常 实例检测方法,该方法可以包括:
采集各实例的时序指标数据,以及各请求对所述各实例进行调用的调用链 数据;
根据所述时序指标数据,确定系统异常时刻的候选异常实例集合;
根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异 常实例,其中,所述关键异常实例为其调用对请求集合的整体处理时间具有正 贡献的异常实例。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程 序,该程序被处理器执行时实现如本发明任意实施例所提供的用于分布式系统 的异常实例检测方法,该方法可以包括:
采集各实例的时序指标数据,以及各请求对所述各实例进行调用的调用链 数据;
根据所述时序指标数据,确定系统异常时刻的候选异常实例集合;
根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异 常实例,其中,所述关键异常实例为其调用对请求集合的整体处理时间具有正 贡献的异常实例。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质 的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储 介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、 红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存 储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、 便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可 擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器 (CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件 中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以 被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据 信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种 形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读 的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算 机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用 或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—— 但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计 算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、 Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程 序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机 上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机 上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中, 远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)— 连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供 商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员 会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进 行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽 然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以 上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例, 而本发明的范围由所附的权利要求范围决定。

Claims (15)

1.一种用于分布式系统的异常实例检测方法,其特征在于,所述分布式系统包括多个服务,各服务包括至少一个实例,所述方法包括:
采集各实例的时序指标数据,以及各请求对所述各实例进行调用的调用链数据;
根据所述时序指标数据,确定系统异常时刻的候选异常实例集合;
根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异常实例,其中,所述关键异常实例为其调用对请求集合的整体处理时间具有正贡献的异常实例。
2.根据权利要求1所述的方法,其特征在于,所述调用链数据包括表示请求与实例以及实例与实例之间调用关系的调用链,每个请求的完整调用链构成调用图。
3.根据权利要求2所述的方法,其特征在于,所述根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异常实例,包括:
将任一候选异常实例作为当前候选异常实例,根据所述调用链数据,确定所述当前候选异常实例在所述系统异常时刻对应的任一目标请求的目标调用图中对应的当前异常实例节点;
根据所述任一目标请求的目标调用图以及当前异常实例节点在目标调用图中的调用关系,计算所述当前候选异常实例对全部目标请求的影响权重,其中,所述影响权重用于衡量异常实例的调用对请求在整体处理时间上的贡献量;
根据每个候选异常实例对与之对应的全部目标请求的影响权重,从所述候选异常实例集合中筛选出至少一个关键异常实例。
4.根据权利要求3所述的方法,其特征在于,根据所述任一目标请求的目标调用图以及当前异常实例节点在目标调用图中的调用关系,计算所述当前候选异常实例对全部目标请求的影响权重,包括:
将任一目标请求作为当前目标请求,并确定所述当前异常实例节点在当前目标调用图中作为被调用方的至少一个当前调用链;
针对每一个当前调用链,如果所述当前调用链不是所述当前目标调用图中根节点对应的调用链,则调整所述当前调用链的结束时间戳为其开始时间戳,其中,每个调用链中至少包括调用链的开始时间戳和结束时间戳;
计算各当前调用链的上层各父节点对应调用链的处理时间缩短量,直到所述当前目标调用图中只剩一个根节点为止,并将该根节点对应调用链的处理时间缩短量作为所述当前目标请求的处理时间缩短量;
根据每个目标请求的处理时间缩短量,计算所述当前候选异常实例对全部目标请求的影响权重。
5.根据权利要求4所述的方法,其特征在于,所述计算各当前调用链的上层各父节点对应调用链的处理时间缩短量,直到所述当前目标调用图中只剩一个根节点为止,并将该根节点对应调用链的处理时间缩短量作为所述当前目标请求的处理时间缩短量,包括:
针对每一个当前调用链,根据所述当前目标调用图,确定所述当前调用链的上级父调用链集合,以及所述当前调用链的兄弟调用链集合;
确定所述兄弟调用链集合中结束时间戳与所述当前调用链调整前的结束时间戳中的最大值,记为第一最大值,确定所述兄弟调用链集合中结束时间戳与所述当前调用链调整后的结束时间戳中的最大值,记为第二最大值,并计算第一最大值与第二最大值的差值;
将所述当前调用链的每一个上级父调用链的结束时间戳调整为其原始结束时间戳减去所述差值;
对所述上级父调用链集合中的每一个调用链,重复执行所述差值的计算以及其上级父调用链结束时间戳的调整操作,直到所述当前目标调用图中只剩一个根节点为止;
将所述根节点对应调用链的调整后的结束时间戳减去调整前的结束时间戳,得到的值即为所述当前目标请求的处理时间缩短量。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果所述当前调用链即为所述当前目标调用图中根节点对应的调用链,则该根节点对应调用链的处理时间缩短量为该根节点对应调用链的结束时间戳减去开始时间戳的值。
7.根据权利要求4所述的方法,其特征在于,所述根据每个目标请求的处理时间缩短量,计算所述当前候选异常实例对全部目标请求的影响权重,包括:
计算各目标请求的处理时间缩短量的平均值,并将所述平均值作为所述当前候选异常实例对全部目标请求的影响权重。
8.根据权利要求3所述的方法,其特征在于,所述采集各实例的时序指标数据,以及各请求对所述各实例进行调用的调用链数据,包括:
按照特定时间周期,从实例日志中采集各实例的时序指标数据,所述时序指标包括如下中至少之一:CPU使用率、请求处理时间和流量;以及
从所述实例日志中识别并提取各请求对所述各实例进行调用的调用链数据,所述调用链数据至少包括请求标识、本调用链标识、父调用链标识、本调用链发起的实例地址和本调用链的目的实例地址。
9.根据权利要求8所述的方法,其特征在于,所述将任一候选异常实例作为当前候选异常实例,根据所述调用链数据,确定所述当前候选异常实例在所述系统异常时刻对应的任一目标请求的目标调用图中对应的当前异常实例节点,包括:
将任一候选异常实例作为所述当前候选异常实例,根据所述调用链数据中的本调用链发起的实例地址和本调用链的目的实例地址,确定所述当前候选异常实例在所述系统异常时刻对应的任一目标请求的目标调用图中对应的当前异常实例节点;
其中,所述系统异常时刻对应的任一目标请求,是指在根据所述系统异常时刻确定的异常时间段中实现完整处理的请求;
相应的,所述候选异常实例集合中的每个异常实例来自所述目标请求。
10.根据权利要求3所述的方法,其特征在于,所述根据每个候选异常实例对与之对应的全部目标请求的影响权重,从所述候选异常实例集合中筛选出至少一个关键异常实例,包括:
根据每个候选异常实例对与之对应的全部目标请求的影响权重,将其中影响权重的数值大于零的候选异常实例,作为所述关键异常实例。
11.根据权利要求3所述的方法,其特征在于,在从所述候选异常实例集合中筛选出至少一个关键异常实例之后,所述方法还包括:
将每个关键异常实例的影响权重按照数值从大到小的顺序排序,得到影响权重序列;
根据所述影响权重序列,对应得到关键异常实例序列。
12.根据权利要求1所述的方法,其特征在于,所述根据所述时序指标数据,确定系统异常时刻的候选异常实例集合,包括:
利用预先建立的指标分析模型,对所述时序指标数据进行分析,得到系统异常时刻的候选异常实例集合;
其中,所述指标分析模型用于根据实例的时序指标数据判断实例是否异常;所述系统异常时刻是指发生系统容量退化或请求的整体处理时间上涨的任一时刻。
13.一种用于分布式系统的异常实例检测装置,其特征在于,所述分布式系统包括多个服务,各服务包括至少一个实例,所述装置包括:
数据采集模块,用于采集各实例的时序指标数据,以及各请求对所述各实例进行调用的调用链数据;
候选异常实例集合确定模块,用于根据所述时序指标数据,确定系统异常时刻的候选异常实例集合;
关键异常实例筛选模块,用于根据所述调用链数据,从所述候选异常实例集合中筛选出至少一个关键异常实例,其中,所述关键异常实例为其调用对请求集合的整体处理时间具有正贡献的异常实例。
14.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的用于分布式系统的异常实例检测方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的用于分布式系统的异常实例检测方法。
CN201910708389.8A 2019-08-01 2019-08-01 用于分布式系统的异常实例检测方法、装置、设备和介质 Active CN110647447B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910708389.8A CN110647447B (zh) 2019-08-01 2019-08-01 用于分布式系统的异常实例检测方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910708389.8A CN110647447B (zh) 2019-08-01 2019-08-01 用于分布式系统的异常实例检测方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN110647447A true CN110647447A (zh) 2020-01-03
CN110647447B CN110647447B (zh) 2023-04-14

Family

ID=68989975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910708389.8A Active CN110647447B (zh) 2019-08-01 2019-08-01 用于分布式系统的异常实例检测方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN110647447B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240876A (zh) * 2020-01-06 2020-06-05 远光软件股份有限公司 微服务的故障定位方法、装置、存储介质及终端
CN111314121A (zh) * 2020-02-03 2020-06-19 支付宝(杭州)信息技术有限公司 链路异常检测方法以及装置
CN111641519A (zh) * 2020-04-30 2020-09-08 平安科技(深圳)有限公司 异常根因定位方法、装置及存储介质
CN113448828A (zh) * 2020-03-26 2021-09-28 阿里巴巴集团控股有限公司 对象数据检测方法、装置、电子设备及计算机存储介质
CN114500326A (zh) * 2022-02-25 2022-05-13 北京百度网讯科技有限公司 异常检测方法、装置、电子设备以及存储介质
CN115733724A (zh) * 2021-08-27 2023-03-03 中移动信息技术有限公司 业务故障根因定位方法、装置、电子设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502874A (zh) * 2016-10-26 2017-03-15 南京途牛科技有限公司 一种调用链跟踪方法
CN107678933A (zh) * 2017-09-28 2018-02-09 中国平安人寿保险股份有限公司 日志生成管理方法、装置、设备及计算机可读存储介质
CN107729210A (zh) * 2017-09-29 2018-02-23 百度在线网络技术(北京)有限公司 分布式服务集群的异常诊断方法和装置
CN108205486A (zh) * 2017-12-26 2018-06-26 上海中畅数据技术有限公司 一种基于机器学习的智能分布式调用链跟踪方法
US20180276109A1 (en) * 2017-03-24 2018-09-27 International Business Machines Corporation Distributed system test device
CN108763059A (zh) * 2018-04-24 2018-11-06 阿里巴巴集团控股有限公司 一种异常检测方法、装置及设备
CN108833184A (zh) * 2018-06-29 2018-11-16 腾讯科技(深圳)有限公司 服务故障定位方法、装置、计算机设备及存储介质
CN108933695A (zh) * 2018-06-25 2018-12-04 百度在线网络技术(北京)有限公司 用于处理信息的方法和装置
US20190065346A1 (en) * 2017-08-28 2019-02-28 International Business Machines Corporation Performance data collection for a distributed computing system
CN109901991A (zh) * 2019-01-04 2019-06-18 阿里巴巴集团控股有限公司 一种分析异常调用的方法、装置和电子设备
CN109947627A (zh) * 2019-03-29 2019-06-28 神州数码信息系统有限公司 一种基于资源调用链的多层云应用监视诊断方法
CN110069358A (zh) * 2019-04-18 2019-07-30 彩讯科技股份有限公司 调用链跟踪分析方法、装置、电子设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502874A (zh) * 2016-10-26 2017-03-15 南京途牛科技有限公司 一种调用链跟踪方法
US20180276109A1 (en) * 2017-03-24 2018-09-27 International Business Machines Corporation Distributed system test device
US20190065346A1 (en) * 2017-08-28 2019-02-28 International Business Machines Corporation Performance data collection for a distributed computing system
CN107678933A (zh) * 2017-09-28 2018-02-09 中国平安人寿保险股份有限公司 日志生成管理方法、装置、设备及计算机可读存储介质
CN107729210A (zh) * 2017-09-29 2018-02-23 百度在线网络技术(北京)有限公司 分布式服务集群的异常诊断方法和装置
CN108205486A (zh) * 2017-12-26 2018-06-26 上海中畅数据技术有限公司 一种基于机器学习的智能分布式调用链跟踪方法
CN108763059A (zh) * 2018-04-24 2018-11-06 阿里巴巴集团控股有限公司 一种异常检测方法、装置及设备
CN108933695A (zh) * 2018-06-25 2018-12-04 百度在线网络技术(北京)有限公司 用于处理信息的方法和装置
CN108833184A (zh) * 2018-06-29 2018-11-16 腾讯科技(深圳)有限公司 服务故障定位方法、装置、计算机设备及存储介质
CN109901991A (zh) * 2019-01-04 2019-06-18 阿里巴巴集团控股有限公司 一种分析异常调用的方法、装置和电子设备
CN109947627A (zh) * 2019-03-29 2019-06-28 神州数码信息系统有限公司 一种基于资源调用链的多层云应用监视诊断方法
CN110069358A (zh) * 2019-04-18 2019-07-30 彩讯科技股份有限公司 调用链跟踪分析方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王继刚等: "嵌入式操作系统异常处理框架设计与实现", 《电子技术应用》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240876A (zh) * 2020-01-06 2020-06-05 远光软件股份有限公司 微服务的故障定位方法、装置、存储介质及终端
CN111240876B (zh) * 2020-01-06 2023-08-25 远光软件股份有限公司 微服务的故障定位方法、装置、存储介质及终端
CN111314121A (zh) * 2020-02-03 2020-06-19 支付宝(杭州)信息技术有限公司 链路异常检测方法以及装置
CN113448828A (zh) * 2020-03-26 2021-09-28 阿里巴巴集团控股有限公司 对象数据检测方法、装置、电子设备及计算机存储介质
CN111641519A (zh) * 2020-04-30 2020-09-08 平安科技(深圳)有限公司 异常根因定位方法、装置及存储介质
CN111641519B (zh) * 2020-04-30 2022-10-11 平安科技(深圳)有限公司 异常根因定位方法、装置及存储介质
CN115733724A (zh) * 2021-08-27 2023-03-03 中移动信息技术有限公司 业务故障根因定位方法、装置、电子设备及存储介质
CN114500326A (zh) * 2022-02-25 2022-05-13 北京百度网讯科技有限公司 异常检测方法、装置、电子设备以及存储介质
CN114500326B (zh) * 2022-02-25 2023-08-11 北京百度网讯科技有限公司 异常检测方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN110647447B (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
CN110647447B (zh) 用于分布式系统的异常实例检测方法、装置、设备和介质
CN107341098B (zh) 软件性能测试方法、平台、设备及存储介质
CN110704231A (zh) 一种故障处理方法及装置
CN111563014A (zh) 接口服务性能测试方法、装置、设备和存储介质
KR101989330B1 (ko) 데이터 처리 애플리케이션의 검사
WO2023125272A1 (zh) Radius环境下的全链路压测方法、装置、计算机设备及存储介质
CN113656174A (zh) 资源分配方法、系统、计算机设备和存储介质
CN112463807A (zh) 一种数据处理方法、装置、服务器及存储介质
CN113138906A (zh) 一种调用链数据采集方法、装置、设备及存储介质
CN112948262A (zh) 一种系统测试方法、装置、计算机设备和存储介质
CN117668192A (zh) 一种数据处理方法、装置、设备以及存储介质
CN111654405A (zh) 通信链路的故障节点方法、装置、设备及存储介质
CN115022201B (zh) 一种数据处理功能测试方法、装置、设备及存储介质
CN111047433A (zh) 用户数异常原因的分析方法、装置、服务器和存储介质
US20220327450A1 (en) Method for increasing or decreasing number of workers and inspectors in crowdsourcing-based project for creating artificial intelligence learning data
CN115269315A (zh) 一种异常检测方法、装置、设备、介质
CN115248782A (zh) 一种自动化测试方法、装置及计算机设备
CN113094241A (zh) 一种实时程序准确性的确定方法、装置、设备及存储介质
CN108984101B (zh) 在分布式存储系统中确定事件之间关系的方法及装置
CN116882724B (zh) 一种业务流程优化方案的生成方法、装置、设备及介质
CN113656658B (zh) 一种故障原因确定方法、装置、设备及存储介质
CN115529250B (zh) 流量回放方法、装置、电子设备及存储介质
CN112700322B (zh) 订单抽样检测方法、装置、电子设备和存储介质
JP2009218820A (ja) 通信帯域算出方法、装置、およびトラヒック管理方法
CN117609079A (zh) 基于调用关系网络进行测试的方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant