一种面向大规模微服务的接口监控自动配置与执行方法
文献发布时间:2024-04-18 20:02:18
技术领域
本发明涉及一种接口监控自动配置与执行方法,特别涉及了一种面向大规模微服务的接口监控自动配置与执行方法。
背景技术
随着互联网技术的迅猛发展,单体架构的缺点日益明显。为了改善单体架构紧耦合、部署成本高等问题,微服务架构应运而生。
在微服务架构下,可以针对特定服务进行发布,影响小、风险小、成本低。可以频繁发布版本,快速交付需求。微服务架构有这些优势的同时,也为我们带来一些挑战。应用由之前的单体变为几十个到几百个不同的微服务,而且频繁发布版本。使得微服务的接口监控面临以下两方面挑战:目前行业内的接口监控,大多是由开发人员手工配置的。这种接口监控配置方法,面对大规模微服务时,将成为开发人员的灾难。几百个微服务需要配置接口监控,且每次版本发布后,接口监控都需随版本发布而更新。接口监控配置工作的工作量将呈几何倍数增长。同时行业内的接口监控执行方法,大多为无序执行。这种监控执行方法,面对大规模微服务时,重要服务的问题可能被延误发现,重要接口的问题也可能被延误发现。
发明内容
本发明的目的是:通过提供一种面向大规模微服务的接口监控自动配置与执行方法,用于解决上述背景技术中的传统的微服务架构存在的技术问题。
一方面,本发明实施例提供了一种面向大规模微服务的接口监控自动配置与执行方法,包括:
获取线上日志,并从所述线上日志中提取预设时段的单服务线上流量数据;
根据代码覆盖情况对提取的预设时段的所述单服务线上流量数据进行筛选,并得到最终集合;
获取所述最终集合中的流量数据,并根据所述最终集合中的流量数据对服务系统中各服务的接口监控进行配置;
根据配置后的各所述服务的接口监控确定各所述服务的优先级和各所述服务对应的接口监控的优先级,并根据确定的各所述服务的优先级和各所述服务对应的接口监控的优先级进行优先监控。
进一步的,根据代码覆盖情况对提取的预设时段的所述单服务线上流量数据进行筛选,并得到最终集合前,还包括:
预先设置敏感条件;
根据预先设置的敏感条件对预设时段的单服务线上流量数据进行敏感数据筛选;
将筛选出的预设时段的单服务线上流量数据的敏感数据进行替换。
进一步的,根据代码覆盖情况对提取的预设时段的所述单服务线上流量数据进行筛选,并得到最终集合时,包括:
回放预设时段的所述单服务线上流量,并预先设置阈值H;
将预设时段的所述单服务线上流量进行分割,并分割成若干集合流量;
将若干所述集合流量进行串行流量回访,并获取若干所述集合流量中的若干个代码覆盖行数;
基于权重Jaccard计算若干所述集合流量中两两所述集合流量之间的相似度,并选取若干所述集合流量中相似度最低的两个集合流量计入目标集合;
基于贪心算法选取若干所述集合流量中剩余的所述集合流量与目标集合相似度最低的集合流量,合并至所述目标集合中,直至满足大于阈值H的指定条件,其中,
若选取剩余的所述集合流量与所述目标集合之间的相似度小于阈值H时,则合并至所述目标集合中;
若选取剩余的所述集合流量与所述目标集合之间的相似度大于阈值H时,则对所述目标集合去重,并得到最终合集。
进一步的,基于权重Jaccard计算若干所述集合流量中两两所述集合流量之间的相似度时,包括:
获取若干所述集合流量Sn,Sn=S1,S2…Sn;
获取若干所述集合流量Sn中的代码覆盖行数Lm,Lm=L1,L2…Lm;
获取单个所述集合流量Sn中代码覆盖行数Lm的出次数W,W=1,2…W,并将单个所述集合流量Sn中代码覆盖行数Lm的出次数W确定为该单个所述集合流量Sn的权重,设定W(S
基于公式
获取若干所述集合流量中Sn和Sj的相似度;
其中,Sn为一个集合流量,Sj为另一个集合流量,i表示为代码覆盖行总数,min函数和max函数分别代表获得两个参数的较小一个和较大一个。
进一步的,将预设时段的所述单服务线上流量进行分割,并分割成若干集合流量时,包括:若干所述的集合流量的流量为预设时段的所述单服务线上流量的5%。
进一步的,将若干所述集合流量进行串行流量回访,并获取若干所述集合流量中的若干个代码覆盖行数时,不对获取的若干所述代码覆盖行数去重。
进一步的,获取所述最终集合中的流量数据,并根据所述最终集合中的流量数据对服务系统中各服务的接口监控进行配置时,包括:
获取所述最终集合中的流量的请求地址,并根据所述最终集合中的流量的请求地址对所述接口监控的请求地址进行配置;
获取所述最终集合中的流量的请求方法,并根据所述最终集合中的流量的请求方法对所述接口监控的请求方法进行配置;
获取所述最终集合中的流量的请求入参,并根据所述最终集合中的流量的请求入参对所述接口监控的请求入参进行配置;
将状态码200对所述接口监控的状态码校验值进行配置。
进一步的,根据配置后的各所述服务的接口监控确定各所述服务的优先级和各所述服务对应的接口监控的优先级时,包括:
获取配置后的所述接口监控的调用情况,并根据配置后的所述接口监控的调用情况生成微服务系统拓扑结构图;
根据生成的所述微服务系统拓扑结构图确定所述各所述服务的优先级和各所述服务对应的接口监控的优先级。
进一步的,根据生成的所述微服务系统拓扑结构图确定所述各所述服务的优先级时,包括:
将生成的所述微服务系统拓扑结构图抽象为有向图,并将所述服务定义为有向图中的节点;
获取所述有向图中所述服务被指向箭头的个数,并将所述有向图中服务被指向箭头的个数设定为所述服务的入度;
获取所述有向图中服务指出箭头的个数,并将所述有向图中服务指出箭头的个数设定为所述服务的出度;
并基于公式
D
获取所述服务的度数;
其中,D为所述服务的度数,I为所述服务的入度,O为所述服务的出度,i=1,2…i;
根据各所述服务的度数进行倒序,并根据倒序排名确定各所述服务的优先级。
进一步的,根据生成的所述微服务系统拓扑结构图确定各所述服务对应的接口监控的优先级时,包括:
获取所述接口监控在所述目标集合中出现的次数,并将所述接口监控在所述目标集合中出现的次数确定为所述接口监控的重要度;
计算所述最终集合中各所述接口监控的重要度;
根据最终集合中各所述接口监控的重要度进行各所述接口监控的倒序排序,并根据各所述接口监控的排名确定各所述接口监控的优先级。
进一步的,根据确定的各所述服务的优先级和各所述服务对应的接口监控的优先级进行优先监控时,包括:
获取优先级高于各所述服务优先级的服务,并将该所述服务优先进行监控;
若各所述服务优先级相同时,则选定优先级高于各所述服务对应的接口监控优先级的服务的接口监控,并将该所述接口监控对应的服务优先进行监控。
本发明实施例一种面向大规模微服务的接口监控自动配置与执行方法与现有技术相比,其有益效果在于:通过获取线上日志并提取预设时段的单服务线上流量数据,可以获得关键的实时流量信息。这有助于系统管理员更好地了解服务之间的通信和资源消耗情况。其次,通过结合代码覆盖情况对提取的流量数据进行筛选,可以有效降低噪声,提高数据质量,确保只监控最关键的服务和接口。这有助于减轻监控系统的负担,提高性能。进一步,配置各服务的接口监控根据实际情况自动进行,减少了手动干预,提高了配置的一致性。此外,此外,采用有向图中的节点度数,来评定服务优先级。相较于人工评定优先级,通过节点度数评定服务优先级,更加准确。同时,当服务变更时,确保了服务优先级可实时更新。最后通过确定服务和接口监控的优先级,能够更有针对性地监控关键服务,确保其正常运行,从而有效的提高了系统的可靠性和稳定性。
具体而言,本发明实施例一种面向大规模微服务的接口监控自动配置与执行方法中,其采用基于权重的Jaccard计算流量集合的相似度。相较于传统Jaccard系数,考虑了代码行重复次数对集合相似度的影响。使得相似度计算更加准确,同时通过采用贪心算法,每次选取与目标集合T相似度最低的集合。相较于随机选取集合,本发明能选取最优集合组合。
附图说明
图1是本发明实施例中的有向的示意图一种面向大规模微服务的接口监控自动配置与执行方法的流程框图。
图2是本发明实施例中的微服务系统拓扑结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整地传达给本领域的技术人员。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
如图1所示,本发明实施例的一种面向大规模微服务的接口监控自动配置与执行方法,包括:
步骤S100、获取线上日志,并从线上日志中提取预设时段的单服务线上流量数据。
步骤S200、根据代码覆盖情况对提取的预设时段的单服务线上流量数据进行筛选,并得到最终集合。
步骤S300、获取最终集合中的流量数据,并根据最终集合中的流量数据对服务系统中各服务的接口监控进行配置。
步骤S400、根据配置后的各服务的接口监控确定各服务的优先级和各服务对应的接口监控的优先级,并根据确定的各服务的优先级和各服务对应的接口监控的优先级进行优先监控。
可以看出的是,在步骤S100中,通过收集线上日志,并从这些日志中提取特定时段的单服务线上流量数据,以构建接口监控的基础数据。这一步骤有助于实时监控服务的性能和可用性,因为它捕捉了服务在特定时段的实际流量情况,为接口监控提供了准确的数据来源。其次,在步骤S200中通过采用代码覆盖情况进行数据筛选,目的是从提取的流量数据中筛选出具有重要参考价值的数据,并形成最终集合。这个筛选过程可根据服务的关键性和代码覆盖率,仅保留对性能和可用性监控有价值的数据,从而减少不必要的数据冗余,提高监控的精确性和效率。随后的步骤S300将获取的最终集合中的流量数据用于配置服务系统中各个服务的接口监控。这一步骤的好处在于,有效的实现了自动化的监控配置,根据实际流量数据自动调整监控参数,以适应系统的实际运行情况。这种自适应性的监控配置有助于减少手动配置的复杂性,确保监控策略与实际需求保持一致。最后,在步骤S400中根据已配置的接口监控,确定各服务的优先级和各服务对应的接口监控的优先级。这有助于确保关键服务得到更频繁和优先的监控,以及在资源有限的情况下,分配监控资源以满足系统中各个服务的需求。这一步骤提高了监控的灵活性和智能性,确保重要服务始终处于监控的焦点之下。
可以理解的是,S100步骤通过获取线上日志并提取预设时段的单服务线上流量数据,实现对服务性能和可用性的实时监控。这个步骤通过分析线上流量数据,能够帮助系统管理员快速捕获并理解服务的运行情况,识别潜在的问题和瓶颈,从而有助于提前采取必要的措施来维护和优化系统的性能。随后的S200步骤引入代码覆盖情况的筛选,以过滤并精选出最有价值的流量数据,形成最终集合。这个筛选过程可以减少数据冗余和无效信息,确保只有对性能监控有意义的数据得到保留。这有助于提高监控的效率,减少存储和处理的负担,同时保持监控数据的质量和可用性。其次,S300步骤将最终集合中的流量数据用于自动配置服务系统中各服务的接口监控。这自动化的监控配置过程可以根据实际流量数据自适应地调整监控参数,确保监控策略与实际需求保持一致。这降低了人工配置的工作量,提高了配置的准确性。最后,在S400步骤,根据已配置的接口监控,确定各服务的优先级和各服务对应的接口监控的优先级。这有助于确保关键服务得到更频繁和优先的监控,以及在资源有限的情况下,分配监控资源以满足系统中各个服务的需求。这一步骤提高了监控的灵活性和智能性,确保重要服务始终处于监控的焦点之下。
优选的是,预设时段为从检测日起7天的历史单服务线上流量数据。
具体而言,在本申请的一些实施例中,根据代码覆盖情况对提取的预设时段的单服务线上流量数据进行筛选,并得到最终集合前,还包括:预先设置敏感条件。根据预先设置的敏感条件对预设时段的单服务线上流量数据进行敏感数据筛选。将筛选出的预设时段的单服务线上流量数据的敏感数据进行替换。
可以看出的是,通过考虑了敏感数据的筛选,将事先定义的敏感条件,可以有效识别和过滤出携带敏感信息的流量数据。随后,筛选出的敏感数据将会被替换,以确保隐私数据不会被泄露。
可以理解的是,通过预先设置敏感条件的使用有助于有效地辨别出可能包含敏感信息的数据,减少了潜在的隐私泄露风险。其次,对筛选出的敏感数据进行替换,进一步增加了数据隐私的保护,确保了用户隐私的安全性。这不仅有助于遵守隐私法规和合规要求,还能建立用户信任,同时保持了数据的有效性,为后续监控和分析提供了可用的数据。
具体而言,在本申请的一些实施例中,根据代码覆盖情况对提取的预设时段的单服务线上流量数据进行筛选,并得到最终集合时,包括:回放预设时段的单服务线上流量,并预先设置阈值H。将预设时段的单服务线上流量进行分割,并分割成若干集合流量。将若干集合流量进行串行流量回访,并获取若干集合流量中的若干个代码覆盖行数。基于权重Jaccard计算若干集合流量中两两集合流量之间的相似度,并选取若干集合流量中相似度最低的两个集合流量计入目标集合。基于贪心算法选取若干集合流量中剩余的集合流量与目标集合相似度最低的集合流量,合并至目标集合中,直至满足大于阈值H的指定条件,其中:若选取剩余的集合流量与目标集合之间的相似度小于阈值H时,则合并至目标集合中。若选取剩余的集合流量与目标集合之间的相似度大于阈值H时,则对目标集合去重,并得到最终合集。
可以看出的是,通过回放预设时段的单服务线上流量,将数据分割成多个集合流量,并计算它们之间的相似度。通过基于权重Jaccard计算相似度,选取相似度最低的两个集合流量并合并至目标集合,然后使用贪心算法逐步合并剩余的集合流量,直到达到指定条件。这种方法有助于筛选出具有代表性且丰富多样性的数据,提高了监控数据的多样性,有助于更全面地检测接口性能和问题。此外,通过设置阈值H,可以在数据选择过程中进行控制,确保最终合集的质量和相关性。
可以理解的是,通过回放预设时段的单服务线上流量并进行数据分割,以及串行流量回访,可以获取更全面的代码覆盖行数,这有助于更全面地检测接口性能和问题,进而提高了接口监控的准确性。这意味着系统开发人员和运维团队能够更好地了解接口的行为,更快地发现和诊断潜在问题,有助于提高系统的整体质量。其次,采用权重Jaccard相似度计算和贪心算法来选择集合流量,使得最终集合包含多样性的数据。相似度计算有助于筛选出最不相似的流量,从而更好地代表了不同的使用情况和场景。这种多样性的监控数据可以帮助开发人员更好地了解系统在不同情况下的性能表现,为性能优化和问题排查提供更广泛的参考。此外,设置阈值H和进行流量合并的策略确保了最终合集的相关性。如果相似度低于阈值H,那么流量将被合并,这有助于减少冗余数据和降低数据噪音。而如果相似度高于阈值H,目标集合将进行去重处理,避免了冗余数据的存在。这样的数据处理方式有助于保持监控数据的整洁性和精确性。
具体而言,在本申请的一些实施例中,基于权重Jaccard计算若干集合流量中两两集合流量之间的相似度时,包括:获取若干集合流量Sn,Sn=S1,S2…Sn。获取若干集合流量Sn中的代码覆盖行数Lm,Lm=L1,L2…Lm。获取单个集合流量Sn中代码覆盖行数Lm的出次数W,W=1,2…W,并将单个集合流量Sn中代码覆盖行数Lm的出次数W确定为该单个集合流量Sn的权重,设定W(S
基于公式
获取若干集合流量中Sn和Sj的相似度。其中,Sn为一个集合流量,Sj为另一个集合流量,i表示为代码覆盖行总数,min函数和max函数分别代表获得两个参数的较小一个和较大一个。
具体而言,在本申请的一些实施例中,将预设时段的单服务线上流量进行分割,并分割成若干集合流量时,包括:若干的集合流量的流量为预设时段的单服务线上流量的5%。
可以理解的是,通过将预设时段的单服务线上流量分割成若干集合流量,其中每个集合流量仅占总流量的5%,实现了数据的分段管理。这有助于降低数据处理的复杂性,减小了单个数据集的规模,提高了数据处理和分析的效率。而分割数据集合的方式使数据更容易管理和处理,有助于减少计算和存储资源的需求。同时,将大数据集合分割成小的集合流量还有助于分布式处理,提高了数据处理的并行性,从而减少了处理时间。这种有效的数据分割策略有助于在接口监控系统中更高效地应用大规模数据,从而有效的提高了响应速度,缩短了问题的诊断和处理时间
具体而言,在本申请的一些实施例中,将若干集合流量进行串行流量回访,并获取若干集合流量中的若干个代码覆盖行数时,不对获取的若干代码覆盖行数去重。
可以理解的是,通过完整地捕获并保留了若干集合流量中的代码覆盖行数,而没有进行去重操作。确保了每个代码覆盖行数都被纳入分析,无论它们是否出现在多个集合流量中。这有助于细致入微地了解每个代码覆盖行数的实际覆盖情况,包括其在不同流量集合中的出现频率和上下文。同时,通过不去重操作,可以更全面地分析代码覆盖情况,尤其是对于那些出现在多个流量集合中的代码行。这有助于检测潜在的问题、异常或重复的覆盖情况,为接口监控的质量提升提供了更多的数据支持
具体而言,在本申请的一些实施例中,获取最终集合中的流量数据,并根据最终集合中的流量数据对服务系统中各服务的接口监控进行配置时,包括:获取最终集合中的流量的请求地址,并根据最终集合中的流量的请求地址对接口监控的请求地址进行配置。获取最终集合中的流量的请求方法,并根据最终集合中的流量的请求方法对接口监控的请求方法进行配置。获取最终集合中的流量的请求入参,并根据最终集合中的流量的请求入参对接口监控的请求入参进行配置。将状态码200对接口监控的状态码校验值进行配置。
可以看出的是,通过获取流量的请求地址,可以配置接口监控以确保检查特定的请求地址是否符合预期。接着,获取流量的请求方法,允许配置接口监控以验证请求方法是否与要求的方法匹配。此外,获取流量的请求入参允许配置接口监控以检查输入参数是否满足规范。最后,通过配置状态码200,可以设定状态码校验值,以验证接口是否返回了成功的响应状态。
可以理解的是,配置过程允许系统针对不同接口的具体需求进行精准的设置,以确保监控目标的准确性。这有助于捕获特定问题和异常情况,而不会产生误报或漏报。其次,通过配置请求地址、请求方法和请求入参,系统可以强化接口监控的安全性。它可以检查接口是否受到不当请求的影响,帮助防止恶意行为。同时,状态码200的配置允许系统专注于成功响应的监控,减少了对不必要的失败状态的监控,提高了监控的效率。最后,通过配置校验值,系统可以迅速识别状态码异常的接口,帮助工程师快速诊断问题并采取纠正措施。
参阅图2所示,在本申请的一些实施例中,根据配置后的各服务的接口监控确定各服务的优先级和各服务对应的接口监控的优先级时,包括:获取配置后的接口监控的调用情况,并根据配置后的接口监控的调用情况生成微服务系统拓扑结构图。根据生成的微服务系统拓扑结构图确定各服务的优先级和各服务对应的接口监控的优先级。
可以看出的是,根据接口监控的调用情况,能够生成微服务系统的拓扑结构图。这个图表明各个微服务之间的依赖关系,展示了服务之间的调用路径和数据流动。其次,基于生成的微服务系统拓扑结构图,可以确定各个服务的优先级。这通常涉及服务的重要性、对其他服务的依赖关系以及服务的性能等因素。通过这些因素的综合考虑,系统可以为每个服务分配一个优先级。进一步,也可以确定每个服务对应的接口监控的优先级。这根据服务的重要性和服务内各接口的关键性来实现。关键接口通常会获得更高的监控优先级,以确保其高可用性和性能。
可以理解的是,通过获取配置后的接口监控的调用情况,可以追踪各个服务之间的实际交互情况,包括调用频率、响应时间等。将这些数据用于生成微服务系统拓扑结构图,有助于开发人员和运维团队更清晰地了解系统内部的服务依赖关系和流程。而生成的拓扑结构图进一步用于确定各服务的优先级和各服务对应的接口监控的优先级。可以更加精细地分配资源和关注重要的服务。例如,对于高优先级的服务和接口,可以分配更多的监控和资源,以确保其高可用性和性能。而对于低优先级的服务,可以减少资源投入,从而更有效地管理成本和资源分配。
具体而言,在本申请的一些实施例中,根据生成的微服务系统拓扑结构图确定各服务的优先级时,包括:将生成的微服务系统拓扑结构图抽象为有向图,并将服务定义为有向图中的节点。、获取有向图中服务被指向箭头的个数,并将有向图中服务被指向箭头的个数设定为服务的入度。获取有向图中服务指出箭头的个数,并将有向图中服务指出箭头的个数设定为服务的出度。并基于公式
D
获取服务的度数。其中,D为服务的度数,I为服务的入度,O为服务的出度,i=1,2…i。根据各服务的度数进行倒序,并根据倒序排名确定各服务的优先级。
具体而言,在本申请的一些实施例中,根据生成的微服务系统拓扑结构图确定各服务对应的接口监控的优先级时,包括:获取接口监控在目标集合中出现的次数,并将接口监控在目标集合中出现的次数确定为接口监控的重要度。计算最终集合中各接口监控的重要度。根据最终集合中各接口监控的重要度进行各接口监控的倒序排序,并根据各接口监控的排名确定各接口监控的优先级。
可以看出的是,通过将微服务系统的拓扑结构抽象成有向图,其中服务被定义为图中的节点。通过计算每个服务的入度(被指向箭头的个数)和出度(指出箭头的个数),以及度数公式,可以得出每个服务的度数,进而确定各服务的优先级。这基于服务在系统中的相互依赖程度,度数越高的服务通常越重要,因此具有更高的优先级。进一步,对于接口监控的优先级,方案包括计算每个接口监控在目标集合中出现的次数,这被视为接口监控的重要度。通过计算最终集合中各接口监控的重要度,可以对接口监控进行排序,将重要的监控排在前面,以确定各接口监控的优先级。这有助于确保资源和关注点更集中地用于那些对系统性能和稳定性更为重要的接口。
可以理解的是,通过将微服务系统的拓扑结构图抽象为有向图,其中每个服务被定义为图中的节点。通过计算每个服务的入度(被指向箭头的个数)和出度(指出箭头的个数),以及使用度数公式,可以得出每个服务的度数。度数代表了服务在系统中的相对重要性,度数越高的服务通常越重要。通过根据度数倒序排名,可以确定各服务的优先级。这有助于系统开发人员和运维团队更好地了解哪些服务对整体系统的性能和稳定性有更大的影响。进一步,对于接口监控的优先级,方案包括计算每个接口监控在目标集合中出现的次数,并将出现次数视为接口监控的重要度。通过计算最终集合中各接口监控的重要度,可以对接口监控进行排序,将最重要的监控排在前面,从而确定各接口监控的优先级。这有益于确保资源和注意力更集中地用于那些对系统性能和稳定性更为关键的接口监控。
具体而言,在本申请的一些实施例中,根据生成的微服务系统拓扑结构图确定各服务对应的接口监控的优先级时,包括:获取接口监控在目标集合中出现的次数,并将接口监控在目标集合中出现的次数确定为接口监控的重要度。计算最终集合中各接口监控的重要度。根据最终集合中各接口监控的重要度进行各接口监控的倒序排序,并根据各接口监控的排名确定各接口监控的优先级。
可以看出的是,通过计算各接口监控在目标集合中出现的次数,将这个次数作为接口监控的重要度。这个重要度反映了接口监控在实际流量中的频繁程度,通常频繁出现的监控代表着更大的重要性。然后,对最终集合中的各接口监控按照其重要度进行倒序排序,将最重要的排在前面,从而确定了各接口监控的优先级。
可以理解的是,通过获取接口监控在目标集合中出现的次数,将这个次数定义为接口监控的重要度。这个重要度反映了接口监控在实际流量中的频繁程度,通常频繁出现的监控代表着更大的重要性。通过将这一度量引入监控的决策中,可以更加准确地确定哪些接口监控更为关键。接着,通过计算最终集合中各接口监控的重要度,将它们按照其重要性进行倒序排序,将最重要的排在前面。这种排序方式可以更有针对性地处理监控数据,首先关注那些最为关键的接口监控。进一步的更有效快速地发现和解决潜在问题。
具体而言,在本申请的一些实施例中,根据确定的各服务的优先级和各服务对应的接口监控的优先级进行优先监控时,包括:获取优先级高于各服务优先级的服务,并将该服务优先进行监控。若各服务优先级相同时,则选定优先级高于各服务对应的接口监控优先级的服务的接口监控,并将该接口监控对应的服务优先进行监控。
可以看出的是,当需要进行优先监控时,通过获取各服务的优先级,然后选择那些优先级高于各服务优先级的服务进行监控。这确保了那些被认为更为重要的服务得到更频繁的监控。如果各服务的优先级相同,方案会选取那些接口监控对应的服务优先级高于各服务对应的接口监控的优先级的服务,将其接口监控优先进行监控。这种方式有助于确保那些接口监控和服务在资源和注意力分配方面得到更好的管理,以应对系统性能和稳定性的挑战。
可以理解的是,通过获取优先级高于各服务的服务,可以首先监控那些被认为最为重要的服务。这有助于迅速响应与关键服务相关的问题,减少了故障的影响范围。这也使得运维团队能够更有针对性地分配资源和精力,更有效地管理和维护系统。其次,当各服务的优先级相同时,会选定优先级高于各服务对应的接口监控的服务,并将该服务的接口监控优先进行监控。这确保了与接口监控相关的问题也能够得到快速的处理。如果某个接口监控被认为非常重要,那么可以确保它获得足够的监控和资源分配,以便及时发现和解决与该接口相关的问题,进一步提高了系统的可用性和性能。
在本申请中的具体实施例中,以上步骤实现场景,方式如下:
从线上日志中,获取单服务1最近7天的线上流量数据,流量数据共1000条。线上流量数据如下表显示。
对上述步骤中的流量数据进行脱敏处理。将用户敏感数据进行替换,例如账户名、密码等。
脱敏处理后的线上流量数据如下表显示。
设置阈值为0.9。
将流量分成200个集合:S
在线下环境,使用单个集合流量进行串行流量回放,获取代码覆盖行数如下表显示:
获取代码覆盖行数如下表显示。
重复上述获取代码覆盖行数步骤,获取200个流量集合的代码覆盖行数。
使用基于权重的Jaccard,计算两两集合S
集合S
Sim(S
选取相似度最低的两个集合S
计算T与剩下集合,两两集合之间的相似度:Sim(T,S
计算新选取集合S
最终,T中流量如下表显示。
最终集合中流量如下表显示。
/>
依据最终集合Q中的流量,配置服务的接口监控。
服务的接口监控如下表显示。
重复上述各步骤,配置每个服务的接口监控。
根据接口调用情况,生成微服务系统拓扑结构图。
根据结构图每个服务的度数,评定服务优先级。
/>
服务优先级由高到低:服务7、服务1、服务2、服务3、服务5、服务6、服务8、服务4。
根据接口重要度,评定监控优先级。
最终集合Q中接口的重要度如下表显示。
根据服务优先级和监控优先级,执行监控。
服务监控执行顺序:服务7、服务1、服务2、服务3、服务5、服务6、服务8、服务4。
服务1的监控执行顺序如下表显示。
以上场景仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
综上,本发明实施例提供一种面向大规模微服务的接口监控自动配置与执行方法,其通过获取线上日志并提取预设时段的单服务线上流量数据,可以获得关键的实时流量信息。这有助于系统管理员更好地了解服务之间的通信和资源消耗情况。其次,通过结合代码覆盖情况对提取的流量数据进行筛选,可以有效降低噪声,提高数据质量,确保只监控最关键的服务和接口。这有助于减轻监控系统的负担,提高性能。进一步,配置各服务的接口监控根据实际情况自动进行,减少了手动干预,提高了配置的一致性。此外,此外,采用有向图中的节点度数,来评定服务优先级。相较于人工评定优先级,通过节点度数评定服务优先级,更加准确。同时,当服务变更时,确保了服务优先级可实时更新。最后通过确定服务和接口监控的优先级,能够更有针对性地监控关键服务,确保其正常运行,从而有效的提高了系统的可靠性和稳定性。
进一步的,本发明实施例一种面向大规模微服务的接口监控自动配置与执行方法中,其采用基于权重的Jaccard计算流量集合的相似度。相较于传统Jaccard系数,考虑了代码行重复次数对集合相似度的影响。使得相似度计算更加准确,同时通过采用贪心算法,每次选取与目标集合T相似度最低的集合。相较于随机选取集合,本发明能选取最优集合组合。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框,以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
- 一种微服务应用程序编程接口调用的方法及装置
- 一种微服务架构下模拟执行环境的接口自动化测试方法
- 一种面向大规模微服务的性能异常主动检测和处理方法及系统