基于链路追踪的API接口性能研判方法、系统及介质与流程

    专利查询2022-08-15  110


    基于链路追踪的api接口性能研判方法、系统及介质
    技术领域
    1.本发明涉及分布式web api接口应用性能技术领域,具体涉及基于链路追踪的api接口性能研判方法、系统及介质。


    背景技术:

    2.在计算机编程中,应用程序编程接口(api)是一种软件接口,允许其他计算机程序访问特定功能或数据。web api是一种可以使用http协议访问的api,可以使用不同的技术(例如java、.net、golang等)构建web api。在b/s架构的软件系统中,几乎所有的系统能力都是以web api的形式提供,因此系统的性能、稳定性和可用性很大程度上依赖web api的表现。如图1所示。
    3.在分布式系统中,一次外部请求往往需要内部多个模块,多个中间件,多台机器的相互调用才能完成。分布式系统的web api接口性能监控目前主要用到链路追踪技术。
    4.链路追踪主要是将一次完整的请求还原成调用链路,对各个分布式服务web api接口的调用情况进行集中展示。比如,各个接口的耗时、延时、请求状态等。利用链路追踪进行分布式系统接口监控的技术方案一般有以请求为维度聚合和以接口为维度聚合两种。
    5.1.以请求为维度聚合是指将一次请求过程中调用的接口按照跟踪id和调用的先后顺序聚合为一个链路,展示出链路中各个接口的性能指标,如耗时、延时、响应时间。采用这类方案的有zipkin、jaeger等;
    6.2.以接口为维度聚合是指将单个接口每次请求的性能指标按统计学聚合,计算得到单个接口的平均性能指标,如平均耗时、平均延时、错误率。采用这类方案的有腾讯云apm等。
    7.由以上可知,利用链路追踪进行分布式系统性能监控的技术方案一般有以请求为维度聚合和以接口为维度聚合两种。但这两种方案有其局限性。
    8.现有方案一、以请求为维度聚合,虽然将每次请求的完整路径通过链路展示了出来,但采集到的性能指标只代表一次请求的结果,根据一次请求的结果判定接口是否存在性能问题,方式过于简单粗暴,容易产生误判。
    9.现有方案二、以接口为维度聚合,这种方式对单个接口的多次请求结果进行了统计,但仍存在两个问题:第一,对性能指标简单的统计聚合,没有总结出接口的行为特征,也无法识别出异常行为。例如某接口的访问流量突增,可能存在dos攻击行为;第二,全部数据都来源于链路追踪,只有被请求的接口才会被记录,忽略了未被请求的接口。
    10.因此,以上现有的利用链路追踪进行分布式系统性能监控及研判方法,存在对于接口是否出现了一些风险监控及研判的准确度不高,不能进行合理推荐等问题。


    技术实现要素:

    11.本发明所要解决的技术问题是现有的利用链路追踪进行分布式系统性能监控及研判方法,存在对于接口是否出现了一些风险监控及研判的准确度不高,不能进行合理推
    荐等问题。本发明目的在于提供基于链路追踪的api接口性能研判方法、系统及介质,本发明以接口为维度,通过对接口静态数据和链路追踪动态数据的智能研判,形成包含了接口性能特征和行为特征的综合评分,以此评分进行重点关注推荐。
    12.本发明通过下述技术方案实现:
    13.第一方面,本发明提供了基于链路追踪的api接口性能研判方法,该方法包括:
    14.各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有web api接口,获取到web api接口的全量静态数据s并上报到中心;
    15.当有http请求到来时,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据d;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标y;
    16.中心根据所述链路追踪数据d,采用接口行为特征模型计算得到接口行为特征数据w;
    17.中心根据所述全量静态数据s、平均性能指标y和接口行为特征数据w,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理。
    18.工作原理是:现有的利用链路追踪进行分布式系统性能监控及研判方法,存在对于接口是否出现了一些风险监控及研判的准确度不高,不能进行合理推荐;且现有只监控被调用的接口,没使用的接口没被监控到。本发明设计了基于链路追踪的api接口性能研判方法,本发明和现有方案一相比,以接口为维度对多次请求产生的链路追踪采样数据进行综合研判,得到的性能指标更加准确。本发明与现有方案二相比,虽然都是以接口为维度聚合性能指标,但本发明不是简单的统计接口的性能指标,而是将接口的性能指标与接口的行为特征相结合,智能推荐需要重点关注的接口。随着链路追踪数据越多,算法模型越可靠,推荐准确度越高。同时,通过主动扫描获取到全量的接口数据,监控范围更广,可以识别出无用接口,更有利于实现系统的重构和优化。
    19.本发明不是通过简单的统计聚合实现对web api接口的性能监控,而是通过对接口行为特征的学习,结合性能指标智能推荐需要重点关注的接口,进行合理推荐;不是仅通过链路追踪数据获取web api接口的行为特征,而是结合扫描获取的全量接口数据进行综合研判,且准确度高。
    20.进一步地,所述全量静态数据s包括接口路径、接口的调用方法、接口的调用协议、接口的参数类型。
    21.进一步地,所述的当有http请求到来时,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据d;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标y;具体包括:
    22.当有http请求到来时,所述http请求经过代理,进行所述http请求是否包含追踪id的判断:当代理识别到所述http请求不包含追踪id,则为所述hppt请求添加追踪id;当分布式服务间发生通信时,代理负责拦截出网请求,将上下文中的追踪id添加到出网请求中,实现同一链路的不同请求相互关联;
    23.代理定时将每次所述http请求的链路追踪数据d上报到中心;
    24.中心接收代理定时发送过来的链路追踪数据d,统计t时间范围内的n次请求产生的链路追踪数据dn,并将t时间范围内的n次请求产生的链路追踪数据dn按接口为维度进行
    统计聚合,即可得到每个web api接口的平均性能指标y。
    25.进一步地,所述链路追踪数据d包括接口路径、接口的调用时间、接口的响应时间、响应状态码、错误信息和调用参数。
    26.进一步地,所述平均性能指标y包括接口路径、接口错误率、n次请求中的存在错误信息的请求次数、平均响应时间和平均调用延时;
    27.接口错误率的计算表达式为:er=en/n,其中,er为接口错误率,en为n次请求中的存在错误信息的请求次数,n为请求次数;
    28.平均响应时间的计算表达式为:at=∑t2/n,其中,t2为接口的响应时间,n为请求次数;
    29.平均调用延时的计算表达式为:al=∑(t
    2-t1)/n,其中,t2为接口的响应时间,t1为接口的调用时间,n为请求次数。
    30.进一步地,所述接口行为特征数据w包括调用频率、n次请求中命中接口路径p的请求次数、调用时间、性能变化趋势和调用参数;
    31.所述接口行为特征模型的计算表达式为:
    32.cr=pn/t,
    33.y1=(y-y1)/y
    34.其中,cr为调用频率,即每秒调用次数;pn为n次请求中命中接口路径p的请求次数;t为单一批次统计的时间范围(单位秒),y1为性能变化趋势,y1为上一个t时间范围内的平均性能指标,y为平均性能指标。
    35.进一步地,所述的中心根据所述全量静态数据s、平均性能指标y和接口行为特征数据w,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理;具体包括:
    36.中心将所述全量静态数据s、平均性能指标y和接口行为特征数据w进行左外连接运算,得到t时间范围内的接口特征关系a;所述接口特征关系a=((s左外连接y)左外连接w);
    37.在v个t时间范围内,中心统计得到所述接口特征关系a的集合c,所述集合c={a1,a2,a3,..,av};将所述接口特征关系a中的某一元组o单独形成数据集c’,所述数据集c’={o1,o2,o3,..ov};
    38.选取所述数据集c’中一部分子集作为验证集,剩余部分作为训练集;采用机器学习算法对训练集进行拟合得到针对o的预测函数f(o);选取f对验证集的均方误差最小的训练模型作为综合研判模型;根据所述综合研判模型,得到重点关注得分score,其中score=(f(o)-o)/o。
    39.第二方面,本发明又提供了基于链路追踪的api接口性能研判系统,该系统支持所述的基于链路追踪的api接口性能研判方法,该系统包括:
    40.静态数据获取单元,用于各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有web api接口,获取到web api接口的全量静态数据s并上报到中心;
    41.平均性能指标计算单元,用于当有http请求到来时,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据d;采用以接口为维度聚合方
    式,计算得到每个web api接口的平均性能指标y;
    42.接口行为特征计算单元,用于中心根据所述链路追踪数据d,采用接口行为特征模型计算得到接口行为特征数据w;
    43.综合研判单元,用于中心根据所述全量静态数据s、平均性能指标y和接口行为特征数据w,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理。
    44.进一步地,所述综合研判单元的执行过程为:
    45.中心将所述全量静态数据s、平均性能指标y和接口行为特征数据w进行左外连接运算,得到t时间范围内的接口特征关系a;所述接口特征关系a=((s左外连接y)左外连接w);
    46.在v个t时间范围内,中心统计得到所述接口特征关系a的集合c,所述集合c={a1,a2,a3,..,av};将所述接口特征关系a中的某一元组o单独形成数据集c’,所述数据集c’={o1,o2,o3,..ov};
    47.选取所述数据集c’中一部分子集作为验证集,剩余部分作为训练集;采用机器学习算法对训练集进行拟合得到针对o的预测函数f(o);选取f对验证集的均方误差最小的训练模型作为综合研判模型;根据所述综合研判模型,得到重点关注得分score,其中score=(f(o)-o)/o。
    48.第三方面,本发明又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于链路追踪的api接口性能研判方法。
    49.本发明与现有技术相比,具有如下的优点和有益效果:
    50.1、本发明不是通过简单的统计聚合实现对web api接口的性能监控,而是通过对接口行为特征的学习,结合性能指标智能推荐需要重点关注的接口,进行合理推荐;不是仅通过链路追踪数据获取web api接口的行为特征,而是结合扫描获取的全量接口数据进行综合研判,且准确度高。
    51.2、本发明结合接口行为特征和性能指标,智能推荐需要重点关注的接口,有助于更好地定位分布式系统性能瓶颈,更好地发现异常的访问行为。随着链路追踪数据越多,算法模型越可靠,推荐准确度越高。
    52.3、本发明可以识别恶意攻击行为。如dos攻击,sql注入,xss攻击,暴力破解等。
    53.4、本发明通过主动扫描获取到全量的接口数据,监控范围更广,更有利于实现系统的重构和优化。
    附图说明
    54.此处所说明的附图用来提供对本发明实施例的进一步理解,构成本技术的一部分,并不构成对本发明实施例的限定。在附图中:
    55.图1为分布式系统web api接口示意图。
    56.图2为本发明基于链路追踪的api接口性能研判方法流程图。
    57.图3为本发明基于链路追踪的api接口性能研判方法的详细流程图。
    58.图4为本发明结合性能指标和接口行为特征进行综合研判来推荐重点关注的示意
    图。
    59.图5为本发明基于链路追踪的api接口性能研判系统结构示意图。
    具体实施方式
    60.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
    61.实施例1
    62.本发明以接口为维度,通过对接口静态数据和链路追踪动态数据的智能研判,形成包含了接口性能特征和行为特征的综合评分,以此评分进行重点关注推荐。本发明的研判流程框图如图3所示,相比与现有技术,增加了每个代理到对应分布式服务的主动扫描,以及中心综合性能指标和接口行为特征进行综合研判。
    63.如图2所示,本发明基于链路追踪的api接口性能研判方法,该方法包括:
    64.各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有web api接口,获取到web api接口的全量静态数据s并上报到中心;
    65.当有http请求到来时,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据d;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标y;
    66.中心根据所述链路追踪数据d,采用接口行为特征模型计算得到接口行为特征数据w;
    67.中心根据所述全量静态数据s、平均性能指标y和接口行为特征数据w,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理。
    68.具体实施如下:
    69.步骤1,各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有web api接口,获取到web api接口的全量静态数据s并上报到中心;其中,所述全量静态数据s包括接口路径、接口的调用方法、接口的调用协议、接口的参数类型。
    70.所述全量静态数据s={p,m,proto,param},p为接口路径、m为接口的调用方法、proto为接口的调用协议、param为接口的参数类型。
    71.步骤2,当有http请求到来时,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据d;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标y;步骤2具体包括:
    72.当有http请求到来时,所述http请求经过代理,进行所述http请求是否包含追踪id的判断:当代理识别到所述http请求不包含追踪id,则为所述hppt请求添加追踪id;当分布式服务间发生通信时,代理负责拦截出网请求,将上下文中的追踪id添加到出网请求中,以便同一链路的不同请求相互关联;
    73.代理定时将每次所述http请求的链路追踪数据d上报到中心;其中,所述链路追踪数据d包括接口路径、接口的调用时间、接口的响应时间、响应状态码、错误信息和调用参数。链路追踪数据d={p,t1,t2,c,e,x},p为接口路径、t1为接口的调用时间、t2为接口的响
    应时间、c为响应状态码、e为错误信息、x为调用参数。
    74.中心接收代理定时发送过来的链路追踪数据d,统计t时间范围内的n次请求产生的链路追踪数据dn,并将t时间范围内的n次请求产生的链路追踪数据dn按接口为维度进行统计聚合,即可得到每个web api接口的平均性能指标y。其中,所述平均性能指标y包括接口路径、接口错误率、n次请求中的存在错误信息的请求次数、平均响应时间和平均调用延时;平均性能指标y={p,er,at,al},p为接口路径,er为接口错误率,en为n次请求中的存在错误信息的请求次数,at为平均响应时间,al为平均调用延时。
    75.接口错误率的计算表达式为:er=en/n,其中,er为接口错误率,en为n次请求中的存在错误信息的请求次数,n为请求次数;
    76.平均响应时间的计算表达式为:at=∑t2/n,其中,t2为接口的响应时间,n为请求次数;
    77.平均调用延时的计算表达式为:al=∑(t
    2-t1)/n,其中,t2为接口的响应时间,t1为接口的调用时间,n为请求次数。
    78.步骤3,中心根据所述链路追踪数据d,采用接口行为特征模型计算得到接口行为特征数据w;所述接口行为特征数据w包括调用频率、n次请求中命中接口路径p的请求次数、调用时间、性能变化趋势和调用参数;
    79.接口行为特征w={p,cr,t1,y1,x},p为接口路径,cr为调用频率,pn为n次请求中命中接口路径p的请求次数,t1为调用时间、y1为性能变化趋势,x为调用参数。
    80.所述接口行为特征模型的计算表达式为:
    81.cr=pn/t,
    82.y1=(y-y1)/y
    83.其中,cr为调用频率,即每秒调用次数;pn为n次请求中命中接口路径p的请求次数;t为单一批次统计的时间范围(单位秒),y1为性能变化趋势,y1为上一个t时间范围内的平均性能指标,y为平均性能指标。
    84.步骤4,中心根据所述全量静态数据s、平均性能指标y和接口行为特征数据w,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理。步骤4具体包括:
    85.中心将所述全量静态数据s、平均性能指标y和接口行为特征数据w进行左外连接运算,得到t时间范围内的接口特征关系a;所述接口特征关系a=((s左外连接y)左外连接w);用二维表展示效果如下:
    86.pmprotoparamt1t2cexeratalcry1/registrygethttpid..................../userposthttps................................................../logindeletehttp......................
    87.在v个t时间范围内,中心统计得到所述接口特征关系a的集合c,所述集合c={a1,a2,a3,..,av};将所述接口特征关系a中的某一元组o单独形成数据集c’,所述数据集c’={o1,o2,o3,..ov};
    88.选取所述数据集c’中一部分子集作为验证集,剩余部分作为训练集;采用机器学
    习算法对训练集进行拟合得到针对o的预测函数f(o);选取f对验证集的均方误差最小的训练模型作为综合研判模型;根据所述综合研判模型,得到重点关注得分score,其中score=(f(o)-o)/o。
    89.经过长期持久的机器学习和算法模型优化,该行为特征会逐渐稳定,接口的异常行为可以被准确的识别出来,例如在非常规时间点发生大量调用,突发性的性能下降等。
    90.如图4所示,经过以上步骤1至步骤4的实施,得到重点关注评分为98的作为推荐重点关注。经分析:1.安全态势接口的平均响应时间达到1分钟,平均错误率达到90%,平均调用延时达到13s,接口性能极差;2.安全态势接口在最近24小时出现大量高频调用,调用时间主要集中在凌晨2点,且性能趋势当同比昨日下降90%,行为特征出现异常;3.经过智能研判,该接口性能指标突然下降,同时行为特征有明显异常,相比其他接口具有更高风险,最终得出98分的重点关注分数,说明该接口需要及时响应处理。
    91.工作原理是:现有的利用链路追踪进行分布式系统性能监控及研判方法,存在对于接口是否出现了一些风险监控及研判的准确度不高,不能进行合理推荐;且现有只监控被调用的接口,没使用的接口没被监控到。本发明设计了基于链路追踪的api接口性能研判方法,本发明和现有方案一相比,以接口为维度对多次请求产生的链路追踪采样数据进行综合研判,得到的性能指标更加准确。本发明与现有方案二相比,虽然都是以接口为维度聚合性能指标,但本发明不是简单的统计接口的性能指标,而是将接口的性能指标与接口的行为特征相结合,智能推荐需要重点关注的接口。随着链路追踪数据越多,算法模型越可靠,推荐准确度越高。同时,通过主动扫描获取到全量的接口数据,监控范围更广,可以识别出无用接口,更有利于实现系统的重构和优化。
    92.本发明不是通过简单的统计聚合实现对web api接口的性能监控,而是通过对接口行为特征的学习,结合性能指标智能推荐需要重点关注的接口,进行合理推荐;不是仅通过链路追踪数据获取web api接口的行为特征,而是结合扫描获取的全量接口数据进行综合研判,且准确度高。
    93.实施例2
    94.如图5所示,本实施例与实施例1的区别在于,本实施例提供了基于链路追踪的api接口性能研判系统,该系统支持实施例1所述的基于链路追踪的api接口性能研判方法,该系统包括:
    95.静态数据获取单元,用于各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有web api接口,获取到web api接口的全量静态数据s并上报到中心;
    96.平均性能指标计算单元,用于当有http请求到来时,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据d;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标y;
    97.接口行为特征计算单元,用于中心根据所述链路追踪数据d,采用接口行为特征模型计算得到接口行为特征数据w;
    98.综合研判单元,用于中心根据所述全量静态数据s、平均性能指标y和接口行为特征数据w,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理。
    99.具体地,所述综合研判单元的执行过程为:
    100.中心将所述全量静态数据s、平均性能指标y和接口行为特征数据w进行左外连接运算,得到t时间范围内的接口特征关系a;所述接口特征关系a=((s左外连接y)左外连接w);
    101.在v个t时间范围内,中心统计得到所述接口特征关系a的集合c,所述集合c={a1,a2,a3,..,av};将所述接口特征关系a中的某一元组o单独形成数据集c’,所述数据集c’={o1,o2,o3,..ov};
    102.选取所述数据集c’中一部分子集作为验证集,剩余部分作为训练集;采用机器学习算法对训练集进行拟合得到针对o的预测函数f(o);选取f对验证集的均方误差最小的训练模型作为综合研判模型;根据所述综合研判模型,得到重点关注得分score,其中score=(f(o)-o)/o。
    103.其它各个单元的执行过程按照实施例1所述的基于链路追踪的api接口性能研判方法流程步骤执行即可,此实施例中不再一一赘述。
    104.本发明系统结合接口行为特征和性能指标,智能推荐需要重点关注的接口,有助于更好地定位分布式系统性能瓶颈,更好地发现异常的访问行为。随着链路追踪数据越多,算法模型越可靠,推荐准确度越高。本发明可以识别恶意攻击行为。如dos攻击,sql注入,xss攻击,暴力破解等。本发明通过主动扫描获取到全量的接口数据,监控范围更广,更有利于实现系统的重构和优化。
    105.同时,本发明又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于链路追踪的api接口性能研判方法。
    106.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
    107.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
    108.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
    109.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
    个方框或多个方框中指定的功能的步骤。
    110.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

    技术特征:
    1.基于链路追踪的api接口性能研判方法,其特征在于,该方法包括:各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有web api接口,获取到web api接口的全量静态数据并上报到中心;获取外部服务的http请求,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标;中心根据所述链路追踪数据,采用接口行为特征模型计算得到接口行为特征数据;中心根据所述全量静态数据、平均性能指标和接口行为特征数据,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理。2.根据权利要求1所述的基于链路追踪的api接口性能研判方法,其特征在于,所述全量静态数据包括接口路径、接口的调用方法、接口的调用协议、接口的参数类型。3.根据权利要求1所述的基于链路追踪的api接口性能研判方法,其特征在于,所述的获取外部服务的http请求,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标;具体包括:当有http请求到来时,所述http请求经过代理,进行所述http请求是否包含追踪id的判断:当代理识别到所述http请求不包含追踪id,则为所述hppt请求添加追踪id;当分布式服务间发生通信时,代理负责拦截出网请求,将上下文中的追踪id添加到出网请求中,实现同一链路的不同请求相互关联;代理定时将每次所述http请求的链路追踪数据d上报到中心;中心接收代理定时发送过来的链路追踪数据d,统计t时间范围内的n次请求产生的链路追踪数据d
    n
    ,并将t时间范围内的n次请求产生的链路追踪数据d
    n
    按接口为维度进行统计聚合,即可得到每个web api接口的平均性能指标y。4.根据权利要求3所述的基于链路追踪的api接口性能研判方法,其特征在于,所述链路追踪数据d包括接口路径、接口的调用时间、接口的响应时间、响应状态码、错误信息和调用参数。5.根据权利要求3所述的基于链路追踪的api接口性能研判方法,其特征在于,所述平均性能指标y包括接口路径、接口错误率、n次请求中的存在错误信息的请求次数、平均响应时间和平均调用延时;接口错误率的计算表达式为:er=e
    n
    /n,其中,er为接口错误率,e
    n
    为n次请求中的存在错误信息的请求次数,n为请求次数;平均响应时间的计算表达式为:at=∑t2/n,其中,t2为接口的响应时间,n为请求次数;平均调用延时的计算表达式为:al=∑(t
    2-t1)/n,其中,t2为接口的响应时间,t1为接口的调用时间,n为请求次数。6.根据权利要求1所述的基于链路追踪的api接口性能研判方法,其特征在于,所述接口行为特征数据包括调用频率、n次请求中命中接口路径p的请求次数、调用时间、性能变化趋势和调用参数;所述接口行为特征模型的计算表达式为:cr=p
    n
    /t,
    y1=(y-y1)/y其中,cr为调用频率,p
    n
    为n次请求中命中接口路径p的请求次数,t为单一批次统计的时间范围(单位秒),y1为性能变化趋势,y1为上一个t时间范围内的平均性能指标,y为平均性能指标。7.根据权利要求1所述的基于链路追踪的api接口性能研判方法,其特征在于,所述的中心根据所述全量静态数据、平均性能指标和接口行为特征数据,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理;具体包括:中心将全量静态数据、平均性能指标和接口行为特征数据进行左外连接运算,得到t时间范围内的接口特征关系a;所述接口特征关系a=((s左外连接y)左外连接w),其中,s为全量静态数据、y为平均性能指标,w为接口行为特征数据;在v个t时间范围内,中心统计得到所述接口特征关系a的集合c,所述集合c={a1,a2,a3,..,av};将所述接口特征关系a中的某一元组o单独形成数据集c’,所述数据集c’={o1,o2,o3,..ov};选取所述数据集c’中一部分子集作为验证集,剩余部分作为训练集;采用机器学习算法对训练集进行拟合得到针对o的预测函数f(o);选取f对验证集的均方误差最小的训练模型作为综合研判模型;根据所述综合研判模型,得到重点关注得分score,其中score=(f(o)-o)/o。8.基于链路追踪的api接口性能研判系统,其特征在于,该系统支持如权利要求1至7中任一所述的基于链路追踪的api接口性能研判方法,该系统包括:静态数据获取单元,用于各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有web api接口,获取到web api接口的全量静态数据并上报到中心;平均性能指标计算单元,用于获取外部服务的http请求,通过各个代理实现链路追踪,得到代理定时上报中心的每次所述http请求的链路追踪数据;采用以接口为维度聚合方式,计算得到每个web api接口的平均性能指标;接口行为特征计算单元,用于中心根据所述链路追踪数据,采用接口行为特征模型计算得到接口行为特征数据;综合研判单元,用于中心根据所述全量静态数据、平均性能指标和接口行为特征数据,采用综合研判模型进行综合评判,对重点关注评分对应的web api接口进行及时响应处理。9.根据权利要求8所述的基于链路追踪的api接口性能研判系统,其特征在于,所述综合研判单元的执行过程为:中心将所述全量静态数据、平均性能指标和接口行为特征数据进行左外连接运算,得到t时间范围内的接口特征关系a;所述接口特征关系a=((s左外连接y)左外连接w),其中,s为全量静态数据、y为平均性能指标,w为接口行为特征数据;在v个t时间范围内,中心统计得到所述接口特征关系a的集合c,所述集合c={a1,a2,a3,..,av};将所述接口特征关系a中的某一元组o单独形成数据集c’,所述数据集c’={o1,o2,o3,..ov};选取所述数据集c’中一部分子集作为验证集,剩余部分作为训练集;采用机器学习算法对训练集进行拟合得到针对o的预测函数f(o);选取f对验证集的均方误差最小的训练模
    型作为综合研判模型;根据所述综合研判模型,得到重点关注得分score,其中score=(f(o)-o)/o。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于链路追踪的api接口性能研判方法。

    技术总结
    本发明公开了基于链路追踪的API接口性能研判方法、系统及介质,该方法包括:各个代理无代码侵入地接入对应的分布式服务,在分布式服务启动时主动扫描分布式服务中所有Web API接口,获取到Web API接口的全量静态数据并上报到中心;获取外部服务的HTTP请求,通过各个代理实现链路追踪,得到代理定时上报中心的每次HTTP请求的链路追踪数据;采用以接口为维度聚合方式,计算得到每个Web API接口的平均性能指标;中心根据链路追踪数据,计算得到接口行为特征数据;中心根据全量静态数据、平均性能指标和接口行为特征数据,采用综合研判模型进行综合评判,对重点关注评分对应的接口进行及时响应处理。时响应处理。时响应处理。


    技术研发人员:蒋诗龙
    受保护的技术使用者:科来网络技术股份有限公司
    技术研发日:2022.02.18
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-8009.html

    最新回复(0)