CN114925313A - 一种基于分布式链路追踪动态采样率的自适应方法及系统 - Google Patents
一种基于分布式链路追踪动态采样率的自适应方法及系统 Download PDFInfo
- Publication number
- CN114925313A CN114925313A CN202210304645.9A CN202210304645A CN114925313A CN 114925313 A CN114925313 A CN 114925313A CN 202210304645 A CN202210304645 A CN 202210304645A CN 114925313 A CN114925313 A CN 114925313A
- Authority
- CN
- China
- Prior art keywords
- qps
- module
- sampling rate
- sampling
- function
- 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.)
- Pending
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于分布式链路追踪动态采样率的自适应方法及系统,属于云计算领域;所述的方法具体步骤如下:S1使用QFS作为变量构件QFS‑sample采样数函数;S2根据生产场景确定采样数指标计算方法推算QPS‑sample采样数函数;S3根据QPS‑sample函数计算出新的采样率,并应用于分布式链路追踪系统;本发明方法基于此QPS按照QPS‑sample函数,计算采样率,周期性更新采样率,实现了分布式链路追踪系统的采样率自适应,既保证采样样本的均衡与充分,又降低了对系统负载的额外不必要开销,使得分布式链路追踪系统的性能得到优化。
Description
技术领域
本发明公开一种基于分布式链路追踪动态采样率的自适应方法及系统,涉及云计算技术领域。
背景技术
随着云计算以及分布式应用的不断深入发展,业务系统的架构经过多年演变日益复杂,各种应用演变成服务的形式运行于不同平台。分布式架构的兴起,使得服务支撑了更大吞吐量,带来了更高的执行效率,并具有高可用的能力,提高了整个系统的扩展性。但同时架构的复杂性为运维带来了诸多困难,服务间的调用关系成几何关系增长。分布式链路追踪系统的出现,以可视化的方式还原了请求链路的所有细节,通过聚合分析采集的指标数据,准确展现了业务系统的链路状态以及性能指标。
分布式链路系统对准确理解系统行为,降低运维复杂度,带来了诸多益处。但分布式链路系统的数据采集自身会对业务系统的负载及存储带来额外压力,现有分布式链路系统采用固定采样率,灵活度欠缺。如何在保证有效监控业务系统的同时,使分布式链路系统带来的负载压力处于合理范围,就成为需要解决的问题。
故现发明一种基于分布式链路追踪动态采样率的自适应方法及系统,以解决上述问题。
发明内容
本发明针对现有技术的问题,提供一种基于分布式链路追踪动态采样率的自适应方法及系统,所采用的技术方案为:一种基于分布式链路追踪动态采样率的自适应方法,所述的方法具体步骤如下:
S1使用QFS作为变量构件QFS-sample采样数函数;
S2根据生产场景确定采样数指标计算方法推算QPS-sample采样数函数;
S3根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统。
所述S2根据生产场景确定采样数指标计算方法推算QPS-sample采样数函数的具体步骤如下:
S201根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值;
S202结合服务的每秒采样数/QPS推QPS-sqmple的函数,计算采样数值;
S203采样率按照设定的QPS数组进行周期性计算。
所述S201根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值的具体步骤如下:
S2011在低数据流量场景中设置QSF最小阈值;
S2012在常规数据流量场景中设置QPS目标值;
S2013在高数据流量场景中设置最大阈值采样数。
所述S3根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统的具体步骤如下:
S301根据服务每秒请求数,确定请求周期计算采样率,根据时间间隔计算 QPS;
S302按照QPS-sample函数计算出采样率,将结果存入分布式链路追踪系统的缓存中,按照请求周期更新数值;
S303利用分布式链路追踪系统读取缓存中的采样率;
S304下发采样率参数到探针端。
所述S302对处于计算过程中的采样率的请求组数进行加锁。
一种基于分布式链路追踪动态采样率的自适应系统,所述的系统具体包括函数构建模块、函数推算模块和采样应用模块:
函数构建模块:使用QFS作为变量构件QFS-sample采样数函数;
函数推算模块:根据生产场景确定采样数指标计算方法推算QPS-sample 采样数函数;
采样应用模块:根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统。
所述函数推算模块具体包括阈值设定模块、采样处理模块和数组计算模块:
阈值设定模块:根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值;
采样处理模块:结合服务的每秒采样数/QPS推QPS-sqmple的函数,计算采样数值;
数组计算模块:采样率按照设定的QPS数组进行周期性计算。
所述阈值设定模块具体包括最小阈值模块、目标阈值模块和最大阈值模块:
最小阈值模块:在低数据流量场景中设置QSF最小阈值;
目标阈值模块:在常规数据流量场景中设置QPS目标值;
最大阈值模块:在高数据流量场景中设置最大阈值采样数。
所述采样应用模块具体包括间隔计算模块、周期更新模块、缓存读取模块和参数下发模块:
间隔计算模块:根据服务每秒请求数,确定请求周期计算采样率,根据时间间隔计算QPS;
周期更新模块:按照QPS-sample函数计算出采样率,将结果存入分布式链路追踪系统的缓存中,按照请求周期更新数值;
缓存读取模块:利用分布式链路追踪系统读取缓存中的采样率;
参数下发模块:下发采样率参数到探针端。
所述周期更新模块对处于计算过程中的采样率的请求组数进行加锁。
本发明的有益效果为:本发明方法基于此QPS按照QPS-sample函数,计算采样率,周期性更新采样率,实现了分布式链路追踪系统的采样率自适应,既保证采样样本的均衡与充分,又降低了对系统负载的额外不必要开销,使得分布式链路追踪系统的性能得到优化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法实施例的动态采样率自适应流程示意图;图2是本发明方法实施例的动态采样率应用流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一:
一种基于分布式链路追踪动态采样率的自适应方法,所述的方法具体步骤如下:
S1使用QFS作为变量构件QFS-sample采样数函数;
S2根据生产场景确定采样数指标计算方法推算QPS-sample采样数函数;
S3根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统;
首先,如图1所示,按照S1使用QPS作为变量构建QPS-sample采样数函数,QPS(Query Per Second)即为每秒请求数,反映了服务器在一秒钟的时间内处理了多少请求;从而得出采样率的计算方法,即每秒采样数/QPS;
QPS计算完成后,根据QPS-sample函数计算出新的采样率,每次请求数循环满100次时会生成新的采样率,将新的采样率应用于分布式链路追踪系统,故采样率以请求数100周期性变化,达到自适应目的;在一个100次请求的周期内,采样率固定为一个数值,此数值为相对稳定;
最初状态下,由于QPS数值未知,默认设定初始采样率为100%,即前100 次请求将会被全部采集,当100次请求记录完毕,则会按照既定算法进行采样率计算;初始采样率是根据最初100次请求样本的触发时间计算出来的,动态采样率计算会存在100次请求的滞后,前100次请求全部采集对业务系统性能影响较小,并且通过前100次请求全部全部采集计算出QPS更加准确;
本发明方法基于此QPS按照QPS-sample函数,计算采样率,周期性更新采样率,实现了分布式链路追踪系统的采样率自适应,既保证采样样本的均衡与充分,又降低了对系统负载的额外不必要开销,使得分布式链路追踪系统的性能得到优化;
进一步的,所述S2根据生产场景确定采样数指标计算方法推算QPS-sample 采样数函数的具体步骤如下:
S201根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值;
S202结合服务的每秒采样数/QPS推QPS-sqmple的函数,计算采样数值;
S203采样率按照设定的QPS数组进行周期性计算;
根据生产环境实际业务中的不同场景,确定三种采样数指标计算方法,即使用最小阈值、目标值、最大阈值分别计算,通过三种应用场景下的采样样本的计算得出QPS-sample采样数函数;
基于以上数值,设定QPS-sample函数为二次函数,如下:
QPS2*a+QPS*b+c=sample
根据低数据流量、常规数据流量、高数据流量场景三种场景阈值设定,分别使用低数据流量场景下的QPS阈值Thresholdlower以及采样率100%,常规数据流量场景下的QPS值x以及采样率y,高数据流量下的QPS阈值Thresholdupper以及采样数值上限Thresholdupper,即设定设定Thresholdlower=20,Thresholdupper=500,x=100,y=50,根据计算后,最终得到QPS-sample函数如下:
-0.00042*QPS2+0.42*QPS+8.232=sample
其次,周期性进行QPS计算,定义大小为n的数组存储每次请求的触发时间,每当请求到来,将请求时间依次存储于数组中,当n请求到来时计算一次QPS,使用第n次请求的触发时间与第一请求的触发时间之差作为时间间隔 interval,故QPS的数值即为n/interval;当第n+1次请求到来时,循环覆盖数组的第一位置;
进一步的,所述S201根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值的具体步骤如下:
S2011在低数据流量场景中设置QSF最小阈值;
S2012在常规数据流量场景中设置QPS目标值;
S2013在高数据流量场景中设置最大阈值采样数;
对于低数据流量的应用场景,设置QPS最小阈值;业务应用的QPS小于最小阈值的时候,为了保证该场景下采样公平并且样本充分,采样率确定为100%;设定最小阈值为Thresholdlower,当QPS<Thresholdlower时,采样数设置为与当前QPS相等,即采样数等于QPS,故采样率为100%;
对于常规数据流量的应用场景,设置QPS目标值;根据业务系统日均QPS 计算,设定日均QPS为x,结合系统负载情况以及网络带宽影响,采样数为y;即为QPS在x的情况下,采样数为y,故采样率为(y/x)%;
对于高数据流量的应用场景,设置QPS最大阈值;在该情况下,为防止采样数随QPS的增加,对服务器负载带来过大压力,采样数仅提供一个较大固定值即可满足样本充分的需求;在QPS到达最大阈值的情况下,QPS-采样数函数的导数为0,采样数不随QPS的继续增长而增长,固定于预设的数值;设定最大阈值为Thresholdupper,当QPS>Thresholdupper时,采样数值固定为Threshold upper,采样数的极限值为limQPS→Threshold sample=Thresholdupper,得出采样率为Thresholdupper/QPS;
进一步的,所述S3根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统的具体步骤如下:
S301根据服务每秒请求数,确定请求周期计算采样率,根据时间间隔计算 QPS;
S302按照QPS-sample函数计算出采样率,将结果存入分布式链路追踪系统的缓存中,按照请求周期更新数值;
S303利用分布式链路追踪系统读取缓存中的采样率;
S304下发采样率参数到探针端;
再进一步的,所述S302对处于计算过程中的采样率的请求组数进行加锁;
如图2所示,基于QPS,使用QPS-sqmple函数计算生成的采样率,使其在分布式链路追踪系统中的应用有以下步骤:
根据服务每秒请求数,假设以100次请求为周期计算采样率,当第100 次请求到来时,使用第100次请求的触发时间与第一请求的触发时间之差作为时间间隔,计算QPS;
按照QPS-sample函数计算出采样率,将结果存入分布式链路追踪系统的缓存中,按照每100次请求的周期更新数值;当采样率处于计算过程中时,为避免并发问题,需要对请求数组进行加锁;
分布式链路追踪系统读取缓存中的采样率,使用探针端上报的链路数据中的traceId的哈希码的绝对值,设定对10000进行取模运算,若数值小于缓存中的采样率,则进行采样,若数值大于缓存中的采样率,则直接丢弃数据;
更进一步,为减少探针端的负载压力,可通过下发采样率参数到探针端,探针端降低上报频率,待采样率上升时,探针端提高上报频率;探针端与服务端同时基于采样率调整采样策略,根据负载压力灵活调整;
实施例二:
一种基于分布式链路追踪动态采样率的自适应系统,所述的系统具体包括函数构建模块、函数推算模块和采样应用模块:
函数构建模块:使用QFS作为变量构件QFS-sample采样数函数;
函数推算模块:根据生产场景确定采样数指标计算方法推算QPS-sample 采样数函数;
采样应用模块:根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统;
进一步的,所述函数推算模块具体包括阈值设定模块、采样处理模块和数组计算模块:
阈值设定模块:根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值;
采样处理模块:结合服务的每秒采样数/QPS推QPS-sqmple的函数,计算采样数值;
数组计算模块:采样率按照设定的QPS数组进行周期性计算;
进一步的,所述阈值设定模块具体包括最小阈值模块、目标阈值模块和最大阈值模块:
最小阈值模块:在低数据流量场景中设置QSF最小阈值;
目标阈值模块:在常规数据流量场景中设置QPS目标值;
最大阈值模块:在高数据流量场景中设置最大阈值采样数;
进一步的,所述采样应用模块具体包括间隔计算模块、周期更新模块、缓存读取模块和参数下发模块:
间隔计算模块:根据服务每秒请求数,确定请求周期计算采样率,根据时间间隔计算QPS;
周期更新模块:按照QPS-sample函数计算出采样率,将结果存入分布式链路追踪系统的缓存中,按照请求周期更新数值;
缓存读取模块:利用分布式链路追踪系统读取缓存中的采样率;
参数下发模块:下发采样率参数到探针端;
再进一步的,所述周期更新模块对处于计算过程中的采样率的请求组数进行加锁。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于分布式链路追踪动态采样率的自适应方法,其特征是所述的方法具体步骤如下:
S1使用QFS作为变量构件QFS-sample采样数函数;
S2根据生产场景确定采样数指标计算方法推算QPS-sample采样数函数;
S3根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统。
2.根据权利要求1所述的方法,其特征是所述S2根据生产场景确定采样数指标计算方法推算QPS-sample采样数函数的具体步骤如下:
S201根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值;
S202结合服务的每秒采样数/QPS推QPS-sqmple的函数,计算采样数值;
S203采样率按照设定的QPS数组进行周期性计算。
3.根据权利要求2所述的方法,其特征是所述S201根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值的具体步骤如下:
S2011在低数据流量场景中设置QSF最小阈值;
S2012在常规数据流量场景中设置QPS目标值;
S2013在高数据流量场景中设置最大阈值采样数。
4.根据权利要求3所述的方法,其特征是所述S3根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统的具体步骤如下:
S301根据服务每秒请求数,确定请求周期计算采样率,根据时间间隔计算QPS;
S302按照QPS-sample函数计算出采样率,将结果存入分布式链路追踪系统的缓存中,按照请求周期更新数值;
S303利用分布式链路追踪系统读取缓存中的采样率;
S304下发采样率参数到探针端。
5.根据权利要求4所述的方法,其特征是所述S302对处于计算过程中的采样率的请求组数进行加锁。
6.一种基于分布式链路追踪动态采样率的自适应系统,其特征是所述的系统具体包括函数构建模块、函数推算模块和采样应用模块:
函数构建模块:使用QFS作为变量构件QFS-sample采样数函数;
函数推算模块:根据生产场景确定采样数指标计算方法推算QPS-sample采样数函数;
采样应用模块:根据QPS-sample函数计算出新的采样率,并应用于分布式链路追踪系统。
7.根据权利要求6所述的系统,其特征是所述函数推算模块具体包括阈值设定模块、采样处理模块和数组计算模块:
阈值设定模块:根据应用系统低数据流量、常规数据流量、高数据流量三种场景设定阈值;
采样处理模块:结合服务的每秒采样数/QPS推QPS-sqmple的函数,计算采样数值;
数组计算模块:采样率按照设定的QPS数组进行周期性计算。
8.根据权利要求7所述的系统,其特征是所述阈值设定模块具体包括最小阈值模块、目标阈值模块和最大阈值模块:
最小阈值模块:在低数据流量场景中设置QSF最小阈值;
目标阈值模块:在常规数据流量场景中设置QPS目标值;
最大阈值模块:在高数据流量场景中设置最大阈值采样数。
9.根据权利要求8所述的系统,其特征是所述采样应用模块具体包括间隔计算模块、周期更新模块、缓存读取模块和参数下发模块:
间隔计算模块:根据服务每秒请求数,确定请求周期计算采样率,根据时间间隔计算QPS;
周期更新模块:按照QPS-sample函数计算出采样率,将结果存入分布式链路追踪系统的缓存中,按照请求周期更新数值;
缓存读取模块:利用分布式链路追踪系统读取缓存中的采样率;
参数下发模块:下发采样率参数到探针端。
10.根据权利要求9所述的系统,其特征是所述周期更新模块对处于计算过程中的采样率的请求组数进行加锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210304645.9A CN114925313A (zh) | 2022-03-26 | 2022-03-26 | 一种基于分布式链路追踪动态采样率的自适应方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210304645.9A CN114925313A (zh) | 2022-03-26 | 2022-03-26 | 一种基于分布式链路追踪动态采样率的自适应方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114925313A true CN114925313A (zh) | 2022-08-19 |
Family
ID=82804490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210304645.9A Pending CN114925313A (zh) | 2022-03-26 | 2022-03-26 | 一种基于分布式链路追踪动态采样率的自适应方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925313A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097635A (zh) * | 2023-10-12 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 调用链路采样方法、装置、存储介质及设备 |
-
2022
- 2022-03-26 CN CN202210304645.9A patent/CN114925313A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117097635A (zh) * | 2023-10-12 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 调用链路采样方法、装置、存储介质及设备 |
CN117097635B (zh) * | 2023-10-12 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 调用链路采样方法、装置、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114925313A (zh) | 一种基于分布式链路追踪动态采样率的自适应方法及系统 | |
CN112398700B (zh) | 一种服务降级方法及装置、存储介质、计算机设备 | |
CN112188503A (zh) | 一种应用于蜂窝网络的基于深度强化学习的动态多信道接入方法 | |
CN115633380B (zh) | 一种考虑动态拓扑的多边缘服务缓存调度方法和系统 | |
CN115883343A (zh) | 一种微服务的链路追踪方法及系统 | |
CN110913239A (zh) | 一种精细化的移动边缘计算的视频缓存更新方法 | |
CN112181498B (zh) | 并发控制方法、装置和设备 | |
CN109560978B (zh) | 网络流量检测方法、装置及系统和计算机可读存储介质 | |
CN112383486A (zh) | 基于租约的分布式对象存储服务质量保证方法及系统 | |
CN111580943A (zh) | 一种面向低时延边缘计算中多跳卸载的任务调度方法 | |
CN116866950A (zh) | 一种基于深度学习的无线网络资源优化系统及方法 | |
CN111371624A (zh) | 一种基于环境反馈的战术通信网关键节点识别方法 | |
CN114722529B (zh) | 一种基于人工智能的推杆设备寿命预测方法及系统 | |
CN113472427B (zh) | 一种基于流量预测的卫星网络队列管理方法 | |
CN114500561A (zh) | 电力物联网网络资源分配决策方法、系统、设备及介质 | |
CN114650297A (zh) | 一种多微服务调用环境下自适应自动缩放方法及系统 | |
CN112329923A (zh) | 一种模型压缩方法、装置、电子设备及可读存储介质 | |
CN113238854A (zh) | 一种线程数自动调节的方法、装置、设备及可读介质 | |
CN109685101A (zh) | 一种多维数据自适应采集方法及系统 | |
CN111708832A (zh) | 区块链网络中调整出块难度的方法、计算机介质和区块链网络 | |
CN110750755A (zh) | 通信设备的扩容方法、装置、终端及存储介质 | |
CN117221122B (zh) | 一种基于带宽预分配的异步分层联合学习训练方法 | |
CN117472589B (zh) | 一种园区网络服务管理方法及系统 | |
CN112231137B (zh) | 一种分布式存储数据的重平衡方法及其系统 | |
CN112118581B (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 |