[发明专利]一种微服务链路采样方法、装置、设备及可读存储介质有效
申请号: | 202111400526.5 | 申请日: | 2021-11-19 |
公开(公告)号: | CN114172823B | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 吕宪国;吴栋 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | H04L43/08 | 分类号: | H04L43/08;H04L41/0677 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 吴磊 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 微服 务链路 采样 方法 装置 设备 可读 存储 介质 | ||
本申请公开了一种微服务链路采样方法、装置、设备及可读存储介质,方法包括:预先根据目标应用的类型及目标应用中各微服务的功能,分别为各微服务设置对应的采样率;在目标应用中的当前微服务接收到请求时进行流量劫持,并根据当前微服务对应的采样率、当前微服务对应的历史采样请求数及历史请求总数判断是否对请求进行采样;若是,则从劫持的流量中对请求进行链路数据采集。本申请公开的上述技术方案,通过分别为各微服务设置对应的采样率而实现细粒度及灵活地对目标应用中的各微服务进行链路数据采集,从而有效解决因过度采样而导致业务请求时延加大和资源占用过高与采样不足而导致无法准确定位性能瓶颈间的矛盾。
技术领域
本申请涉及微服务技术领域,更具体地说,涉及一种微服务链路采样方法、装置、设备及可读存储介质。
背景技术
随着云原生技术的不断发展,应用程序被分解为多个微服务来进行设计,这使得每个微服务从开发到交付整条链路上都是独立进行的,这不仅加快了微服务的迭代和交互效率,也提高了应用的扩展性和隔离性。但同时微服务的增加会导致业务访问时的访问链路变得复杂,一旦出现问题,就不好追踪和定位。因此,则需要对微服务进行链路追踪。
目前,在对微服务进行链路追踪时,是对整个链路上的所有微服务设置同样的采样率,并根据采样率来对各微服务的链路进行采样,以进行链路追踪。但是,如果采样率设置过大,则会导致对链路数据的过度采集,从而导致业务请求时延加大和资源占用过高,而采样率设置过小,则会导致采样不足,从而无法准确的定位性能瓶颈。
综上所述,如何灵活地对微服务链路进行采样,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种微服务链路采样方法、装置、设备及可读存储介质,用于灵活地对微服务链路进行采样。
为了实现上述目的,本申请提供如下技术方案:
一种微服务链路采样方法,包括:
预先根据目标应用的类型及所述目标应用中各微服务的功能,分别为各所述微服务设置对应的采样率;
在所述目标应用中的当前微服务接收到请求时进行流量劫持,并根据所述当前微服务对应的采样率、所述当前微服务对应的历史采样请求数及历史请求总数判断是否对所述请求进行采样;
若是,则从劫持的流量中对所述请求进行链路数据采集。
优选的,在预先根据目标应用的类型及所述目标应用中各微服务的功能,分别为各所述微服务设置对应的采样率之前,还包括:
根据各所述微服务所在机器的CPU类型,通过sidecar模式分别为各所述微服务注入对应的代理;
在所述目标应用中的当前微服务接收到请求时进行流量劫持,并根据所述当前微服务对应的采样率、所述当前微服务对应的历史采样请求数及历史请求总数判断是否对所述请求进行采样,包括:
在所述目标应用中的当前微服务接收到请求时,利用所述当前微服务中的代理进行流量劫持,并利用所述代理根据所述当前微服务对应的采样率、所述当前微服务对应的历史采样请求数及历史请求总数,判断是否对所述请求进行采样;
从劫持的流量中对所述请求进行链路数据采集,包括:
利用所述代理从劫持的流量中对所述请求进行链路数据采集。
优选的,利用所述代理根据所述当前微服务对应的采样率、所述当前微服务对应的历史采样请求数及历史请求总数,判断是否对所述请求进行采样,包括:
利用所述代理中的采样率控制器将所述请求中的请求采样率设置为所述当前微服务对应的采样率,并将所述请求传递给计数器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111400526.5/2.html,转载请声明来源钻瓜专利网。