本发明涉及异构微服务技术,具体涉及一种异构微服务系统的统一可观测方法和系统。
背景技术:
1、异构微服务技术中,异构是指系统中的不同功能使用不同的技术栈,微服务(micro service)是指系统被拆分为多个功能,这些被拆分出来的功能可以提供独立服务而被称为微服务。微服务是一种软件开发技术,是面向服务的体系结构(soa)架构样式的一种变体。其主要思想是将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于http的restful接口)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。
2、对于现有的分散式的异构多语言微服务系统的治理与运维,通常是通过多种技术手段来实现,平台产品需要提供多种技术栈的接入方式,需要满足多种语言的接入,不同技术栈的注册方式不同造成难以统一管理,应用元数据管理方式不同造成不能相互理解,通信协议和编码协议不一致造成不能相互通信,管理方式有差异造成不能统一管理。总的来说,现有的分散式的异构多语言微服务系统,在治理和运维的过程中,无法实现统一的观察性,运维效率低,运维成本高。
3、因此,如何提升企业异构微服务系统的运维效率,降低运维成本,是目前业界亟待解决的问题。
技术实现思路
1、以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
2、本发明的目的在于解决上述问题,提供了一种异构微服务系统的统一可观测方法和系统,能够提供统一的可观测展示,降低运维成本,提高运维效率。
3、本发明的技术方案:本发明揭示了一种异构微服务系统的统一可观测方法,方法包括:
4、第一步:对异构微服务系统的可观测数据进行数据采集并存储;
5、第二步:对采集到的可观测数据进行数据处理,基于微服务实例将第一步中采集到的各类数据进行关联,建立微服务实例的多维数据数仓;
6、第三步:对第二步中所建立的多维数据数仓,根据运维关注的维度进行统一的可观测数据查询。
7、根据本发明的异构微服务系统的统一可观测方法的一实施例,第一步中的数据采集方式有两种方式:各自对应异构微服务系统的agent采集插件、异构微服务系统的exporter采集插件。
8、根据本发明的异构微服务系统的统一可观测方法的一实施例,基于异构微服务系统的agent采集插件的可观测数据的采集,是采用agent无侵入式应用技术对异构微服务系统的多种语言微服务进行监控指标采集,其中agent采集插件采用http方式,主动推送数据到agent采集应用服务,其中agent采集插件的可观测数据包括指标、链路、日志,指标包括实例基本信息、实例状态和实例运行指标,链路是api请求到返回结果的全链路过程数据,日志是api请求日志、系统运行日志、账号操作日志、系统埋点日志。
9、根据本发明的异构微服务系统的统一可观测方法的一实施例,第一步中的基于异构微服务系统的agent采集插件的可观测数据的采集的步骤包括:
10、步骤1-1a:部署agent采集应用服务器端;
11、步骤1-2a:在微服务应用的各实例的主机上安装agent采集插件进行数据采集,其中各实例的微服务对应自己语言的agent采集应用服务并使用单独一个线程进行实例微服务的采集,agent采集插件配置agent采集应用服务的http地址和端口;
12、步骤1-3a:agent采集插件收集微服务应用的应用实例信息、实例状态信息,将收集到的应用实例信息和实例状态信息通过http协议上报到agent采集服务器端并存储;
13、步骤1-4a:agent采集插件进行链路数据采集;
14、步骤1-5a:agent采集插件抓取系统运行日志、服务api请求日志、用户登录和操作日志、埋点日志文件的信息,以批量包的形式上传到agent采集服务器端。
15、根据本发明的异构微服务系统的统一可观测方法的一实施例,基于异构微服务系统的exporter采集插件对微服务系统的可观测数据的采集过程中,exporter采集插件应用由exporter采集应用服务和exporter采集插件组成,exporter采集插件提供http接口,exporter采集应用服务定时调用exporter采集插件的接口采集数据,其中exporter采集插件对微服务系统的可观测数据是系统基础设施的运行指标,包括计算资源质保、数据库资源指标、中间件资源指标。
16、根据本发明的异构微服务系统的统一可观测方法的一实施例,基于异构微服务系统的exporter采集插件对微服务系统的可观测数据的采集进一步包括:
17、步骤1-1b:异构微服务系统中的各主机安装并启动exporter采集插件,exporter采集插件有独立的线程运行来提供http接口服务,网络开放对应的http协议和端口;
18、步骤1-2b:部署exporter采集应用服务,配置需要采集的各主机的exporter采集插件的http接口地址,指定exporter采集应用服务的采集频率,定期调用exporter采集插件的http接口,并存储接口返回的采集数据。
19、根据本发明的异构微服务系统的统一可观测方法的一实施例,第二步中,数据处理采用定时任务数据批处理方法,以一定的时间周期维度进行批量数据处理;批处理采用增量处理,在数据库中记录每批数据的批处理任务编号、批处理是否完成、最后完成时间、数据id,下次处理会读取最后完成时间和数据id后的数据,如果上次批处理没有执行完毕,则将跳过此次批处理并进入下个时间周期。
20、根据本发明的异构微服务系统的统一可观测方法的一实施例,第二步进一步包括:
21、步骤2-1:获取周期范围的微服务实例数据;
22、步骤2-2:获取周期范围的微服务实例的指标数据;
23、步骤2-3:获取微服务实例周期范围的日志数据;
24、步骤2-4:获取微服务实例周期范围所在计算资源的资源数据;
25、步骤2-5:获取微服务实例周期范围的请求链路数据;
26、步骤2-6:获取微服务实例周期范围链路数据的中间件应用运行数据;
27、步骤2-7:以微服务实例的数据为主要维度,将步骤2-2至2-6的周期范围数据指标,进行平均值、最大值、最小值在内的不同策略计算,建立微服务实例多维数据数仓。
28、根据本发明的异构微服务系统的统一可观测方法的一实施例,第三步进一步包括:
29、步骤3-1:通过时间维度对各微服务应用实例、计算资源、日志、链路数据的查询;
30、步骤3-2:通过微服务实例维度对各实例的计算资源、日志、链路数据的查询;
31、步骤3-3:通过计算资源维度对计算资源的各实例的计算资源、日志、链路数据进行查询。
32、本发明还解释了一种异构微服务系统的统一可观测系统,系统包括:
33、数据采集存储模块,对异构微服务系统的可观测数据进行数据采集并存储;
34、多维数据数仓建立模块,对采集到的可观测数据进行数据处理,基于微服务实例将采集到的各类数据进行关联,建立微服务实例的多维数据数仓;
35、可观测数据统一查询模块,对所建立的多维数据数仓,根据运维关注的维度进行统一的可观测数据查询。
36、根据本发明的异构微服务系统的统一可观测系统的一实施例,数据采集存储模块中的数据采集方式有两种方式:各自对应异构微服务系统的agent采集插件、异构微服务系统的exporter采集插件。
37、根据本发明的异构微服务系统的统一可观测系统的一实施例,基于异构微服务系统的agent采集插件的可观测数据的采集,是采用agent无侵入式应用技术对异构微服务系统的多种语言微服务进行监控指标采集,其中agent采集插件采用http方式,主动推送数据到agent采集应用服务,其中agent采集插件的可观测数据包括指标、链路、日志,指标包括实例基本信息、实例状态和实例运行指标,链路是api请求到返回结果的全链路过程数据,日志是api请求日志、系统运行日志、账号操作日志、系统埋点日志。
38、根据本发明的异构微服务系统的统一可观测系统的一实施例,数据采集存储模块进一步配置为执行以下的处理:
39、步骤1-1a:部署agent采集应用服务器端;
40、步骤1-2a:在微服务应用的各实例的主机上安装agent采集插件进行数据采集,其中各实例的微服务对应自己语言的agent采集应用服务并使用单独一个线程进行实例微服务的采集,agent采集插件配置agent采集应用服务的http地址和端口;
41、步骤1-3a:agent采集插件收集微服务应用的应用实例信息、实例状态信息,将收集到的应用实例信息和实例状态信息通过http协议上报到agent采集服务器端并存储;
42、步骤1-4a:agent采集插件进行链路数据采集;
43、步骤1-5a:agent采集插件抓取系统运行日志、服务api请求日志、用户登录和操作日志、埋点日志文件的信息,以批量包的形式上传到agent采集服务器端。
44、根据本发明的异构微服务系统的统一可观测系统的一实施例,基于异构微服务系统的exporter采集插件对微服务系统的可观测数据的采集过程中,exporter采集插件应用由exporter采集应用服务和exporter采集插件组成,exporter采集插件提供http接口,exporter采集应用服务定时调用exporter采集插件的接口采集数据,其中exporter采集插件对微服务系统的可观测数据是系统基础设施的运行指标,包括计算资源质保、数据库资源指标、中间件资源指标。
45、根据本发明的异构微服务系统的统一可观测系统的一实施例,数据采集存储模块进一步配置为执行以下的处理:
46、步骤1-1b:异构微服务系统中的各主机安装并启动exporter采集插件,exporter采集插件有独立的线程运行来提供http接口服务,网络开放对应的http协议和端口;
47、步骤1-2b:部署exporter采集应用服务,配置需要采集的各主机的exporter采集插件的http接口地址,指定exporter采集应用服务的采集频率,定期调用exporter采集插件的http接口,并存储接口返回的采集数据。
48、根据本发明的异构微服务系统的统一可观测系统的一实施例,多维数据数仓建立模块的数据处理采用定时任务数据批处理方法,以一定的时间周期维度进行批量数据处理;批处理采用增量处理,在数据库中记录每批数据的批处理任务编号、批处理是否完成、最后完成时间、数据id,下次处理会读取最后完成时间和数据id后的数据,如果上次批处理没有执行完毕,则将跳过此次批处理并进入下个时间周期。
49、根据本发明的异构微服务系统的统一可观测系统的一实施例,多维数据数仓建立模块进一步配置为执行以下的处理:
50、步骤2-1:获取周期范围的微服务实例数据;
51、步骤2-2:获取周期范围的微服务实例的指标数据;
52、步骤2-3:获取微服务实例周期范围的日志数据;
53、步骤2-4:获取微服务实例周期范围所在计算资源的资源数据;
54、步骤2-5:获取微服务实例周期范围的请求链路数据;
55、步骤2-6:获取微服务实例周期范围链路数据的中间件应用运行数据;
56、步骤2-7:以微服务实例的数据为主要维度,将步骤2-2至2-6的周期范围数据指标,进行平均值、最大值、最小值在内的不同策略计算,建立微服务实例多维数据数仓。
57、根据本发明的异构微服务系统的统一可观测系统的一实施例,可观测数据统一查询模块进一步配置为执行以下的处理:
58、步骤3-1:通过时间维度对各微服务应用实例、计算资源、日志、链路数据的查询;
59、步骤3-2:通过微服务实例维度对各实例的计算资源、日志、链路数据的查询;
60、步骤3-3:通过计算资源维度对计算资源的各实例的计算资源、日志、链路数据进行查询。
61、本发明对比现有技术有如下的有益效果:本发明涉及对可观测数据的采集、处理、存储、查询。本发明将异构多语言微服务系统的实例信息、实例运行状态、实例运行指标、系统日志体系数据,基础资源监控数据打通,形成基于异构微服务系统的统一可观测方法,有助于帮助快速定位问题,降低运维成本。基于本发明的技术方案,能够在对异构微服务系统的应用与应用资源环境进行统一的可观测性监控时,既不影响系统安全,又不会增加运维复杂度。