遥测指标实时增强处理及装置的制作方法

摘要: 本技术涉及大数据处理,具体而言,涉及一种遥测指标实时增强处理方法及装置。背景技术:1、在大规模分布式系统的可观测性建设中,原始遥测指标数据通常缺乏业务上下文信息...
遥测指标实时增强处理及装置的制作方法

本技术涉及大数据处理,具体而言,涉及一种遥测指标实时增强处理方法及装置。

背景技术:

1、在大规模分布式系统的可观测性建设中,原始遥测指标数据通常缺乏业务上下文信息,需通过查询外部元数据服务进行实时增强。现有方案采用同步查询方式,每遇到一个数据点即调用一次元数据api,在每秒数百万数据点的场景下,api调用频繁导致处理延迟严重累积,且对元数据服务造成巨大压力。为缓解该问题,部分方案引入本地缓存存储查询结果,但所有缓存条目使用固定ttl且到期后被动删除,大量缓存同时失效时易引发缓存雪崩;同时,对于缓存中不存在的键,缺乏有效的空结果缓存和容错机制,查询请求反复穿透至后端api,进一步加剧性能劣化。此外,现有方案对多个数据点的查询请求缺乏批量合并机制,仍按逐字段方式处理,无法利用元数据api的批量查询能力,网络往返开销随数据量线性增长。因此,亟需一种能够降低api调用频率、减少查询延迟、避免缓存异常影响系统稳定性的遥测指标实时增强处理方法。

技术实现思路

1、为了克服现有技术中的上述不足,本技术的目的在于提供一种遥测指标实时增强处理方法,包括以下步骤:

2、获取包括多个待查询项的待查询项列表,每个所述待查询项为一个遥测指标数据点及其对应的需要查询的元数据字段的组合;

3、查询第一级本地缓存,获取所述待查询项列表中能够在所述第一级本地缓存中命中的所述待查询项所对应的第一查询结果;

4、对于在所述第一级本地缓存中未命中的所述待查询项,查询第二级分布式缓存,获取第二查询结果,并检测缓存条目的剩余生存时间,若所述剩余生存时间小于预设的刷新阈值,则对所述缓存条目进行更新;

5、对于在所述第一级本地缓存和所述第二级分布式缓存中均未命中的所述待查询项,将对应的字段值按照预设的分块大小分批调用元数据api进行批量查询,将获得的批量查询结果写入所述第一级本地缓存和所述第二级分布式缓存;

6、根据所述第一查询结果、所述第二查询结果和所述批量查询结果,对所述待查询项列表中的所述遥测指标数据点进行增强处理,输出增强后的指标数据。

7、在一些可能的实现方式中,所述获取包括多个待查询项的待查询项列表的步骤,包括:

8、接收原始指标数据批次,所述原始指标数据批次中包含至少一个原始遥测指标数据点;

9、对所述原始遥测指标数据点进行数据去重、一致性哈希采样和基数控制中的至少一种数据质量控制处理,得到待增强数据点列表;

10、遍历所述待增强数据点列表中的所有所述遥测指标数据点,提取需要查询的所述元数据字段,将每个所述遥测指标数据点及其对应的需要查询的所述元数据字段组合为所述待查询项,并对所有待查询项进行去重合并处理,生成所述待查询项列表。

11、在一些可能的实现方式中,所述对所述缓存条目进行更新的步骤,包括:

12、在返回当前所述第二查询结果的情况下,启动异步任务尝试获取所述缓存条目对应的分布式锁;

13、若成功获取所述分布式锁,则执行缓存更新操作,并在更新完成后释放所述分布式锁;

14、若未能获取所述分布式锁,则不执行缓存更新操作。

15、在一些可能的实现方式中,所述执行缓存更新操作的步骤,包括:

16、执行缓存更新操作过程中,在更新缓存之前再次检查所述缓存条目是否已被其他节点更新;

17、当缓存更新操作执行失败时,保留所述缓存条目中已有的旧数据。

18、在一些可能的实现方式中,所述对所述缓存条目进行更新的步骤,还包括:

19、对于成功查询得到的缓存条目设置第一生存时间,对于查询失败得到的缓存条目设置第二生存时间;所述第一生存时间大于所述第二生存时间。

20、在一些可能的实现方式中,所述对于成功查询得到的缓存条目设置第一生存时间,对于查询失败得到的缓存条目设置第二生存时间的步骤,包括:

21、对于成功查询得到的缓存条目,在第一时长范围内随机确定一时长作为所述第一生存时间;

22、对于查询失败得到的缓存条目,在第二时长范围内随机确定一时长作为所述第二生存时间。

23、在一些可能的实现方式中,所述对于在所述第一级本地缓存和所述第二级分布式缓存中均未命中的所述待查询项,将对应的字段值按照预设的分块大小分批调用元数据api进行批量查询的步骤,包括:

24、将在所述第一级本地缓存和所述第二级分布式缓存中均未命中的所述待查询项对应的字段值汇总为待查询字段集合;

25、按照预设的分块大小将所述待查询字段集合划分为至少一个字段子集;

26、针对每个字段子集,分别调用元数据api进行一次批量查询,每个字段子集对应一次api调用;

27、将各次批量查询获得的查询结果汇总后,统一写入所述第一级本地缓存和所述第二级分布式缓存。

28、在一些可能的实现方式中,所述对所述待查询项列表中的所述遥测指标数据点进行增强处理的步骤,包括:

29、根据运行环境的中央处理器资源自适应确定工作线程池中的工作线程数量,处通过所述工作线程池并行对所述待查询项列表中的所述遥测指标数据点进行增强处理。

30、在一些可能的实现方式中,所述对所述待查询项列表中的遥测指标数据点进行增强处理的步骤,包括:

31、根据所述待查询项列表中的所述遥测指标数据点中的单个指标进行求和、平均值、计数、最小值、最大值、95分位数和99分位数计算中的至少一种,和/或根据所述待查询项列表中的所述遥测指标数据点中的多个指标进行求和、求差、相乘和相除计算中的至少一种。

32、本技术的另一目的在于提供一种遥测指标实时增强处理装置,所述遥测指标实时增强处理装置包括:

33、数据获取模块,用于获取包括多个待查询项的待查询项列表,每个所述待查询项为一个遥测指标数据点及其对应的需要查询的元数据字段的组合;

34、第一查询模块,用于查询第一级本地缓存,获取所述待查询项列表中能够在所述第一级本地缓存中命中的所述待查询项所对应的第一查询结果;

35、第二查询模块,用于对于在所述第一级本地缓存中未命中的所述待查询项,查询第二级分布式缓存,获取第二查询结果,并检测缓存条目的剩余生存时间,若所述剩余生存时间小于预设的刷新阈值,则对所述缓存条目进行更新;

36、第三查询模块,用于对于在所述第一级本地缓存和所述第二级分布式缓存中均未命中的所述待查询项,将对应的字段值按照预设的分块大小分批调用元数据api进行批量查询,将获得的批量查询结果写入所述第一级本地缓存和所述第二级分布式缓存;

37、数据增强模块,用于根据所述第一查询结果、所述第二查询结果和所述批量查询结果,对所述待查询项列表中的所述遥测指标数据点进行增强处理,输出增强后的指标数据。

38、本技术的另一目的在于提供一种电子设备,包括处理器及机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被所述处理器执行时,实现本技术提供的遥测指标实时增强处理方法。

39、本技术的另一目的在于提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被至少一个处理器执行时,实现本技术提供的遥测指标实时增强处理方法。

40、相对于现有技术而言,本技术具有以下有益效果:

41、本技术提供的遥测指标实时增强处理方法及装置,通过两级缓存架构的逐级查询,大部分元数据查询请求能够在微秒级完成,显著降低了整体处理延迟;同时,针对两级缓存均未命中的待查询项,通过将字段值按预设分块大小分批调用元数据api进行批量查询并将结果回填至两级缓存,既大幅减少了对外部服务的调用次数,又为后续相同字段的查询提供了缓存命中基础,从而形成缓存查询与回填的良性闭环;此外,在查询第二级分布式缓存时检测缓存条目的剩余生存时间并在小于刷新阈值时触发更新,有效避免了缓存失效后的查询延迟抖动,进一步保障了系统处理性能的稳定性,能够实现高效、低延迟的实时增强处理。