CN116662114A - 应用指标采集方法、装置、电子设备及存储介质 - Google Patents

应用指标采集方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116662114A
CN116662114A CN202310560786.1A CN202310560786A CN116662114A CN 116662114 A CN116662114 A CN 116662114A CN 202310560786 A CN202310560786 A CN 202310560786A CN 116662114 A CN116662114 A CN 116662114A
Authority
CN
China
Prior art keywords
index
application
target
processed
monitoring system
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
Application number
CN202310560786.1A
Other languages
English (en)
Inventor
蒋渊
李奇原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu com Times Technology Beijing Co Ltd
Original Assignee
Baidu com Times Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baidu com Times Technology Beijing Co Ltd filed Critical Baidu com Times Technology Beijing Co Ltd
Priority to CN202310560786.1A priority Critical patent/CN116662114A/zh
Publication of CN116662114A publication Critical patent/CN116662114A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开涉及计算机技术领域,尤其涉及应用开发、应用指标监控、应用运维等技术领域,具体涉及一种应用指标采集方法、装置、电子设备及存储介质。具体实现方案为:获取目标应用的应用指标;从多个候选监控系统中选取目标监控系统;将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;将经过数据格式转换的应用指标发送给目标监控系统。采用本公开可以提高监控系统的选取灵活性。

Description

应用指标采集方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及应用开发、应用指标监控、应用运维等技术领域,具体涉及一种应用指标采集方法、装置、电子设备及存储介质。
背景技术
在应用程序的开发过程中,为确保应用程序的稳定性、可靠性和可维护性,将应用程序的运行可观测性作为了一个重要的设计原则,而应用指标又将作为运行可观测性中的重要部分,将其通过监控系统进行处理、存储和展示,可以反映应用程序在运行过程中的状态、性能和行为,以帮助开发人员或运维人员进行问题的定位、分析和处理,再据此对应用程序进行调整和优化。目前,应用程序通常仅固定对接一种监控系统,以采集应用指标,因此,在监控系统的选取上存在灵活性较低的问题。
发明内容
本公开提供了一种应用指标采集方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种应用指标采集方法,应用于抽象代理层,所述方法包括:
获取目标应用的应用指标;
从多个候选监控系统中选取目标监控系统;
将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;
将经过数据格式转换的应用指标发送给目标监控系统。
根据本公开的另一方面,提供了一种应用指标采集装置,应用于抽象代理层,所述装置包括:
指标获取单元,用于获取目标应用的应用指标;
系统选取单元,用于从多个候选监控系统中选取目标监控系统;
格式转换单元,用于将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;
指标发送单元,用于将经过数据格式转换的应用指标发送给目标监控系统。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;
与该至少一个处理器通信连接的存储器;
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开实施例中任一的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开实施例中任一的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开实施例中任一的方法。
采用本公开可以提高监控系统的选取灵活性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的一种应用指标采集方法的流程示意图;
图2A和2B为本公开实施例提供的一种抽象代理层的部署方式示意图;
图3A和3B为本公开实施例提供的一种待处理指标的存储方式示意图;
图4为本公开实施例提供的一种内存空间释放过程示意图;
图5为本公开实施例提供的一种应用指标采集方法的完整流程示意图;
图6为本公开实施例提供的一种应用指标采集方法的场景示意图;
图7为本公开实施例提供的一种应用指标采集装置的示意性结构框图;
图8为本公开实施例提供的一种电子设备的示意性结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
经发明人研究发现,目前,虽然存在多种可以对应用指标进行处理、存储和展示的监控系统,但由于多种监控系统的实现方式各不相同、且互不兼容,因此,现有技术中,若应用程序(Application,APP)需要对接某一种监控系统,通常是通过引入该监控系统的软件开发工具包(Software Development Kit,SDK),再基于该SDK进行应用指标的采集配置、且该配置过程通常由人工完成;在APP需要对接另一种监控系统时,再引入另一种监控系统的SDK,并基于该SDK重新进行应用指标的采集配置。由于该对接过程在操作上相对繁琐、且人工采集配置容易出错,因此,目前的APP通常仅固定对接一种监控系统,以采集应用指标,在监控系统的选取上存在灵活性较低的问题。
基于以上背景,本公开实施例提供了一种应用指标采集方法,其可以应用于电子设备中部署的抽象代理层。以下,将结合图1所示流程示意图,对本公开实施例提供的一种应用指标采集方法进行说明。需要说明的是,虽然在流程示意图中示出了逻辑顺序,但是,在某些情况下,也可以以其他顺序执行所示出或描述的步骤。
步骤S101,获取目标应用的应用指标;
步骤S102,从多个候选监控系统中选取目标监控系统;
步骤S103,将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;
步骤S104,将经过数据格式转换的应用指标发送给目标监控系统。
其中,目标应用可以是通讯类APP、购物类APP、金融理财类APP等、且目标APP可以是针对微软视窗(Windows)、安卓(Android)等操作系统开发的,本公开实施例对此不作限制。
其中,应用指标可以包括以下至少之一:
响应时间、吞吐量、每秒查询率(Queries Per Second,QPS)、吞吐率(RequestsPer Second,RPS)、每秒点击率(Hit Per Second,HPS)、页面访问量(Page View,PV)等。
本公开实施例中,应用指标可以在目标应用的运行过程中,由目标应用按照预设采集间隔采集,并发送给抽象代理层。其中,预设采集间隔可以是10秒(S)、15S、20S等,具体可以根据实际应用需求设定,本公开实施例对此不作限制。
此外,本公开实施例中,多个候选监控系统可以包括Prometheus、Zabbix和SkyWalking等常用的监控系统。其中,Prometheus是一种开源的基于字节码注入的调用链分析,以及应用监控分析工具,特点是支持多种插件、且用户界面(User Interface,UI)功能强大,接入端无代码侵入;Zabbix是一种开源的调用链分析工具,特点是轻量化,使用部署简单,成本低;SkyWalking是一种开源的基于字节码注入的调用链分析,以及应用监控分析工具,特点是支持多种插件、且UI功能较强,接入端无代码侵入。
在一具体示例中,多个候选监控系统可以部署于服务器、且各个候选监控系统可以部署于不同服务器,以提高各个监控系统的可扩展性。此外,本公开实施例中,可以预先配置抽象代理层与多个候选监控系统的通信连接路径。如此,在获取到目标应用的应用指标,并从多个候选监控系统中选取目标监控系统之后,便可以基于预先配置的通信连接路径,建立抽象代理层与目标监控系统的通信连接。此外,需要说明的是,本公开实施例中,由于应用指标采集方法应用于抽象代理层、且应用代理层可以分别与多个候选监控系统建立通信连接,因此,在抽象代理层中,与应用指标相关的采集配置可以仅配置一次。其中,采集配置可以包括应用指标的获取超时告警时间、应用指标的发送频率、应用指标的发送超时告警时间等,本公开实施例对此不作限制。
此外,由于每个候选监控系统能够兼容的规范化格式不同,因此,在获取到目标应用的应用指标,并从多个候选监控系统中选取目标监控系统之后,需要将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式。例如,在目标监控系统为Prometheus时,可以将应用指标的数据格式转换为Prometheus能够兼容的规范化格式;再例如,在目标监控系统为Zabbix时,可以将应用指标的数据格式转换为Zabbix能够兼容的规范化格式;又例如,在目标监控系统为SkyWalking时,可以将应用指标的数据格式转换为SkyWalking能够兼容的规范化格式。
在将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式之后,再将经过数据格式转换的应用指标发送给目标监控系统,以使目标监控系统对应用指标进行处理、存储和展示。在一具体示例中,抽象代理层可以主动将经过数据格式转换的应用指标发送给目标监控系统;在另一具体示例中,抽象代理层也可以在接收到目标监控系统发送的指标拉取消息时,将经过数据格式转换的应用指标发送给目标监控系统。
采用本公开实施例提供的应用指标采集方法,可以获取目标应用的应用指标;从多个候选监控系统中选取目标监控系统;将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;将经过数据格式转换的应用指标发送给目标监控系统。由于本公开实施例提供的应用指标采集方法应用于抽象代理层、且其可以分别与多个候选监控系统建立通信连接,同事,通过数据格式转换实现数据格式的兼容,使得目标监控系统具有可选取性,而不再固定于一种,也即,使得目标应用可以灵活地对接任意候选监控系统,提高了监控系统的选取灵活性。此外,由于抽象代理层可以分别与多个候选监控系统建立通信连接,因此,在抽象代理层中,与应用指标相关的采集配置可以仅配置一次,即使在需要将目标监控系统从一个候选监控系统更换为另一个候选监控系统时,也无需重新配置,这将降低更换目标监控系统所需付出的配置成本,同时,降低配置错误的发生率,从而降低更换目标监控系统时所受到的各方局限性,以进一步提高了监控系统的选取灵活性。
此外,如前所述的,本公开实施例中,应用指标采集方法可以应用于抽象代理层。请结合图2A,在一具体示例中,抽象代理层可以集成于目标应用内部,再在从多个候选监控系统中选取目标监控系统之后,基于预先配置的通信连接路径,建立抽象代理层与目标监控系统的通信连接;请结合图2B,在另一具体示例中,抽象代理层也可以部署于目标应用的外部,再在从多个候选监控系统中选取目标监控系统之后,基于预先配置的通信连接路径,建立抽象代理层与目标监控系统的通信连接。
其中,抽象代理层集成于目标应用内部可以提高数据传输的网络性能、且相对于将抽象代理层部署于目标应用外部而言,可以占用更少的硬件资源;抽象代理层部署于目标应用的外部可以实现抽象代理层的复用,通过抽象代理层,对其他应用程序的应用指标进行采集。
本公开实施例中,目标应用可以是基于云原生架构构建、运行的应用程序。在此情况下,在一些可选的实施方式中,抽象代理层可以是边车(Sidecar)代理层。
由于sidecar代理层具有较高的安全性、可维护性、可操作性和服务代理性能,因此,在抽象代理层为Sidecar代理层,也即,应用指标采集方法运行于Sidecar代理模式时,可以提高指标采集方法的稳定性。此外,Sidecar代理层的部署只需占用较少的硬件资源,因此,可以降低指标采集方法的运行成本。
在一些可选的实施方式中,应用指标采集方法还可以包括以下步骤:
接收目标应用按照预设采集间隔采集的指标数据包;
每接收到一次指标数据包,则对指标数据包进行解析,获得多个待处理指标;
将多个待处理指标分别存储于多个内存空间;其中,每个内存空间对应存储多个待处理指标中的一个待处理指标。
如前所述的,预设采集间隔可以是10S、15S、20S等,具体可以根据实际应用需求设定,本公开实施例对此不作限制。此外,本公开实施例中,每接收到一次指标数据包,则可以基于指标名称、指标标识号等指标标识信息,对指标数据包进行解析,获得多个待处理指标。其中,多个待处理指标同样可以包括以下至少之一:
响应时间、吞吐量、QPS、RPS、HPS、PV等。
在获取到多个待处理指标之后,可以将多个待处理指标一一对应地存储于从电子设备的内存中划分出的多个内存空间。例如,将响应时间存储于第一内存空间;将吞吐量存储于第二内存空间;将QPS存储于第三内存空间……
在一具体示例中,待处理指标的存储方式为直接存储、且每个内存空间仅用于存储同一类待处理指标。请结合图3A,假设,接收到目标应用在08.00.10S时采集的第一指标数据包、且对第一指标数据包进行解析,获得的多个待处理指标包括响应时间(08.00.10)、吞吐量(08.00.10)和QPS(08.00.10),则可以将响应时间(08.00.10)存储于第一内存空间;将吞吐量(08.00.10)存储于第二内存空间;将QPS(08.00.10)存储于第三内存空间。此后,接收到目标应用在08.00.20S时采集的第二指标数据包、且对第二指标数据包进行解析,获得的多个待处理指标包括响应时间(08.00.20)和QPS(08.00.20),则可以直接将响应时间(08.00.20)存储于第一内存空间,而不将响应时间(08.00.10)从第一内存空间中删除;直接将QPS(08.00.20)存储于第三内存空间,而不将QPS(08.00.10)从第三内存空间中删除。
通过待处理指标的以上存储方式,可以确保待处理指标数据的可恢复性,以应对特殊的指标采集需求。
在另一具体示例中,待处理指标的存储方式为覆盖式存储,则每个内存空间最多仅存储有一个待处理指标。请结合图3B,假设,接收到目标应用在08.00.10S时采集的第一指标数据包、且对第一指标数据包进行解析,获得的多个待处理指标包括响应时间(08.00.10)、吞吐量(08.00.10)和QPS(08.00.10),则可以将响应时间(08.00.10)存储于第一内存空间;将吞吐量(08.00.10)存储于第二内存空间;将QPS(08.00.10)存储于第三内存空间。此后,接收到目标应用在08.00.20S时采集的第二指标数据包、且对第二指标数据包进行解析,获得的多个待处理指标包括响应时间(08.00.20)和QPS(08.00.20),则可以通过对响应时间(08.00.10)进行覆盖的方式,将响应时间(08.00.20)存储于第一内存空间,也即,将响应时间(08.00.20)存储于第一内存空间的同时,将响应时间(08.00.10)从第一内存空间中删除;通过对QPS(08.00.10)进行覆盖的方式,将QPS(08.00.20)存储于第三内存空间,也即,将QPS(08.00.20)存储于第三内存空间的同时,将QPS(08.00.10)从第三内存空间中删除。
通过待处理指标的以上存储方式,可以减少内存空间的使用率,以提高应用指标采集方法的稳定性。
基于应用指标采集方法包括的以上步骤,在一些可选的实施方式中,“获取目标应用的应用指标”可以包括以下步骤:
响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标,作为目标应用的应用指标。
本公开实施例中,可以按照预设发送间隔,获取目标应用的应用指标,也即,可以按照预设发送间隔,响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标,作为目标应用的应用指标。其中,预设发送间隔可以是10S、15S、20S等,具体可以根据实际应用需求设定,本公开实施例对此不作限制。
请再次结合图3A,假设,预设发送间隔为12.5S、且从08.00.00S起开始计时,在08.00.10S时,第一次获取到目标应用的应用指标,那么,在待处理指标的存储方式为直接存储时,在接收到目标应用在08.00.20S时采集的第二指标数据包、且将对第二指标数据包进行解析获得的多个待处理指标一一对应地存储于从电子设备的内存中划分出的多个内存空间之后,在08.00.25S时,可以响应于指标获取请求,从第一内存空间中获取响应时间(08.00.20),作为目标应用的应用指标;从第二内存空间中获取吞吐量(08.00.10),作为目标应用的应用指标;从第二内存空间中获取QPS(08.00.20),作为目标应用的应用指标。
请再次结合图3B,假设,预设发送间隔为12.5S、且从08.00.00S起开始计时,在08.00.10S时,第一次获取到目标应用的应用指标,那么,在待处理指标的存储方式为覆盖式存储时,在接收到目标应用在08.00.20S时采集的第二指标数据包、且将对第二指标数据包进行解析获得的多个待处理指标一一对应地存储于从电子设备的内存中划分出的多个内存空间之后,在08.00.25S时,同样可以响应于指标获取请求,从第一内存空间中获取响应时间(08.00.20),作为目标应用的应用指标;从第二内存空间中获取吞吐量(08.00.10),作为目标应用的应用指标;从第二内存空间中获取QPS(08.00.20),作为目标应用的应用指标。
通过以上步骤,本公开实施例中,可以接收目标应用按照预设采集间隔采集的指标数据包,在每接收到一次指标数据包时,对指标数据包进行解析,获得多个待处理指标,再将多个待处理指标一一对应地存储于从电子设备的内存中划分出的多个内存空间。由于多个待处理指标是通过内存空间进行存储的,具有较高的存取灵活性,因此,在接收到指标获取请求时,可以及实地响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标,作为目标应用的应用指标,以提高应用指标的采集效率。
在一些可选的实施方式中,“接收目标应用按照采集时间间隔采集的指标数据包”可以包括以下步骤:
接收目标应用按照采集时间间隔采集、且基于开放式遥测(OpenTelemetry)协议,发送的指标数据包。
在一具体示例中,可以采用OpenTelemetry协议原生的遥测信号协议格式,也即,OTLP协议格式进行指标数据包的传输。虽然OpenTelemetry协议的项目中组件支持Zipkinv2协议格式和Jaeger Thrift协议格式的实现,但这两者都是以第三方贡献库的形式提供的,只有OTLP是OpenTelemetry协议原生支持的协议格式,因此,采用OTLP协议格式进行指标数据包的传输可以降低应用指标采集方法的开发难度。
通过以上步骤,本公开实施例中,可以接收目标应用按照采集时间间隔采集、且基于OpenTelemetry协议,发送的指标数据包。由于OpenTelemetry协议可以实现被传输数据(此处,可以表征指标数据包所携带的多个待处理指标)在空间信息上的标准化处理,因此,可以提高应用指标的采集准确度,从而提高应用指标采集方法的可靠性。
本公开实施例中,待处理指标可以具有对应的指标时间戳。其中,指标时间戳可以是携带于指标数据包,从目标应用中发送的,以用于表征待处理指标的采集时间;指标时间戳也可以是在对指标数据包进行解析,获得多个待处理指标的过程中,添加的解析时间戳,具体可以根据实际应用需求设定,本公开实施例对此不作限制。
基于以上设置,本公开所述提供的应用指标采集方法还可以包括以下步骤:
按照预设清理间隔,确定每个内存空间中最新存储的待处理指标;
计算目标时间戳与当前时间之间的时间差值;其中,目标时间戳为与最新存储的待处理指标对应的指标时间戳;
在时间差值大于预设时间长度的情况下,释放与目标时间戳对应的内存空间。
其中,预设清理间隔可以是3分钟(Min)、5Min等,预设时间长度小于预设清理间隔,例如,在预设清理间隔为3Min时,预设时间长度可以是2Min;再例如,在预设清理间隔为5Min时,预设时间长度可以是4Min,具体可以根据实际应用需求设定,本公开实施例对此不作限制。
请结合图4,假设,待处理指标的存储方式为覆盖式存储、且预设清理间隔为5Min,预设时间长度为1Min。再假设,图4所示示例为图3B所示示例的后续、且在08.05.00S时,接收到目标应用在08.05.00S时采集的指标数据包、且对该指标数据包进行解析,获得的多个待处理指标包括响应时间(08.05.00)和QPS(08.05.00),其中,“08.05.00”为指标时间戳,接着,通过对响应时间(08.04.50)进行覆盖的方式,将响应时间(08.05.00)存储于第一内存空间;通过对QPS(08.04.50)进行覆盖的方式,将QPS(08.05.00)存储于第三内存空间。
在将响应时间(08.05.00)存储于第一内存空间,以及将QPS(08.05.00)存储于第三内存空间之后,可以确定的是:第一内存空间中最新存储的待处理指标为响应时间(08.05.00)、且08.05.00与当前时间之间的时间差值小于预设时间长度;第二内存空间中最新存储的待处理指标为吞吐量(08.00.10)、且08.00.10与当前时间之间的时间差值大于预设时间长度;第三内存空间中最新存储的待处理指标为QPS(08.05.00)、且08.05.00与当前时间之间的时间差值小于预设时间长度。因此,可以确定吞吐量属于低活跃度指标,也即,可以将(08.00.10)作为目标时间戳,并释放与目标时间戳(08.00.10)对应的内存空间,也即,用于存储吞吐量的第二内存空间。
通过以上步骤,本公开示例中,可以按照预设清理间隔,确定每个内存空间中最新存储的待处理指标,并计算目标时间戳与当前时间之间的时间差值,再在时间差值大于预设时间长度的情况下,释放与目标时间戳对应的内存空间,从而减少内存空间的使用率,以进一步提高应用指标采集方法的稳定性。
此外,本公开实施例中,在待处理指标具有对应的指标时间戳的情况下,“响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标,作为目标应用的应用指标”还可以包括以下步骤:
响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标;
计算待处理时间戳与当前时间之间的间隔时长;其中,待处理时间戳为与最新存储的待处理指标对应的指标时间戳;
在间隔时长小于预设可发送时长的情况下,将最新存储的待处理指标作为目标应用的应用指标。
其中,可发送时长可以是20S、30S等,具体可以根据实际应用需求设定,本公开实施例对此不作限制。
请再次结合图4,假设,预设发送间隔为12.5S,可发送时长为10S。再假设,从08.00.00S起开始计时,接收到目标应用在08.00.10S时采集的第一指标数据包、且将对第一指标数据包进行解析获得的多个待处理指标一一对应地存储于从电子设备的内存中划分出的多个内存空间之后,在08.00.12.5S时,若监测到指标获取请求,则可以响应于指标获取请求,从第一内存空间中获取响应时间(08.00.10)、且确定08.00.10与当前时间之间的间隔时长小于可发送时长,因此,可以将响应时间(08.00.10)作为目标应用的应用指标;从第二内存空间中获取吞吐量(08.00.10)、且确定08.00.10与当前时间之间的间隔时长小于可发送时长,因此,可以将吞吐量(08.00.10)作为目标应用的应用指标;从第三内存空间中获取QPS(08.00.10)、且确定08.00.10与当前时间之间的间隔时长小于可发送时长,因此,可以将QPS(08.00.10)作为目标应用的应用指标。
此后,接收到目标应用在08.00.20S时采集的第二指标数据包、且将对第二指标数据包进行解析获得的多个待处理指标一一对应地存储于从电子设备的内存中划分出的多个内存空间之后,在08.00.25S时,若监测到指标获取请求,则可以响应于指标获取请求,从第一内存空间中获取响应时间(08.00.20)、且确定08.00.20与当前时间之间的间隔时长小于可发送时长,因此,可以将响应时间(08.00.20)作为目标应用的应用指标;从第二内存空间中获取吞吐量(08.00.10)、且确定08.00.10与当前时间之间的间隔时长大于可发送时长,因此,不会将吞吐量(08.00.10)作为目标应用的应用指标;从第三内存空间中获取QPS(08.00.20)、且确定08.00.20与当前时间之间的间隔时长小于可发送时长,因此,可以将QPS(08.00.20)作为目标应用的应用指标。
通过以上步骤,本公开实施例中,可以响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标,并计算待处理时间戳与当前时间之间的间隔时差,再在间隔时差小于预设可发送时长的情况下,将最新存储的待处理指标作为目标应用的应用指标,减少低活跃度指标的重复发送次数,从而降低目标监控系统的数据处理量。
在一些可选的实施方式中,“从多个候选监控系统中选取目标监控系统”可以包括以下步骤:
获取系统配置信息;
根据系统配置信息,从多个候选监控系统中选取目标监控系统。
其中,系统配置信息可以包括监控系统名称、监控系统标识号等系统标识信息。
此外,本公开实施例中,系统配置信息可以是在抽象代理层中,对与应用指标相关的采集配置进行配置时,进行同步配置的,也即,系统配置信息可以是预先配置的。在实际实施时,开发人员或运维人员可以根据各个候选监控系统的特点,对系统配置信息进行预先配置,也可以根据各个监控系统所使用的技术栈,对系统配置信息进行预先配置。当然,本公开实施例中,系统配置信息也可以实时配置,本公开实施例对此不作限制。
通过以上步骤,本公开实施例中,可以获取系统配置信息,再根据系统配置信息,从多个候选监控系统中选取目标监控系统。由于目标监控系统的选取可以依赖于系统配置信息实现,而系统配置信息通常可以是预先配置的,也可以实时配置,因此,可以进一步提高目标监控系统选取的灵活性。
在一些可选的实施方式中,“获取系统配置信息”可以包括以下步骤:
获取目标应用的源代码文件;
对源代码文件进行识别,以确定开发目标应用所使用的技术栈;
根据技术栈,生成系统配置信息。
其中,确定开发目标应用所使用的技术栈的主要目的可以是:确定开发目标应用所使用的应用编程语言。
在确定出开发目标应用所使用的应用编程语言之后,可以从多个候选监控系统中选取系统编程语言与该应用编程语言具有相同类型的候选监控系统,再生成与该候选监控系统对应的系统配置信息。例如,在确定出开发目标应用所使用的应用编程语言为Go编程语言、且多个候选监控系统中包括Prometheus时,由于Prometheus的系统编程语言同样为Go编程语言,因此,可以生成与Prometheus对应的系统配置信息;再例如,在确定出开发目标应用所使用的应用编程语言为C编程语言或超文本预处理器(Hypertext Preprocessor,PHP)编程语言、且多个候选监控系统中包括Zabbix时,由于Zabbix的系统编程语言同样为C编程语言或PHP编程语言,因此,可以生成与Zabbix对应的系统配置信息;又例如,在确定出开发目标应用所使用的应用编程语言为Java编程语言、且多个候选监控系统中包括SkyWalking时,由于SkyWalking的系统编程语言同样为Java编程语言,因此,可以生成与SkyWalking对应的系统配置信息。
如此,可以确保通过目标监控系统对应用指标进行处理、存储和展示之后,获得监控结果对于目标应用的开发人员或运维人员而言,具有高可读性。
通过以上步骤,本公开实施例中,可以获取目标应用的源代码文件,并对源代码文件进行识别,以确定开发目标应用所使用的技术栈,再根据技术栈,自动化地生成系统配置信息,从而提高应用指标采集方法的自动化程度,降低人力时间消耗成本。
以下,将结合图5,对本公开实施例提供的一种应用指标采集方法的完整流程进行说明,该应用指标采集方法用于抽象代理层,例如,Sidecar代理层。
步骤S501,接收目标应用按照预设采集间隔采集的指标数据包;
步骤S502,每接收到一次指标数据包,则对指标数据包进行解析,获得多个待处理指标;
步骤S503,将多个待处理指标分别存储于多个内存空间;其中,每个内存空间对应存储多个待处理指标中的一个待处理指标;
步骤S504,响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标,作为目标应用的应用指标;
步骤S505,获取系统配置信息;
步骤S506,根据系统配置信息,从多个候选监控系统中选取目标监控系统;
步骤S507,将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;
步骤S508,将经过数据格式转换的应用指标发送给目标监控系统。
请参阅图6,为本公开实施例提供的一种应用指标采集方法的场景示意图。
如前所述的,本公开实施例提供的应用指标采集方法应用于电子设备中部署的抽象代理层。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字处理、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。
电子设备可以用于:
获取目标应用的应用指标;
从多个候选监控系统中选取目标监控系统;
将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;
将经过数据格式转换的应用指标发送给目标监控系统。
其中,抽象代理层可以是Sidecar代理层,目标应用可以安装于电子设备,多个候选监控系统可以包括Prometheus、Zabbix和SkyWalking等常用的监控系统。此外,本公开实施例中,抽象代理层可以集成于目标应用内部,也可以部署于目标应用的外部,多个候选监控系统可以部署于服务器、且各个候选监控系统可以部署于不同服务器。
需要说明的是,本公开实施例中,图6所示的场景示意图仅为示意性而非限制性的,本领域技术人员可以基于图6示例进行各种显而易见的变化和/或替换,获得的技术方案仍属于本公开实施例的公开范围。
为了更好地实施应用指标采集方法,本公开实施例还提供一种应用指标采集装置,其具体可以集成在电子设备中部署的抽象代理层。以下,将结合图8所示结构示意图,对公开实施例提供的一种应用指标采集装置700进行说明。
应用指标采集装置700包括:
指标获取单元701,用于获取目标应用的应用指标;
系统选取单元702,用于从多个候选监控系统中选取目标监控系统;
格式转换单元703,用于将应用指标的数据格式转换为目标监控系统能够兼容的规范化格式;
指标发送单元704,用于将经过数据格式转换的应用指标发送给目标监控系统。
在一些可选的实施方式中,系统选取单元702用于:
获取系统配置信息;
根据系统配置信息,从多个候选监控系统中选取目标监控系统。
在一些可选的实施方式中,系统选取单元702用于:
获取目标应用的源代码文件;
对源代码文件进行识别,以确定开发目标应用所使用的技术栈;
根据技术栈,生成系统配置信息。
在一些可选的实施方式中,应用指标采集装置700还可以包括存储控制单元,用于:
接收目标应用按照预设采集间隔采集的指标数据包;
每接收到一次指标数据包,则对指标数据包进行解析,获得多个待处理指标;
将多个待处理指标分别存储于多个内存空间;其中,每个内存空间对应存储多个待处理指标中的一个待处理指标;
指标获取单元701用于:
响应于指标获取请求,从每个内存空间中获取最新存储的待处理指标,作为目标应用的应用指标。
在一些可选的实施方式中,存储控制单元用于:
接收目标应用按照采集时间间隔采集、且基于开放式遥测协议,发送的指标数据包。
在一些可选的实施方式中,待处理指标具有对应的指标时间戳,应用指标采集装置700还可以包括内存管理单元,用于:
按照预设清理间隔,确定每个内存空间中最新存储的待处理指标;
计算目标时间戳与当前时间之间的时间差值;其中,目标时间戳为与最新存储的待处理指标对应的指标时间戳;
在时间差值大于预设时间长度的情况下,释放与目标时间戳对应的内存空间。
在一些可选的实施方式中,抽象代理层为边车代理层。
本公开实施例的应用指标采集装置700的各单元的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(Read-OnlyMemory,ROM)802中的计算机程序或从存储单元808加载到随机访问存储器(Random AccessMemory,RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(Input/Output,I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)、各种专用的人工智能(ArtificialIntelligence,AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(Digital Signal Process,DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如,应用指标采集方法。例如,在一些实施例中,应用指标采集方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的应用指标采集方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用指标采集方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(ApplicationSpecific Standard Product,ASSP)、芯片上系统的系统(System On Chip,SOC)、负载可编程逻辑设备(Complex Programmable Logic Device,CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或多个计算机程序中,该一个或多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据采集装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)或快闪存储器、光纤、便捷式紧凑盘只读存储器(Compact Disc Read-OnlyMemory,CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(Cathode Ray Tube,CRT)显示器或液晶显示器(Liquid Crystal Display,LCD));以及键盘和指向装置(例如,鼠标或轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且可以用任何形式(包括声输入、语音输入、或触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或包括中间件部件的计算系统(例如,应用服务器)、或包括前端部件的计算系统(例如,具有图形用户界面或网络浏览器的用户计算机,用户可以通过该图形用户界面或该网络浏览器来与此处描述的系统和技术的实施方式交互)、或包括这种后台部件、中间件部件、或前端部件的任何组合的计算系统中。可以通过任何形式或介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local AreaNetwork,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或是结合了区块链的服务器。
本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行应用指标采集方法。
本公开实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现应用指标采集方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。此外,本公开中,诸如“第一”、“第二”、“第三”等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或暗示这些实体或操作之间存在任何这种实际的关系或顺序。此外,本公开中“多个”,可以理解为至少两个。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (17)

1.一种应用指标采集方法,应用于抽象代理层,所述方法包括:
获取目标应用的应用指标;
从多个候选监控系统中选取目标监控系统;
将所述应用指标的数据格式转换为所述目标监控系统能够兼容的规范化格式;
将经过数据格式转换的所述应用指标发送给所述目标监控系统。
2.根据权利要求1所述的方法,其中,所述从多个候选监控系统中选取目标监控系统,包括:
获取系统配置信息;
根据所述系统配置信息,从多个候选监控系统中选取目标监控系统。
3.根据权利要求2所述的方法,其中,所述获取系统配置信息,包括:
获取所述目标应用的源代码文件;
对所述源代码文件进行识别,以确定开发所述目标应用所使用的技术栈;
根据所述技术栈,生成所述系统配置信息。
4.根据权利要求1~3中任一项所述的方法,还包括:
接收所述目标应用按照预设采集间隔采集的指标数据包;
每接收到一次所述指标数据包,则对所述指标数据包进行解析,获得多个待处理指标;
将所述多个待处理指标分别存储于多个内存空间;其中,每个所述内存空间对应存储所述多个待处理指标中的一个待处理指标;
所述获取目标应用的应用指标,包括:
响应于指标获取请求,从每个所述内存空间中获取最新存储的待处理指标,作为所述目标应用的应用指标。
5.根据权利要求4所述的方法,其中,所述接收所述目标应用按照采集时间间隔采集的指标数据包,包括:
接收所述目标应用按照采集时间间隔采集、且基于开放式遥测协议,发送的指标数据包。
6.根据权利要求4所述的方法,其中,所述待处理指标具有对应的指标时间戳,所述方法还包括:
按照预设清理间隔,确定每个所述内存空间中最新存储的待处理指标;
计算目标时间戳与当前时间之间的时间差值;其中,所述目标时间戳为与所述最新存储的待处理指标对应的指标时间戳;
在所述时间差值大于预设时间长度的情况下,释放与所述目标时间戳对应的内存空间。
7.根据权利要求1所述的方法,其中,所述抽象代理层为边车代理层。
8.一种应用指标采集装置,应用于抽象代理层,所述装置包括:
指标获取单元,用于获取目标应用的应用指标;
系统选取单元,用于从多个候选监控系统中选取目标监控系统;
格式转换单元,用于将所述应用指标的数据格式转换为所述目标监控系统能够兼容的规范化格式;
指标发送单元,用于将经过数据格式转换的所述应用指标发送给所述目标监控系统。
9.根据权利要求8所述的装置,其中,所述系统选取单元用于:
获取系统配置信息;
根据所述系统配置信息,从多个候选监控系统中选取目标监控系统。
10.根据权利要求9所述的装置,其中,所述系统选取单元用于:
获取所述目标应用的源代码文件;
对所述源代码文件进行识别,以确定开发所述目标应用所使用的技术栈;
根据所述技术栈,生成所述系统配置信息。
11.根据权利要求8~10中任一项所述的装置,还包括存储控制单元,用于:
接收所述目标应用按照预设采集间隔采集的指标数据包;
每接收到一次所述指标数据包,则对所述指标数据包进行解析,获得多个待处理指标;
将所述多个待处理指标分别存储于多个内存空间;其中,每个所述内存空间对应存储所述多个待处理指标中的一个待处理指标;
所述指标获取单元用于:
响应于指标获取请求,从每个所述内存空间中获取最新存储的待处理指标,作为所述目标应用的应用指标。
12.根据权利要求11所述的装置,其中,所述存储控制单元用于:
接收所述目标应用按照采集时间间隔采集、且基于开放式遥测协议,发送的指标数据包。
13.根据权利要求11所述的装置,其中,所述待处理指标具有对应的指标时间戳,所述装置还包括内存管理单元,用于:
按照预设清理间隔,确定每个所述内存空间中最新存储的待处理指标;
计算目标时间戳与当前时间之间的时间差值;其中,所述目标时间戳为与所述最新存储的待处理指标对应的指标时间戳;
在所述时间差值大于预设时间长度的情况下,释放与所述目标时间戳对应的内存空间。
14.根据权利要求8所述的装置,其中,所述抽象代理层为边车代理层。
15.一种电子设备,包括:
至少一个处理器;
与所述至少一个处理器通信连接的存储器;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1~7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1~7中任一项所述的方法。
CN202310560786.1A 2023-05-18 2023-05-18 应用指标采集方法、装置、电子设备及存储介质 Pending CN116662114A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310560786.1A CN116662114A (zh) 2023-05-18 2023-05-18 应用指标采集方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310560786.1A CN116662114A (zh) 2023-05-18 2023-05-18 应用指标采集方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116662114A true CN116662114A (zh) 2023-08-29

Family

ID=87721619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310560786.1A Pending CN116662114A (zh) 2023-05-18 2023-05-18 应用指标采集方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116662114A (zh)

Similar Documents

Publication Publication Date Title
CN111045911B (zh) 性能测试方法、性能测试装置、存储介质与电子设备
CN109672722B (zh) 数据部署方法及装置、计算机存储介质和电子设备
US11740997B2 (en) Method and apparatus for debugging a device
CN112306851A (zh) 一种自动化测试方法和装置
CN113722055A (zh) 数据处理方法、装置、电子设备和计算机可读介质
KR102543838B1 (ko) 정보 획득 방법 및 장치
CN111865914B (zh) 用于检查云主机健康状态的系统、方法、设备及存储介质
CN109144864B (zh) 用于测试窗口的方法及装置
CN113378346A (zh) 模型仿真的方法和装置
CN116662114A (zh) 应用指标采集方法、装置、电子设备及存储介质
CN106933449B (zh) 图标处理方法和装置
CN111488268A (zh) 自动化测试的调度方法和调度装置
CN115454443A (zh) 多系统的数据交互方法、装置和电子设备
CN113704079B (zh) 基于Protobuf的接口测试方法和装置
CN113407229B (zh) 用于生成离线脚本的方法及装置
CN113836151B (zh) 数据处理方法、装置、电子设备和计算机可读介质
CN111176982A (zh) 一种测试界面生成方法和装置
CN111338882A (zh) 数据监控方法、装置、介质及电子设备
CN114723072B (zh) Exporter组合方法、系统、设备及存储介质
CN114253520B (zh) 接口代码生成方法和装置
CN113449938B (zh) 车辆监控的系统和方法
CN112988528B (zh) 日志处理方法、装置及容器组
CN115629939A (zh) 边缘设备的数据采集方法、装置、电子设备及介质
CN115269055A (zh) Nginx请求数据采集方法、装置、设备及存储介质
CN117424896A (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