CN117097635A - 调用链路采样方法、装置、存储介质及设备 - Google Patents
调用链路采样方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN117097635A CN117097635A CN202311319802.4A CN202311319802A CN117097635A CN 117097635 A CN117097635 A CN 117097635A CN 202311319802 A CN202311319802 A CN 202311319802A CN 117097635 A CN117097635 A CN 117097635A
- Authority
- CN
- China
- Prior art keywords
- sampling
- link
- probability
- target
- call
- 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
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 611
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012545 processing Methods 0.000 claims description 18
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- YZSCPLGKKMSBMV-UHFFFAOYSA-N 5-fluoro-4-(8-fluoro-4-propan-2-yl-2,3-dihydro-1,4-benzoxazin-6-yl)-N-[5-(1-methylpiperidin-4-yl)pyridin-2-yl]pyrimidin-2-amine Chemical compound FC=1C(=NC(=NC=1)NC1=NC=C(C=C1)C1CCN(CC1)C)C1=CC2=C(OCCN2C(C)C)C(=C1)F YZSCPLGKKMSBMV-UHFFFAOYSA-N 0.000 description 1
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 201000004569 Blindness Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/022—Capturing of monitoring data by sampling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Bioinformatics & Computational Biology (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请实施例公开了一种调用链路采样方法、装置、存储介质及设备,本申请实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。通过获取当前采样周期采样的目标调用链路数量和预期调用链路数量;根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量;基于控制量和目标调用链路数量计算出相应的采样调节概率;通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。以此,提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。
Description
技术领域
本申请涉及分布式计算技术领域,具体涉及一种调用链路采样方法、装置、存储介质及设备。
背景技术
随着互联网业务快速扩展,软件架构也日益变得复杂,为了适应海量对象高并发请求,系统中越来越多的组件开始走向分布式化,如单体架构拆分为微服务、服务内缓存变为分布式缓存和服务组件通信变为分布式消息,这些组件共同构成了繁杂的分布式网络系统。
在分布式网络系统中,可以部署成千上万个微服务,假设分布式网络系统内部出现错误,开发人员如果借助日志逐个排查微服务的效率是非常低的,因此,分布式链路标记应运而生,分布式链路标记就是将一次业务请求(也可以理解为分布式请求)还原成调用链路(也可以理解为分布式链路),将一次业务请求的调用情况集中展示,比如各个微服务节点上的耗时、请求具体到达哪个微服务节点上和每个微服务节点的请求状态等等。
但是,由于调用链路采样的密集性,导致采样的目标调用链路数量与业务请求等量,在全部采样的情况下,会给业务端带来巨大的负载压力,同时也会给存储端带来具体的存储压力。
发明内容
本申请实施例提供一种调用链路采样方法、装置、存储介质及设备,可以提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。
为解决上述技术问题,本申请实施例提供以下技术方案:
一种调用链路采样方法,包括:
获取当前采样周期采样的目标调用链路数量和预期调用链路数量;
根据所述目标调用链路数量和所述预期调用链路数量之间的差异确定相应的控制量;
基于所述控制量和所述目标调用链路数量计算出相应的采样调节概率;
通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
一种调用链路采样装置,包括:
获取单元,用于获取当前采样周期采样的目标调用链路数量和预期调用链路数量;
第一确定单元,用于根据所述目标调用链路数量和所述预期调用链路数量之间的差异确定相应的控制量;
计算单元,用于基于所述控制量和所述目标调用链路数量计算出相应的采样调节概率;
第二确定单元,用于通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
在一些实施方式中,所述第一确定单元,包括:
第一计算子单元,用于根据所述目标调用链路数量和预期调用链路数量计算出相应的控制误差;
第二计算子单元,用于通过积分微分控制方法对所述控制误差进行计算,得到计算后相应的控制量。
在一些实施方式中,所述第二计算子单元,用于:
获取预设比例;
确定所述控制误差相应的积分数据和微分数据;
将所述预设比例、所述积分数据和所述微分数据进行线性处理,生成控制量。
在一些实施例中,所述第二确定单元,包括:
获取子单元,用于获取所述当前采样周期下对应的当前采样概率;
调节子单元,用于根据所述采样调节概率对所述当前采样概率进行调节,得到调节后的目标采样概率;
采样子单元,用于将所述目标采样概率作为每个服务节点在下个采样周期的采样概率。
在一些实施例中,所述调节子单元,用于:
根据所述采样调节概率对所述当前采样概率进行调节,得到调节后的初始采样概率;
获取下个采样周期所处的目标时间段,并根据所述目标时间段确定相应的调节权重;
根据所述调节权重对所述初始采样概率进行加权,得到加权后的目标采样概率。
在一些实施例中,所述采样子单元,用于:
获取子模块,用于获取预设链路类别数量,以及统计在所述当前采样周期每个预设链路类别下的调用链路数量;
第一确定子模块,用于根据所述预期调用链路数量和所述预设链路类别数量确定出相应的参考数量;
第二确定子模块,用于确定调用链路数量大于等于所述参考数量的第一预设链路类别,以及调用链路数量小于所述参考数量的第二预设链路类别;
第一设置子模块,用于将所述第一预设链路类别在下个采样周期的采样概率设置为所述目标采样概率,以及将所述第二预设链路类别在下个采样周期的采样概率设置为预设采样概率。
在一些实施例中,所述第二确定子模块,用于:
基于最大最小公平原则,将每个调用链路数量与所述参考数量进行对比;
将调用链路数量大于等于所述参考数量的预设链路类别确定为第一预设链路类别;
将调用链路数量小于所述参考数量的预设链路类别确定为第二预设链路类别。
在一些实施例中,所述装置,还包括第二设置子模块,用于:
将不属于预设链路类别的非预设链路类别在下个采样周期的采样概率设置为所述目标采样概率。
在一些实施例中,所述装置,还包括设置单元,用于:
获取采样的历史调用链路,并统计所述历史调用链路相应的历史链路数据;
当检测到所述历史链路数据指示出现异常情况时,将每个服务节点在下个采样周期的采样概率设置为预设采样概率。
在一些实施例中,所述第二确定单元,还用于:
当检测到所述历史链路数据中未出现异常情况时,通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
在一些实施例中,所述第二确定单元,用于:
计算所述控制量和所述目标调用链路数量的比值,并将所述比值确定为采样调节概率。
一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述调用链路采样方法。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述调用链路采样方法。
一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取所述计算机指令,处理器执行所述计算机指令,使得实现上述调用链路采样方法。
本申请实施例通过获取当前采样周期采样的目标调用链路数量和预期调用链路数量;根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量;基于控制量和目标调用链路数量计算出相应的采样调节概率;通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。以此,根据当前采样周期采样的目标调用链路数量和预期调用链路数量之间的差异关系,确定出相应的控制量,并基于控制量与目标调用链路数量进一步的确定出采样调节概率,根据采样调节概率动态设置下个采样周期的目标采样概率,相对于相关技术中对于调用链路进行全部采样的方案,本申请实施例可以提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的调用链路采样方法的交互示意图。
图2是本申请实施例提供的调用链路采样系统的场景示意图。
图3是本申请实施例提供的调用链路采样方法的应用示意图。
图4为本申请实施例提供的调用链路采样方法的流程示意图。
图5为本申请实施例提供的调用链路采样方法的架构示意图。
图6为本申请实施例提供的调用链路采样方法的另一架构示意图。
图7为本申请实施例提供的调用链路采样方法的另一流程示意图。
图8为本申请实施例提供的调用链路采样方法的时序示意图。
图9是本申请实施例提供的调用链路采样装置的结构示意图。
图10是本申请实施例提供的服务器的结构示意图。
图11是本申请实施例提供的终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请的方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可以理解的是,在本申请的具体实施方式中,涉及到链路数据等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关法律法规和标准。
此外,当本申请实施例需要获取链路数据等相关的数据时,会通过弹窗或者跳转到确认页面等方式获得链路数据等相关的数据的单独许可或者单独同意,在明确获得链路数据等相关的数据的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的链路数据等相关的数据。
需要说明的是,在说明书、权利要求书和上述附图所描述的一些流程中,包含了按照特定顺序出现的多个步骤,但应该清楚了解,这些步骤可以不按照其在本文中出现的顺序来执行或并行执行,步骤序号仅仅是用于区分开各个不同的步骤,序号本身不代表任何的执行顺序。此外,本文中的“第一”、“第二”或者“目标”等描述,是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
虚拟机(Virtual Machine),指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。
容器,用于运行服务的轻量级虚拟化运行时环境。每个容器代表一个软件包,其中包含运行特定应用程序所需的代码、系统工具、库、依赖项和配置文件,通俗可以理解为软件的运行态。
微服务是一种软件架构模式,其中应用程序被分解为小型、自治的服务单元,这些服务单元可以独立部署、扩展和维护。每个服务都运行在其自己的进程中,可以使用轻量级通信机制(例如HTTP API)相互通信。这些服务通常被组织成服务网格,以便管理和监测它们,例如注册微服务、登录微服务、信息维护微服务和授权微服务等等。
分布式链路标记,是将一次业务请求(也可以理解为分布式请求)还原成调用链路(也可以理解为分布式链路),将一次业务请求的调用情况集中展示,比如各个微服务节点(也可以理解为服务节点)上的耗时、请求具体到达哪个微服务节点上和每个微服务节点的请求状态等等。
Span(跨度,也可以理解为链路数据),Span是Trace(分布式链路)的组成部分之一。为分布式链路标记中的最小单元,可以是一个方法调用,在本申请实施例中,为对应服务的一个操作。
每个Span都包含了一些关键的信息,如开始时间、结束时间、耗时、服务节点的响应状态码、所属的Trace ID、Span ID、Parenet ID(父级标识)等。开始时间和结束时间记录了Span的执行时间,而Trace ID和Span ID用于标识Span所属的Trace和上下文关系。以此,通过记录和分析每个Span的信息,可以了解每个服务的性能指标和调用关系。例如,可以查看每个Span的耗时,从而定位潜在的性能瓶颈;还可以通过分析Span之间的关系,了解请求在分布式系统中的流转过程。
Trace(分布式调用链),包含多个 Span。描述整个业务请求下服务的请求过程。
Trace ID(Trace Identifier),是分布式系统和微服务架构中,用于唯一标识和标记某个业务请求的标识符。
Span ID(Span Identifier),是分布式系统和微服务架构中,用于记录请求的唯一标识符,是用来唯一标识一个Span的ID。在分布式系统中,请求链路可能会涉及服务,每个服务对应一个Span。为了记录和关联不同的Span,每个Span都会分配一个唯一的SpanID。
Parenet ID(父级标识),是在分布式系统和微服务架构中,用于记录请求的标识符之一,用于标记父级的Span ID。
为了更好的说明本申请实施例,请一并参阅图1所示,客户端产生业务请求,进入多个服务节点,即服务节点A、B、C、D,该服务节点A、B、C、D,拥有相同的Trace ID,即表面服务节点A、B、C、D属于同一个调用链路,服务节点A为服务B和C的父级节点,服务C为服务D的父级节点,Span ID从小到大表示请求的顺序,结合Parent ID很明显可以看出,从服务节点A开始,服务节点A先调用B,然后调用C,然后C再调用了D,因此,形成一条完成整的分布式链路,该分布式链路可以包含多个Span。
通过该分布式链路,可以实现:
故障快速定位:可以通过调用链路结合业务日志快速定位错误信息。
调用链路性能可视化:各个阶段链路耗时、服务依赖关系可以通过可视化界面展现出来。
链路分析:通过分析链路耗时、服务依赖关系可以得到用户的行为路径,汇总分析应用在很多业务场景。
在相关技术中,一般采样方式分为两种模式,基于头部采样和基于尾部的采样。
头部采样(即本申请实施例采用的采样模式):这种采样策略是在入口服务接收到请求时决定整条调用链路是否保留,这个标记(即Trace ID)会随着调用链路上下文信息,被透传到调用链路下游的所有相关服务。对于标记不保留的调用链路,所有对应的Span会丢弃,不会上报到调用链标记系统后台(即服务端)进行存储。
该头部采样的优势为采样发生在业务机器(业务端)上,可以显著降低挂载在业务端上的代理对业务端资源(网络,CPU等开销);同时因为 Span 直接被丢弃,也降低了服务端的存储和计算开销。但是,采样实施在调用链路产生初期,命中异常和慢响应的几率低,如果直接丢弃相应的调用链路的Span,会影响后续的故障排查。
尾部采样:这种采样策略是在业务请求处理完成时,在服务端决定整条调用链路是否保留。客户端会将所有调用链路的Span都上报到调用链标记系统后台,由后台根据一定预设的规则,决定哪些链路被保留。
该尾部采样的优势为采样实施在调用链路产生后,可以精准采集异常、慢响应或者根据一些业务逻辑能够辅助故障排查的链路;有效减少链路存储产生的相关资源成本。但是,采样发生在调用链标记系统后台,对业务端的压力(例如,网络I/O的开销)无缓解。
综上该,无论是头部采样和尾部采样均有一定的缺陷,因此,本申请实施例提出一种能够动态调整下个采样周期的目标采样概率的方案,能够提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力,具体,请继续参阅下述实施例。
请参阅图2,图2是本申请实施例提供的调用链路采样系统的场景示意图。它包括终端140、互联网130、网关120、服务器110等。
终端140包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。另外,它可以是单台设备,也可以是多台设备组成的集合。终端140可以以有线或无线的方式与互联网130进行通信,交换数据。
服务器110是指能对终端140提供某些服务的计算机系统。相对于普通终端140来说,服务器110在稳定性、安全性、性能等方面都要求更高。服务器110可以可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
网关120又称网间连接器、协议转换器。网关在传输层上实现网络互连,是一种充当转换作用的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。同时,网关也可以提供过滤和安全功能。终端140向服务器110发送的消息要通过网关120发送到相应的服务器110。服务器110向终端140发送的消息也要通过网关120发送到相应的终端140。
本公开实施例的调用链路采样方法可以完全在服务器110实现。
调用链路采样方法完全在服务器110实现的情况下,在服务器110获取当前采样周期采样的目标调用链路数量和预期调用链路数量;根据该目标调用链路数量和该预期调用链路数量之间的差异确定相应的控制量;基于该控制量和该目标调用链路数量计算出相应的采样调节概率;通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
本公开实施例可以应用在多种场景下,如图2所示的虚拟资源支付系统的场景。
虚拟资源支付系统:
虚拟资源支付系统是可以实现支付功能,完成支付相关的业务请求,如图2所示,在终端的虚拟资源支付系统的界面10上,对象可以选取需要支付的虚拟资源,例如100,当对象点击确认按钮,终端会产生支付相关的业务请求发送至服务器,服务器响应该业务请求,并生成相应的调用链路,实现支付功能,服务器会记录该调用链路,以此,实现获取当前采样周期采样的目标调用链路数量和预期调用链路数量;根据该目标调用链路数量和该预期调用链路数量之间的差异确定相应的控制量;基于该控制量和该目标调用链路数量计算出相应的采样调节概率;通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
需要说明的是,图2所示的调用链路采样系统的场景示意图仅仅是一个示例,本申请实施例描述的调用链路采样系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着调用链路采样系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本实施例中,将从调用链路采样装置的角度进行描述,该调用链路采样装置具体可以集成在具备储存单元并安装有微处理器而具有运算能力的计算机设备中,计算机设备可以为服务器,即在本实施例中以计算机设备为服务器进行说明。
请参阅图4,图4是本申请实施例提供的调用链路采样方法的流程示意图。该调用链路采样方法包括:
在步骤201中,获取当前采样周期采样的目标调用链路数量和预期调用链路数量。
为了更好的说明本申请实施例,请一并参阅图5所示,图5为本申请实施例提供的调用链路采样方法的架构图,该控制台模块,负责处理用户所有的控制请求,例如注册一个新的服务。该控制中心,涵盖了注册中心、配置中心和限流中心,用于实现具体的服务配置,而对象业务(服务)则支持以容器或者虚拟机的方式部署到微服务平台上。控制中心可以给业务侧下发代理(Agent)进程和代理容器,来实现虚拟机和容器的配置,并在最后为对象提供统一的可观测数据(即调用链路)的存储,该虚拟机和容器可以理解为业务端,用于处理业务请求,存储该可观测数据的存储空间可以理解为存储端。
按照数据流视角,主要包含三个链路:
数据流1,表示用户在控制台模块请求可观测配置变更后,即一个采样周期采集多少预期调用链路数量,一个小时采集多少条预期调用链路数量或者10分钟采集多少条预期调用链路数量,控制台模块同步所有的数据到控制中心。
数据流2,表示控制中心将可观测配置的配置数据,将统一下发到业务侧中。
数据流3,为代理容器\程序收集用户的调用链路到分布式存储中。
相关技术中,采样方式为基于头部的方式进行采样,然后默认是100%的采样概率全部采集调用链路,即采集全部调用链路的Span数据。但是当业务请求负载高时,经常出现调用链路的Span上报负载大,拖慢对象的业务请求。为了保证业务的可用性和性能,此时往往会使用降低采样概率的办法,解决业务性能问题。但是其代价是,对象的业务侧失去了部分调用链路的监测。一但服务出现问题,故障定位则非常困难。
因此,本申请实施例的框架结合分布式配置能力。对于业务请求进行了一站式改造,提出一种能够动态调整下个采样周期的目标采样概率的方案,能够提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。首先,本申请实施例可以获取当前采样周期采样的全部调用链路的目标调用链路数量,该当前采样周期为一个固定的时钟周期,例如为10分钟、20分钟或者1小时内,该目标调用链路数量为在该当前采样周期内按照当前采样概率实际采样到的全部调用链路的数量,例如为1000条,该当前采样概率为当前采样周期的采样概率,可以为100%或95%等等,此处具体不作为具体限定。
进一步的,该预期调用链路数量为对象对一个采样周期内采样的调用链路的期望数量,例如为900条,该预期调用链路数量可以为对象配置的,也可以为根据每个业务侧的实际承载能力配置的,此处不作具体限定。
在步骤202中,根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量。
其中,为了更好的说明本申请实施例,先对比例积分微分控制(proportional-integral-derivative control,简称PID控制)方法进行解释,该控制方法可以根据给定值(即预期调用链路数量)和实际输出值(即目标调用链路数量)构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制。
以此,可以根据该目标调用链路数量和预期调用链路数量之间的差异,根据该比例积分微分控制进行处理,生成相应的控制量,该控制量用于控制下个采样周期下使得该实际采集的目标调用链路数量更接近于该给定的预期调用链路数量,因此,后续可以通过该控制量实现对下个采样周期的采样概率的动态调整,即可以根据实际的采样情况和预期的采样情况进行动态分析,使得调用链路采样更合理,具体请继续参阅下述实施例。
在一些实施方式中,该根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量,包括:
(1)根据该目标调用链路数量和预期调用链路数量计算出相应的控制误差;
(2)通过积分微分控制方法对该控制误差进行计算,得到计算后相应的控制量。
其中,可以根据该目标调用链路数量和预期调用链路数量计算出相应的控制误差,例如该目标调用链路数量为1000条,而该预期调用链路数量为900,那么可以将该预期调用链路数量减去该目标调用链路数量,计算出相应的控制误差为-100条。
进一步的,可以根据积分微分控制方法对该控制误差按照比例、积分和微分通过线性组合计算,构成计算后的控制量,该积分微分控制方法可以实现对控制误差的平滑处理,避免调整幅度过大,导致后续采样出现较大的数据波动。
在一些实施方式中,该通过积分微分控制方法对该控制误差进行计算,得到计算后相应的控制量,包括:
(1.1)获取预设比例;
(1.2)确定该控制误差相应的积分数据和微分数据;
(1.3)将该预设比例、该积分数据和该微分数据进行线性处理,生成控制量。
其中,为了更好的说明本申请实施例,请一并参阅如下公式进行参考:
其中,该即为控制量,该/>即为控制误差,该/>即为积分数据,该d即为微分数据,该/>为预设比例,即常数,例如为0.5,该/>为常数,例如0.3。以此,获取预设比例/>,确定该控制误差/>的相应的积分数据/>,也可以理解为前t次采样周期的控制误差的平均值,确定该控制误差/>的相应的微分数据/>,该微分数据为了实现平滑,避免调整幅度过大,导致收敛过慢。
进一步的,基于上述公式,将该预设比例,积分数据/>和微分数据进行线性计算,该线性计算即指如果在稳定误差下确定控制量进行误差消除,由于稳定误差比较死板,会导致误差收敛的过程是比较慢的,而本申请实施例通过预设比例/>,积分数据/>和微分数据/>对控制误差/>进行灵活调节,使得误差收敛可以参考之前的收敛经验进行稳定的线性收敛,减小误差收敛过程需要的时间,以此,生成最后的控制量,该控制量的数据值可以为正值或者负值,例如-(负)50,后续用于调节下个采样周期的采样概率。即后续可以根据该控制量对下个采样周期的采样概率进行动态调整,使得下个采样周期的采样概率可以参考当前采样周期的实际采样情况进行动态调整,使得调用链路采样更合理。
需要说明的是,一般对象的业务请求的流量会有潮汐变化,例如白天高,晚上低。
但是对象的业务请求为稳定的高负载的业务时,即对象的业务请求的流量一直保持在高水位不断变化运行时,会产生大量的调用链路以及调用链路数据,且调用链路数据会有大量的同质性的业务请求。此时,若如相关技术中的采样概率不变的情况下,会导致业务端的负载压力比较大,而采用上述实施例的方法,会动态下调下个采样周期的采样概率,从而实现降低业务端的负载压力。
相应的,在对象的业务请求为周期性的业务,如业务请求的流量呈现周期性变化,例如一个持续推进的秒杀业务请求,到秒杀时间点时,对象的业务请求会规模性的涌入,此时,如果想要有效的监测秒杀时的流量,如相关技术中的固定不变的采样概率,明显不合理,会导致秒杀时业务端的负载压力过大,而采用上述实施例的方法,可以动态预估下个周期的采样概率,提升调用链路采样的合理性。
在步骤203中,基于控制量和目标调用链路数量计算出相应的采样调节概率。
其中,每个采样周期是以一定采样概率进行采样的,该控制量为需要进行调节的调用链路的数量,因此,可以根据控制量和当前采样周期下实际采样的目标调用链路数量计算出相应的采样调节概率。
在一实施方式中,由于该控制量的数值可以为正值或者负值,因此,该采样调节概率的数值也可以为正值或者负值,用于指示后续增加下个周期的采样概率或者减少下个周期的采样概率。
在一些实施方式中,基于控制量和目标调用链路数量计算出相应的采样调节概率,包括:计算该控制量和该目标调用链路数量的比值,并将该比值确定为采样调节概率。
其中,可以根据控制量和当前采样周期下实际采样的目标调用链路数量的比值,并将该比值确定为采样调节概率,例如该控制量为-50,该目标调用链路数量为1000时,那么可以计算出相应的采样调节概率为-0.05。
在步骤204中,通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
其中,由于该采样调节概率为基于当前采样周期下根据目标调节链路数量和预期调用链路数量之间的差异动态确定的,因此,可以根据当前采样周期的采样调节概率对当前采样周期的当前采样概率进行调节,确定出分布式网络系统中每个服务节点在下个采样周期的目标采样概率。
进一步的,在下个采样周期以该目标采样概率进行采样之后,会重复上述实施例,以新的采样周期作为当前采样周期继续进行动态计算,以此,可以不断的动态生成最有效的采样概率进行采样,保证每个采样周期均以最合适采样概率进行采样,提升调用链路采样的合理性,在减小业务端的负载压力同时,还可以降低存储端的存储压力。
为了更好的说明本申请实施例,请一并参阅图6所示,图6为本申请实施例提供的调用链路采样方法的另一架构图,图6中实线箭头表示调用链路数据的流动,虚线表示控制中心向业务侧下发目标采样概率的实现流程,在控制中心中,为实现基于头部采样,设置三个模块,计数器、计算器和控制器,其中该计数器用于记录当前采样周期采样的目标调用链路的链路数据(即Span)以及目标调用链路数量。将其存储在数据库中,计算器则根据计数器统计的链路数据计算下个采样周期的目标采样概率,并将其也存储至数据库中,最后,该控制器查询数据库中的目标采样概率,并将该目标采样概率分发到业务侧的每个微服务节点上。
在一些实施方式中,该通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率,包括:
(1)获取该当前采样周期下对应的当前采样概率;
(2)根据该采样调节概率对该当前采样概率进行调节,得到调节后的目标采样概率;
(3)将该目标采样概率作为每个服务节点在下个采样周期的采样概率。
其中,可以获取当前采样周期下对应的当前采样概率,该当前采样概率的取值为(0,1】,例如当前采样概率为1,该采样调节概率为-0.05,那么可以根据该采样调节概率对该当前采样概率进行调节,即将该当前采样概率1与所示采样调节概率进行求和,得到调节后的目标采样概率0.95。
进一步的,可以将该目标采样概率0.95作为每个服务节点在下个采样周期的采样概率进行调用链路的采样。
在一些实施方式中,该根据该采样调节概率对该当前采样概率进行调节,得到调节后的目标采样概率,包括:
(1.1)根据该采样调节概率对该当前采样概率进行调节,得到调节后的初始采样概率;
(1.2)获取下个采样周期所处的目标时间段,并根据该目标时间段确定相应的调节权重;
(1.3)根据该调节权重对该初始采样概率进行加权,得到加权后的目标采样概率。
其中,可以根据该采样调节概率对该当前采样概率进行调节,例如当前采样概率为1,该采样调节概率为-0.05,那么可以根据该采样调节概率对该当前采样概率进行调节,即将该当前采样概率1与所示采样调节概率进行求和,得到调节后的初始采样概率0.95。
进一步的,由于对象的业务请求的流量会有潮汐变化,例如白天高,晚上低,因此,不同的时间段,业务请求的流量也会不同,在本申请实施例中,可以根据不同的时间段设置不同的调节权重,例如,可以将一天的时间段分为高峰时间段和低峰时间段,该高峰时间段代表为对象的业务请求频繁发生的时间段,可以为白天时间段,例如,【7点,18点】时间段为高峰时间段,相应的,该低峰时间段代表为对象的业务请求不频繁发生的时间段,例如(18点,7点)时间段为低峰时间段。
基于此,获取确定下个采样周期所处的目标时间段,例如下个采样周期为12点至13点,处于高峰时间段的目标时间段,说明下个采样周期中业务请求比较多,为了避免业务侧的负载过重,可以适当降低一点采样概率,即可以确定相应的调节权重为-0.02,以此,可以根据该调节权重对该初始采样概率进行加权,得到加权后的目标采样概率0.93。
相应的,假设下个采样周期为0点至1点,处于低峰时间段的目标时间段,说明下个采样周期中业务请求比较少,为了避免采样的调用链路以及链路数据过少,导致故障定位困难,可以适当增加一点采样概率,即可以确定相应的调节权重为0.02,以此,可以根据该调节权重对该初始采样概率进行加权,得到加权后的目标采样概率为0.97。
在一些实施方式中,该将该目标采样概率作为每个服务节点在下个采样周期的采样概率,包括:
(2.1)获取预设链路类别数量,以及统计在该当前采样周期每个预设链路类别下的调用链路数量;
(2.2)根据该预期调用链路数量和该预设链路类别数量确定出相应的参考数量;
(2.3)确定调用链路数量大于等于该参考数量的第一预设链路类别,以及调用链路数量小于该参考数量的第二预设链路类别;
(2.4)将该第一预设链路类别在下个采样周期的采样概率设置为该目标采样概率,以及将该第二预设链路类别在下个采样周期的采样概率设置为预设采样概率。
其中,预设链路类别是按照业务请求路径确定的,例如业务请求路径为登录路径对应一个预设链路类别,业务请求路径为支付路径对应一个预设链路类别,基于登录路径进行采集的调用链路均属于同一个预设链路类别,相应的,基于支付路径进行采集的调用链路均属于同一个预设链路类别。因此,可以基于当前采样周期采样的目标调用链路数量进行归类,得到预设链路类别数量,例如,该预设链路类别数量为100个,相应的,本申请实施例还可以统计在当前采样周期下每个预设链路类别的调用链路数量,该调用链路数量越多,说明相应的预设链路类别被采样的次数越多,那么在下个采样周期下,被采样的概率越大。相反的,该调用链路数量越少,说明相应的预设链路类别被采样的次数越少,那么在下个采样周期下,被采样的概率越小。
为了更好的说明本申请实施例,一并结合最大最小公平原则进行解释,该最大最小公平性原则是:直观上,公平分享分配给每个对象想要的可以满足的最小需求,然后将没有使用的资源均匀的分配给需要大资源的对象,基于此,本申请实施例可以这样抽象出调用链路采集问题,在给定的目标调用链路数量和有限的预期调用链路数量,如何选择合理的调用链路集合,来保证存储的链路数据(即Span)是最多样化的(或者可以理解为更少的链路数据冗余),提升调用链路采集的合理性。
其中,本申请实施例基于上述最大最小公平原则的原理,为了保证下个采样周期下,每一个预设链路类别下至少有一条调用链路以及相应的链路数据被保存,需要设定参考数量,该参考数量为界定预设链路类别在下个采样周期是否会有一条调用链路以及相应的链路数据被保存的临界值。该参考数量可以基于预期调用链路数量和预设链路类别数量来确定出参考数量,具体的,可以根据该预期调用链路数量和预设链路类别数量的比值,生成相应的参考数量,例如,该预设调用链路数量为900,该预设链路类别数量为100,那么相应的参考数量为9。
进一步的,可以确定调用链路数量大于等于该参考数量的第一预设链路类别,即说明第一预设链路类别下的调用链路在下个采样周期的目标采样概率下,至少有一条调用链路以及相应的链路数据会被保存。相应的,可以确定调用链路数量小于该参考数量的第二预设链路类别,即说明第二预设链路类别下的调用链路在下个采样周期的目标采样概率下,可能会没有一条调用链路以及相应的链路数据被保存。
因此,可以将第一预设链路类别在下个采样周期的采样概率设置为目标采样概率,以该目标采样概率来采集第一预设链路类别下的调用链路,可以保证该第一预设链路类别至少可以采集到一条调用链路以及相应的链路数据。相反的,若将第二预设链路类别在下个采样周期的采样概率设置为目标采样概率,以该目标采样概率来采集第二预设链路类别下的调用链路,可能会使得该第二预设链路类别下,没有一条调用链路以及相应的链路数据被保存。以此,可以将第二预设链路类别在下个采样周期的采样概率设置为预设采样概率,该预设采样概率为比较高的采样概率,例如可以为1或者0.98等等,以此,保证第二预设链路类别在下个采样周期下,可以采集到至少一条调用链路以及相应的链路数据。保证下个采样周期存储的调用链路的链路数据是多样化,保证后续链路数据的信息熵是最大的,即采样收集的链路数据是最具有代表性的。
在一些实施方式中,该方法,还包括:将不属于预设链路类别的非预设链路类别在下个采样周期的采样概率设置为该目标采样概率。
其中,由于业务请求是实时变化的,因此,在下个采样周期,会出现不属于当前采样周期的预设链路类别的非预设链路类别,例如,当前采样周期的预设链路类别包括支付链路类别和登录链路类别两个类别,那么验证链路类别为不属于当前采样周期的预设链路类别,为非预设链路类别,为了实现对这些非预设链路类别下的调用链路进行采集,可以将该非预设链路类别在下个采样周期的采样概率设置为目标采样概率。
在一些实施方式中,该确定调用链路数量大于等于该参考数量的第一预设链路类别,以及调用链路数量小于该参考数量的第二预设链路类别,包括:
(3.1)基于最大最小公平原则,将每个调用链路数量与该参考数量进行对比;
(3.2)将调用链路数量大于等于该参考数量的预设链路类别确定为第一预设链路类别;
(3.3)将调用链路数量小于该参考数量的预设链路类别确定为第二预设链路类别。
其中,为了更好的说明本申请实施例,请一并参阅如下公式进行参考:
其中,该预设链路类别为K个类别,S为预期调用链路数量,每一个预设链路类别包含数量的调用链路数量,该/>,该S/K即为参考数量,该/>等于S/K,因此,基于最大最小公平原则,将每个调用链路数量与该参考数量进行对比,将调用链路数量大于等于该参考数量的预设链路类别确定为第一预设链路类别,也就是说将保留/>数量的预设链路类别确定为第一预设链路类别,将调用链路数量小于该参考数量的预设链路类别确定为第二预设链路类别,也就是说将保留/>的预设链路类别确定为第二预设链路类别。
在一些实施方式中,该通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率之前,还包括:
(4.1)获取采样的历史调用链路,并统计该历史调用链路相应的历史链路数据;
(4.2)当检测到该历史链路数据指示出现异常情况时,将每个服务节点在下个采样周期的采样概率设置为预设采样概率。
其中,针对性强的采样场景。业务方更多的时候是关心业务请求中的一些慢请求,异常请求和关键链路。所以我们应该进行业务请求的链路特异性采集。在相关技术中,这种场景一般是基于尾部的采样的执行更加方便。基于头部采样很难预测异常的发生。因此,本申请实施例以周期性的条件触发的方法,来使得基于头部采样能够完成对于系统的异常行为的有效采集。具体,在控制中心,会有按周期对分布式网络系统的业务请求流量的链路数据监测,包括请求耗时,响应状态码(状态码的职责是当客户端向服务器端发送请求时,描述返回的处理结果,借助状态码,用户可以知道服务器端是正常处理了请求还是出现了错误,例如404为错误代码)等数据的监测统计。凭借这些链路数据,用户可以在控制台模块配置关心的业务请求对应的全采样的触发条件,包括请求耗时,状态码等。
例如,以请求耗时大于预设时间的业务请求判定为慢请求,且慢请求数量大于预设阈值为异常情况进行说明,该预设时间为界定业务请求耗时是否正常的临界值,例如0.5秒,该预设阈值为界定调用链路采集是否异常的临界值,例如为5次,以此,可以获取采样的历史调用链路,该历史调用链路可以为包括当前采样周期的多个历史采样周期采集到的历史调用链路,例如,可以为包括当前采样周期的3个历史采样周期采集到的历史调用链路。
进一步的,可以统计该历史调用链路相应的历史链路数据,即历史Span,由于该历史Span中记录了每次服务的耗时时间,因此,可以统计出请求耗时大于预设时间的慢请求数量,进而,将该慢请求数量与预设阈值进行对比,当该慢请求数量大于预设阈值时,说明分布式网络系统中出现异常,为了实现故障快速定位,需要以全采样(即100%)的方式进行采样,即当检测到该历史调用链路指示出现异常情况时,将每个服务器节点在下个采样周期的采样概率设置预设采样概率,该预设采样概率可以为100%,相应的,当排查出故障之后,可以继续使用本申请实施例的方式对下个采样周期的目标采样概率进行动态计算。
在一些实施方式中,该通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率,包括:当检测到该历史链路数据中未出现异常情况时,通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
其中,当检测到该历史链路数据中未出现异常情况时,说明分布式网络系统未出现异常,可以按照上述实施例计算出的目标采样概率设置为每个服务节点在下个采样周期的采样概率。
由上述可知,本申请实施例通过获取当前采样周期采样的目标调用链路数量和预期调用链路数量;根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量;基于控制量和目标调用链路数量计算出相应的采样调节概率;通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。以此,根据当前采样周期采样的目标调用链路数量和预期调用链路数量之间的差异关系,确定出相应的控制量,并基于控制量与目标调用链路数量进一步的确定出采样调节概率,根据采样调节概率动态设置下个采样周期的目标采样概率,相对于相关技术中对于调用链路进行全部采样的方案,本申请实施例可以提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。
结合上述实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该调用链路采样装置具体集成在服务器中为例进行说明。
为了更好的说明本申请实施例,请一并参阅图7,图7为本申请实施例提供的调用链路采样方法的另一流程示意图。可以包括:
在步骤301中,服务器获取当前采样周期采样的目标调用链路数量和预期调用链路数量。
本申请实施例可以获取当前采样周期采样的全部调用链路的目标调用链路数量,该当前采样周期为一个固定的时钟周期,例如为10分钟、20分钟或者1小时内,该目标调用链路数量为在该当前采样周期内按照当前采样概率实际采样到的全部调用链路的数量,例如为1000条,该当前采样概率为当前采样周期的采样概率,可以为100%。
进一步的,该预期调用链路数量为对象对一个采样周期内采样的调用链路期望数量,例如为900条,该预期调用链路数量可以为对象配置的,也可以为根据每个业务侧的实际承载能力配置的。
在步骤302中,服务器根据目标调用链路数量和预期调用链路数量计算出相应的控制误差。
为了更好的说明本申请实施例,请一并参照对比例积分微分控制方法进行理解,该控制方法可以根据给定值(即预期调用链路数量)和实际输出值(即目标调用链路数量)构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制。基于此,可以根据该目标调用链路数量和预期调用链路数量计算出相应的控制误差,例如该目标调用链路数量为1000条,而该预期调用链路数量为900,那么可以将该预期调用链路数量减去该目标调用链路数量,计算出相应的控制误差为-100条。
在步骤303中,服务器获取预设比例,确定控制误差相应的积分数据和微分数据将预设比例、积分数据和微分数据进行线性处理,生成控制量。
其中,为了更好的说明本申请实施例,请一并参阅如下公式进行参考:
其中,该即为控制量-100,该/>即为控制误差,该/>即为积分数据,该d即为微分数据,该/>为预设比例,即常数,例如为0.5,该/>为常数,例如0.3,为采样周期次数,为使用的采样周期的次数。以此,获取预设比例/>,确定该控制误差/>的相应的积分数据,也可以理解为前t次采样周期的控制误差的平均值,确定该控制误差/>的相应的微分数据/>,该微分数据为了实现平滑,避免调整幅度过大,导致收敛过慢。
进一步的,基于上述公式,将该预设比例,积分数据/>和微分数据进行线性计算,生成最后的控制量,该控制量的数据值可以为正值或者负值,例如-50,后续用于调节下个采样周期的采样概率。即后续可以根据该控制量对下个采样周期的采样概率进行动态调整,使得下个采样周期的采样概率可以参考当前采样周期的实际采样情况进行动态调整,使得调用链路采样更合理。
在步骤304中,服务器计算控制量和目标调用链路数量的比值,并将比值确定为采样调节概率。
其中,可以根据控制量和当前采样周期下实际采样的目标调用链路数量的比值,并将该比值确定为采样调节概率,例如该控制量为-50,该目标调用链路数量为1000时,那么可以计算出相应的采样调节概率为-0.05。
在步骤305中,服务器获取当前采样周期下对应的当前采样概率,根据采样调节概率对当前采样概率进行调节,得到调节后的初始采样概率,获取下个采样周期所处的目标时间段,并根据目标时间段确定相应的调节权重,根据调节权重对初始采样概率进行加权,得到加权后的目标采样概率。
其中,可以根据该采样调节概率对该当前采样概率进行调节,例如当前采样概率为1,该采样调节概率为-0.05,那么可以根据该采样调节概率对该当前采样概率进行调节,即将该当前采样概率1与所示采样调节概率进行求和,得到调节后的初始采样概率0.95。
进一步的,由于对象的业务请求的流量会有潮汐变化,例如白天高,晚上低,因此,不同的时间段,业务请求的流量也会不同,在本申请实施例中,可以根据不同的时间段设置不同的调节权重,例如,可以将一天的时间段分为高峰时间段和低峰时间段,该高峰时间段代表为对象的业务请求频繁发生的时间段,可以为白天时间段,例如,【7点,18点】时间段为高峰时间段,相应的,该低峰时间段代表为对象的业务请求不频繁发生的时间段,例如(18点,7点)时间段为低峰时间段。
基于此,获取确定下个采样周期所处的目标时间段,例如下个采样周期为12点至13点,处于高峰时间段的目标时间段,说明下个采样周期中业务请求比较多,为了避免业务侧的负载过重,可以适当降低一点采样概率,即可以确定相应的调节权重为-0.02,以此,可以根据该调节权重对该初始采样概率进行加权,得到加权后的目标采样概率0.93。
在步骤306中,服务器获取预设链路类别数量,以及统计在当前采样周期每个预设链路类别下的调用链路数量,根据预期调用链路数量和预设链路类别数量确定出相应的参考数量。
在步骤307中,服务器基于最大最小公平原则,将每个调用链路数量与参考数量进行对比,将调用链路数量大于等于参考数量的预设链路类别确定为第一预设链路类别,将调用链路数量小于参考数量的预设链路类别确定为第二预设链路类别。
其中,预设链路类别是按照业务请求路径确定的,例如业务请求路径为登录路径对应一个预设链路类别,业务请求路径为支付路径对应一个预设链路类别,基于登录路径进行采集的调用链路均属于同一个预设链路类别,相应的,基于支付路径进行采集的调用链路均属于同一个预设链路类别。因此,可以基于当前采样周期采样的目标调用链路数量进行归类,得到预设链路类别数量,例如,该预设链路类别数量为100个,相应的,本申请实施例还可以统计在当前采样周期下每个预设链路类别的调用链路数量,该调用链路数量越多,说明相应的预设链路类别被采样的次数越多,那么在下个采样周期下,被采样的概率越大。相反的,该调用链路数量越少,说明相应的预设链路类别被采样的次数越少,那么在下个采样周期下,被采样的概率越小。
为了更好的说明本申请实施例,请一并参阅如下公式进行参考:
其中,该预设链路类别为K个类别,K为100,S为预期调用链路数量,S为900,每一个预设链路类别包含数量的调用链路数量,该/>,该S/K即为参考数量,该/>等于S/K,因此,基于最大最小公平原则,将每个调用链路数量与该参考数量进行对比,将调用链路数量大于等于该参考数量的预设链路类别确定为第一预设链路类别,也就是说将保留/>数量的预设链路类别确定为第一预设链路类别,将调用链路数量小于该参考数量的预设链路类别确定为第二预设链路类别,也就是说将保留/>的预设链路类别确定为第二预设链路类别。
在步骤308中,服务器将第一预设链路类别在下个采样周期的采样概率设置为目标采样概率,以及将第二预设链路类别在下个采样周期的采样概率设置为预设采样概率。
因此,可以将第一预设链路类别在下个采样周期的采样概率设置为目标采样概率0.93,以该目标采样概率0.93来采集第一预设链路类别下的调用链路,可以保证该第一预设链路类别至少可以采集到一条调用链路以及相应的链路数据。相反的,若将第二预设链路类别在下个采样周期的采样概率设置为目标采样概率0.93,以该目标采样概率0.93来采集第二预设链路类别下的调用链路,可能会使得该第二预设链路类别下,没有一条调用链路以及相应的链路数据被保存。以此,可以将第二预设链路类别在下个采样周期的采样概率设置为预设采样概率1,以此,保证第二预设链路类别在下个采样周期下,可以采集到至少一条调用链路以及相应的链路数据。保证下个采样周期存储的调用链路的链路数据是多样化,保证后续链路数据的信息熵是最大的,即采样收集的链路数据是最具有代表性的。
在步骤309中,服务器将不属于预设链路类别的非预设链路类别在下个采样周期的采样概率设置为目标采样概率。
其中,由于业务请求是实时变化的,因此,在下个采样周期,会出现不属于当前采样周期的预设链路类别的非预设链路类别,例如,当前采样周期的预设链路类别包括支付链路类别和登录链路类别两个类别,那么验证链路类别为不属于当前采样周期的预设链路类别,为非预设链路类别,为了实现对这些非预设链路类别下的调用链路进行采集,可以将该非预设链路类别在下个采样周期的采样概率设置为目标采样概率1。
为了更好的说明本申请实施例,请一并参阅图8进行参考,图8为本申请实施例提供的调用链路采样方法的时序示意图。
在相关技术中,对象可以向控制台模块为指定的服务下发固定的采样概率,控制台模块下发至控制中心,由控制中心控制存储规则,并向每个关联的服务下发该固定的采样概率,然后生效。
而在本申请实施例实施例中,如图8所示,在对象视角,本申请实施例动态的目标采样概率设置和固定采样概率前期设定是一样的,但是当采样概率来到控制中心之后,控制中心,会对该采样概率进行监测,然后进行周期性统计,根据统计结果,使用上述实施例的计算方式,动态计算出下个采样周期的目标采样概率,然后进行下发至对象业务(即业务侧),两者在使用上无法感受到区别,都是根据收到的概率进行链路数据的采样。
因此,本申请实施例改进了基于头部采样的盲目性。传统头部采样,设定采样概率是完全的经验值,或者是一个折中概率。在本申请实施例中,保证采样概率在头部生效的同时,利用控制中心,对系统的历史链路数据进行有效计算,动态生成最有效的目标采样概率。
弥补了基于尾部采样算法性能问题。基于尾部采样无法缓解调用链路收集对于服务性能的影响。而本申请实施例通过动态下发的机制,让目标采样概率能够有效的在业务端生效,解决了尾部采样的性能问题。
实现链路数据的信息熵的最大化。因为常规的请求,存在着大量重复数据,属于信息冗余。通过实现异常采样,关键路径采样,能够有效捕获特异性高的请求,提升数据有效性。同时降低链路数据的处理成本。
对于对象来说一致的体验,用户如果不关心特别调用链路,可以使用默认采样概率,或者仅开启固定概率的采样。如果对链路采样有特异性要求,则只需直接在控制台修改采样配置,使用体验上,没有任何变化。
由上述可知,本申请实施例本申请实施例通过获取当前采样周期采样的目标调用链路数量和预期调用链路数量;根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量;基于控制量和目标调用链路数量计算出相应的采样调节概率;通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。以此,根据当前采样周期采样的目标调用链路数量和预期调用链路数量之间的差异关系,确定出相应的控制量,并基于控制量与目标调用链路数量进一步的确定出采样调节概率,根据采样调节概率动态设置下个采样周期的目标采样概率,相对于相关技术中对于调用链路进行全部采样的方案,本申请实施例可以提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。
进一步的,本申请实施例还可以基于最大最小公平原则,基于预设链路类别的维度进行采样概率的设置,保证下个采样周期存储的调用链路的链路数据是多样化的,实现后续链路数据的信息熵是最大的,进一步提升调用链路采样的合理性。
为便于更好的实施本申请实施例提供的调用链路采样方法,本申请实施例还提供一种基于上述调用链路采样方法的装置。其中名词的含义与上述调用链路采样方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图9,图9为本申请实施例提供的调用链路采样装置的结构示意图,该调用链路采样装置应用于发送设备,其中该调用链路采样装置可以包括获取单元401、第一确定单元402、计算单元403及第二确定单元404等。
获取单元401,用于获取当前采样周期采样的目标调用链路数量和预期调用链路数量。
第一确定单元402,用于根据该目标调用链路数量和该预期调用链路数量之间的差异确定相应的控制量。
在一些实施方式中,该第一确定单元402,包括:
第一计算子单元(未标识),用于根据该目标调用链路数量和预期调用链路数量计算出相应的控制误差;
第二计算子单元(未标识),用于通过积分微分控制方法对该控制误差进行计算,得到计算后相应的控制量。
在一些实施方式中,该第二计算子单元(未标识),用于:
获取预设比例;
确定该控制误差相应的积分数据和微分数据;
将该预设比例、该积分数据和该微分数据进行线性处理,生成控制量。
计算单元403,用于基于该控制量和该目标调用链路数量计算出相应的采样调节概率。
第二确定单元404,用于通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
在一些实施例中,该第二确定单元404,包括:
获取子单元,用于获取该当前采样周期下对应的当前采样概率;
调节子单元,用于根据该采样调节概率对该当前采样概率进行调节,得到调节后的目标采样概率;
采样子单元,用于将该目标采样概率作为每个服务节点在下个采样周期的采样概率。
在一些实施例中,该调节子单元(未标识),用于:
根据该采样调节概率对该当前采样概率进行调节,得到调节后的初始采样概率;
获取下个采样周期所处的目标时间段,并根据该目标时间段确定相应的调节权重;
根据该调节权重对该初始采样概率进行加权,得到加权后的目标采样概率。
在一些实施例中,该采样子单元(未标识),用于:
获取子模块,用于获取预设链路类别数量,以及统计在该当前采样周期每个预设链路类别下的调用链路数量;
第一确定子模块(未标识),用于根据该预期调用链路数量和该预设链路类别数量确定出相应的参考数量;
第二确定子模块(未标识),用于确定调用链路数量大于等于该参考数量的第一预设链路类别,以及调用链路数量小于该参考数量的第二预设链路类别;
第一设置子模块(未标识),用于将该第一预设链路类别在下个采样周期的采样概率设置为该目标采样概率,以及将该第二预设链路类别在下个采样周期的采样概率设置为预设采样概率。
在一些实施例中,该第二确定子模块(未标识),用于:
基于最大最小公平原则,将每个调用链路数量与该参考数量进行对比;
将调用链路数量大于等于该参考数量的预设链路类别确定为第一预设链路类别;
将调用链路数量小于该参考数量的预设链路类别确定为第二预设链路类别。
在一些实施例中,该装置,还包括第二设置子模块(未标识),用于:
将不属于预设链路类别的非预设链路类别在下个采样周期的采样概率设置为该目标采样概率。
在一些实施例中,该装置,还包括设置单元(未标识),用于:
获取采样的历史调用链路,并统计该历史调用链路相应的历史链路数据;
当检测到该历史链路数据指示出现异常情况时,将每个服务节点在下个采样周期的采样概率设置为预设采样概率。
在一些实施例中,该第二确定单元404,还用于:
当检测到该历史链路数据中未出现异常情况时,通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
在一些实施例中,该第二确定单元404,用于:
计算该控制量和该目标调用链路数量的比值,并将该比值确定为采样调节概率。
以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由上述可知,本申请实施例通过获取单元401获取当前采样周期采样的目标调用链路数量和预期调用链路数量;第一确定单元402根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量;计算单元403基于控制量和目标调用链路数量计算出相应的采样调节概率;第二确定单元404通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。以此,根据当前采样周期采样的目标调用链路数量和预期调用链路数量之间的差异关系,确定出相应的控制量,并基于控制量与目标调用链路数量进一步的确定出采样调节概率,根据采样调节概率动态设置下个采样周期的目标采样概率,相对于相关技术中对于调用链路进行全部采样的方案,本申请实施例可以提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。
本申请实施例还提供一种计算机设备,如图10所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图10中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器501是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监测。可选的,处理器501可包括一个或多个处理核心;可选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、对象界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
计算机设备还包括给各个部件供电的电源503,可选的,电源503可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
计算机设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与对象设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现前述实施例提供的各种方法步骤,如下:
获取当前采样周期采样的目标调用链路数量和预期调用链路数量;
根据该目标调用链路数量和该预期调用链路数量之间的差异确定相应的控制量;
基于该控制量和该目标调用链路数量计算出相应的采样调节概率;
通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对队列处理方法的详细描述,此处不再赘述。
由上述可知,本申请实施例的计算机设备可以通过获取当前采样周期采样的目标调用链路数量和预期调用链路数量;根据目标调用链路数量和预期调用链路数量之间的差异确定相应的控制量;基于控制量和目标调用链路数量计算出相应的采样调节概率;通过采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。以此,根据当前采样周期采样的目标调用链路数量和预期调用链路数量之间的差异关系,确定出相应的控制量,并基于控制量与目标调用链路数量进一步的确定出采样调节概率,根据采样调节概率动态设置下个采样周期的目标采样概率,相对于相关技术中对于调用链路进行全部采样的方案,本申请实施例可以提升调用链路采样的合理性,减小业务端的负载压力以及存储端的存储压力。
本申请实施例还提供一种计算机设备,该计算机设备可以为终端,如图11所示,其示出了本申请实施例所涉及的终端的结构示意图,具体来讲:
该计算机设备可以包括射频(RF,Radio Frequency)电路601、包括有一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(WiFi,Wireless Fidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图11中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路601可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、对象身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS ,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及信息检索。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。
输入单元603可用于接收输入的数字或字符信息,以及产生与对象设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元603可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集对象在其上或附近的触摸操作(比如对象使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测对象的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器608,并能接收处理器608发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元603还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元604可用于显示由对象输入的信息或提供给对象的信息以及终端的各种图形对象接口,这些图形对象接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板提供相应的视觉输出。虽然在图11中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等; 至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路606、扬声器,传声器可提供对象与终端之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如另一终端,或者将音频数据输出至存储器602以便进一步处理。音频电路606还可能包括耳塞插孔,以提供外设耳机与终端的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块607可以帮助对象收发电子邮件、浏览网页和访问流式媒体等,它为对象提供了无线的宽带互联网访问。虽然图11示出了WiFi模块607,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器608是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监测。可选的,处理器608可包括一个或多个处理核心;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、对象界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。
终端还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源609还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器608会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器608来运行存储在存储器602中的应用程序,从而实现各种功能:
获取当前采样周期采样的目标调用链路数量和预期调用链路数量;
根据该目标调用链路数量和该预期调用链路数量之间的差异确定相应的控制量;
基于该控制量和该目标调用链路数量计算出相应的采样调节概率;
通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对文件传输方法的详细描述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种调用链路采样方法中的步骤。例如,该指令可以执行如下步骤:
获取当前采样周期采样的目标调用链路数量和预期调用链路数量;
根据该目标调用链路数量和该预期调用链路数量之间的差异确定相应的控制量;
基于该控制量和该目标调用链路数量计算出相应的采样调节概率;
通过该采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的各种可选实现方式中提供的方法。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种调用链路采样方法中的步骤,因此,可以实现本申请实施例所提供的任一种调用链路采样方法中所能实现的有益效果,详见前面的实施例,在此不再赘述。
应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本公开实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
以上对本申请实施例所提供的一种调用链路采样方法、装置、存储介质及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种调用链路采样方法,其特征在于,包括:
获取当前采样周期采样的目标调用链路数量和预期调用链路数量;
根据所述目标调用链路数量和所述预期调用链路数量之间的差异确定相应的控制量;
基于所述控制量和所述目标调用链路数量计算出相应的采样调节概率;
通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
2.根据权利要求1所述的调用链路采样方法,其特征在于,所述根据所述目标调用链路数量和所述预期调用链路数量之间的差异确定相应的控制量,包括:
根据所述目标调用链路数量和预期调用链路数量计算出相应的控制误差;
通过积分微分控制方法对所述控制误差进行计算,得到计算后相应的控制量。
3.根据权利要求2所述的调用链路采样方法,其特征在于,通过积分微分控制方法对所述控制误差进行计算,得到计算后相应的控制量,包括:
获取预设比例;
确定所述控制误差相应的积分数据和微分数据;
将所述预设比例、所述积分数据和所述微分数据进行线性处理,生成控制量。
4.根据权利要求1所述的调用链路采样方法,其特征在于,所述通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率,包括:
获取所述当前采样周期下对应的当前采样概率;
根据所述采样调节概率对所述当前采样概率进行调节,得到调节后的目标采样概率;
将所述目标采样概率作为每个服务节点在下个采样周期的采样概率。
5.根据权利要求4所述的调用链路采样方法,其特征在于,所述根据所述采样调节概率对所述当前采样概率进行调节,得到调节后的目标采样概率,包括:
根据所述采样调节概率对所述当前采样概率进行调节,得到调节后的初始采样概率;
获取下个采样周期所处的目标时间段,并根据所述目标时间段确定相应的调节权重;
根据所述调节权重对所述初始采样概率进行加权,得到加权后的目标采样概率。
6.根据权利要求4所述的调用链路采样方法,其特征在于,所述将所述目标采样概率作为每个服务节点在下个采样周期的采样概率,包括:
获取预设链路类别数量,以及统计在所述当前采样周期每个预设链路类别下的调用链路数量;
根据所述预期调用链路数量和所述预设链路类别数量确定出相应的参考数量;
确定调用链路数量大于等于所述参考数量的第一预设链路类别,以及调用链路数量小于所述参考数量的第二预设链路类别;
将所述第一预设链路类别在下个采样周期的采样概率设置为所述目标采样概率,以及将所述第二预设链路类别在下个采样周期的采样概率设置为预设采样概率。
7.根据权利要求6所述的调用链路采样方法,其特征在于,所述确定调用链路数量大于等于所述参考数量的第一预设链路类别,以及调用链路数量小于所述参考数量的第二预设链路类别,包括:
基于最大最小公平原则,将每个调用链路数量与所述参考数量进行对比;
将调用链路数量大于等于所述参考数量的预设链路类别确定为第一预设链路类别;
将调用链路数量小于所述参考数量的预设链路类别确定为第二预设链路类别。
8.根据权利要求7所述的调用链路采样方法,其特征在于,所述方法,还包括:
将不属于预设链路类别的非预设链路类别在下个采样周期的采样概率设置为所述目标采样概率。
9.根据权利要求1所述的调用链路采样方法,其特征在于,所述通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率之前,还包括:
获取采样的历史调用链路,并统计所述历史调用链路相应的历史链路数据;
当检测到所述历史链路数据指示出现异常情况时,将每个服务节点在下个采样周期的采样概率设置为预设采样概率。
10.根据权利要求9所述的调用链路采样方法,其特征在于,所述通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率,包括:
当检测到所述历史链路数据中未出现异常情况时,通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
11.根据权利要求1至10任一项所述的调用链路采样方法,其特征在于,所述基于所述控制量和所述目标调用链路数量计算出相应的采样调节概率,包括:
计算所述控制量和所述目标调用链路数量的比值,并将所述比值确定为采样调节概率。
12.一种调用链路采样装置,其特征在于,包括:
获取单元,用于获取当前采样周期采样的目标调用链路数量和预期调用链路数量;
第一确定单元,用于根据所述目标调用链路数量和所述预期调用链路数量之间的差异确定相应的控制量;
计算单元,用于基于所述控制量和所述目标调用链路数量计算出相应的采样调节概率;
第二确定单元,用于通过所述采样调节概率确定出每个服务节点在下个采样周期的目标采样概率。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至11任一项所述的调用链路采样方法。
14.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一项所述的调用链路采样方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311319802.4A CN117097635B (zh) | 2023-10-12 | 2023-10-12 | 调用链路采样方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311319802.4A CN117097635B (zh) | 2023-10-12 | 2023-10-12 | 调用链路采样方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117097635A true CN117097635A (zh) | 2023-11-21 |
CN117097635B CN117097635B (zh) | 2024-01-05 |
Family
ID=88780509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311319802.4A Active CN117097635B (zh) | 2023-10-12 | 2023-10-12 | 调用链路采样方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117097635B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190171169A1 (en) * | 2017-12-05 | 2019-06-06 | Cisco Technology, Inc. | Dynamically adjusting sample rates in a machine learning-based network assurance system |
CN110647437A (zh) * | 2019-07-25 | 2020-01-03 | 平安科技(深圳)有限公司 | 基于pid控制器调整cpu使用率的方法、装置、终端及介质 |
CN113067731A (zh) * | 2021-03-18 | 2021-07-02 | 北京金山云网络技术有限公司 | 节点带宽调整方法、装置、设备和存储介质 |
CN113141315A (zh) * | 2021-04-20 | 2021-07-20 | 上海卓易科技股份有限公司 | 一种拥塞控制方法及设备 |
CN114925313A (zh) * | 2022-03-26 | 2022-08-19 | 浪潮云信息技术股份公司 | 一种基于分布式链路追踪动态采样率的自适应方法及系统 |
CN115525002A (zh) * | 2021-06-24 | 2022-12-27 | 中移(苏州)软件技术有限公司 | 一种数据采集控制方法、服务器、客户端及存储介质 |
CN115542722A (zh) * | 2022-09-30 | 2022-12-30 | 青岛海信日立空调系统有限公司 | 一种pid控制系统及控制方法 |
CN115883343A (zh) * | 2022-12-07 | 2023-03-31 | 天翼云科技有限公司 | 一种微服务的链路追踪方法及系统 |
CN116366560A (zh) * | 2023-03-29 | 2023-06-30 | 中国工商银行股份有限公司 | 流量转发控制方法、装置、设备和介质 |
-
2023
- 2023-10-12 CN CN202311319802.4A patent/CN117097635B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190171169A1 (en) * | 2017-12-05 | 2019-06-06 | Cisco Technology, Inc. | Dynamically adjusting sample rates in a machine learning-based network assurance system |
CN110647437A (zh) * | 2019-07-25 | 2020-01-03 | 平安科技(深圳)有限公司 | 基于pid控制器调整cpu使用率的方法、装置、终端及介质 |
CN113067731A (zh) * | 2021-03-18 | 2021-07-02 | 北京金山云网络技术有限公司 | 节点带宽调整方法、装置、设备和存储介质 |
CN113141315A (zh) * | 2021-04-20 | 2021-07-20 | 上海卓易科技股份有限公司 | 一种拥塞控制方法及设备 |
CN115525002A (zh) * | 2021-06-24 | 2022-12-27 | 中移(苏州)软件技术有限公司 | 一种数据采集控制方法、服务器、客户端及存储介质 |
CN114925313A (zh) * | 2022-03-26 | 2022-08-19 | 浪潮云信息技术股份公司 | 一种基于分布式链路追踪动态采样率的自适应方法及系统 |
CN115542722A (zh) * | 2022-09-30 | 2022-12-30 | 青岛海信日立空调系统有限公司 | 一种pid控制系统及控制方法 |
CN115883343A (zh) * | 2022-12-07 | 2023-03-31 | 天翼云科技有限公司 | 一种微服务的链路追踪方法及系统 |
CN116366560A (zh) * | 2023-03-29 | 2023-06-30 | 中国工商银行股份有限公司 | 流量转发控制方法、装置、设备和介质 |
Non-Patent Citations (1)
Title |
---|
夏冬雪;阳树洪;杨斌;: "基于灰预测的PID主动队列管理算法", 计算机工程与设计, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
CN117097635B (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102245025B1 (ko) | 메모리 반환 방법 및 장치 | |
CN108959000B (zh) | 一种服务器压力测试方法、系统及终端 | |
CN107800651B (zh) | 应用程序关闭方法、装置、存储介质和电子设备 | |
CN108471376B (zh) | 数据处理方法、装置及系统 | |
CN106557407B (zh) | 一种设备负载的监控方法和装置 | |
WO2015081801A1 (en) | Method, server, and system for information push | |
CN104850434A (zh) | 多媒体资源下载方法及装置 | |
CN111078556B (zh) | 应用测试方法及装置 | |
WO2014169661A1 (en) | Method and system for processing report information | |
CN107734618B (zh) | 应用程序关闭方法、装置、存储介质和电子设备 | |
CN112749074B (zh) | 一种测试用例推荐方法以及装置 | |
CN108039956A (zh) | 应用监控方法、系统和计算机可读存储介质 | |
CN114840565A (zh) | 抽样查询方法、装置、电子设备及计算机可读存储介质 | |
CN117370053A (zh) | 一种面向信息系统业务运行全景监测方法及系统 | |
CN117097635B (zh) | 调用链路采样方法、装置、存储介质及设备 | |
CN115118636B (zh) | 网络抖动状态的确定方法、装置、电子设备及存储介质 | |
CN116800638A (zh) | 网络检测方法、装置、电子设备及存储介质 | |
CN115080363B (zh) | 一种基于业务日志的系统容量评估方法及装置 | |
CN111359210A (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN109145182B (zh) | 数据采集方法、装置、计算机设备及系统 | |
CN104125202B (zh) | 权重调整方法、装置和终端设备 | |
CN113852450A (zh) | 一种消息推送反馈方法、装置、电子设备和存储介质 | |
CN112667868A (zh) | 一种数据检测方法以及装置 | |
CN113254090B (zh) | 一种应用管理方法、装置及投影设备 | |
CN114546773A (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 |