CN115168080A - 分布式***时延度量方法、装置、设备及介质 - Google Patents

分布式***时延度量方法、装置、设备及介质 Download PDF

Info

Publication number
CN115168080A
CN115168080A CN202211094870.0A CN202211094870A CN115168080A CN 115168080 A CN115168080 A CN 115168080A CN 202211094870 A CN202211094870 A CN 202211094870A CN 115168080 A CN115168080 A CN 115168080A
Authority
CN
China
Prior art keywords
acquisition
time delay
delay
point
timestamp
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
CN202211094870.0A
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.)
Shenzhen Huarui Distributed Technology Co ltd
Original Assignee
Shenzhen Huarui Distributed Technology 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 Shenzhen Huarui Distributed Technology Co ltd filed Critical Shenzhen Huarui Distributed Technology Co ltd
Priority to CN202211094870.0A priority Critical patent/CN115168080A/zh
Publication of CN115168080A publication Critical patent/CN115168080A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及大数据领域,提供一种分布式***时延度量方法、装置、设备及介质,能够在分布式***中,利用每个应用程序内部预先构建的作为独立进程运行的采样引擎及预先构建的以独立程序的形式运行的时延度量组件进行时延度量,解决了无法在应用程序内部处理时延的问题,提高了时延度量的全面性,并且,独立运行的采样引擎及时延度量组件在进行时延度量时不会占用***资源,避免在进行时延度量时影响***的正常运行。

Description

分布式***时延度量方法、装置、设备及介质
技术领域
本发明涉及大数据技术领域,尤其涉及一种分布式***时延度量方法、装置、设备及介质。
背景技术
分布式***指部署在多台主机上的软件程序通过协同工作,以实现特定功能的软件***。时延是分布式***的重要性能指标之一。分布式***没有通用的精确时延测量和统计方法,通常采用网络抓包、日志分析等方式测量时延,这些方法存在下列缺陷:
1. 网络抓包方式只能测量网络传输的时延,不能测量程序内部处理时延;
2. 日志分析方式需要逐个分析日志信息,处理效率低,且日志信息不全面会导致时延丢失,无法追踪到每个消息的时延情况;
3. 网络抓包和日志分析等方式需占用分布式服务的本地***资源(CPU、内存、硬盘等),处理能力有限,在高吞吐压力下无法做到对每笔消息的时延进行实时测量和统计;
4. 无法完整的展示消息在分布式***中的业务流程,即如果消息经过组件A、B、C,无法完整的展示消息在组件A、B、C的扭转情况;
5. 无法对历史的时延数据进行分析及事后排查;
6. 当出现消息阻塞时,无法提供及时的告警;
7. 跨组件时延计算困难。当处理消息跨组件或者***处理时,两个组件或者***时间不一致,无法计算时延。
发明内容
鉴于以上内容,有必要提供一种分布式***时延度量方法、装置、设备及介质,旨在解决分布式***中时延度量不全面,且资源占用高的问题。
一种分布式***时延度量方法,所述分布式***时延度量方法包括:
确定目标分布式***中每个应用程序上的采集点;
调用每个应用程序内部预先构建的作为独立进程运行的采样引擎,利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息;
调用预先构建的以独立程序的形式运行的时延度量组件;
将所述时间戳消息发送至所述时延度量组件;
获取所述时延度量组件中配置的待度量的至少一个时延指标;
根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值;
利用所述时延度量组件对每个时延指标对应的时延数值进行统计计算,得到时延度量结果,并输出所述时延度量结果。
根据本发明优选实施例,所述利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息包括:
对于每个应用程序上的预设环节,利用该应用程序对应的采样引擎遍历采集所述预设环节所对应的每个采集点的时间戳,并获取每个采集点的采集点标识;
在采集每个采集点中的首个采集点时,在消息头中增加数据标识;
在采集每个采集点中除所述首个采集点外的其他采集点时,利用所述数据标识标记所述其他采集点;
对每个采集点的采集点标识、所述数据标识及每个采集点的时间戳进行打包,生成该应用程序对应的消息;
整合每个应用程序对应的消息,得到所述时间戳消息。
根据本发明优选实施例,所述根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值包括:
对于每个时延指标,获取所述时延指标对应的数据标识;
从所述时间戳消息中获取具有所述数据标识的采集点作为目标采集点;
确定每个目标采集点的采集点标识;
根据每个目标采集点的采集点标识确定所述时延指标对应的开始采集点及结束采集点;
检测所述开始采集点对应的应用程序与所述结束采集点对应的应用程序是否部署于同一服务器,得到检测结果;
根据所述检测结果计算所述时延指标对应的时延数值。
根据本发明优选实施例,所述根据所述检测结果计算每个时延指标对应的时延数值包括:
当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序部署于同一服务器时,获取所述开始采集点的时间戳作为第一时间戳,及获取所述结束采集点的时间戳作为第二时间戳,计算所述第二时间戳与所述第一时间戳的差,得到所述时延指标对应的时延数值;或者
当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序没有部署于同一服务器时,获取所述开始采集点对应的应用程序与所述结束采集点对应的应用程序的相对时间差,获取所述开始采集点的时间戳作为第三时间戳,获取所述结束采集点的时间戳作为第四时间戳,计算所述第四时间戳与所述第三时间戳的差作为第五时间戳,计算所述第五时间戳与所述相对时间差的差,得到所述时延指标对应的时延数值。
根据本发明优选实施例,所述输出所述时延度量结果包括以下一种或者多种方式的组合:
在所述时延度量组件的配置界面上实时显示所述时延度量结果;
将所述时延度量结果写入指定文件以供数据重演;
响应于请求方向所述时延度量组件的内嵌服务器发送的访问请求,将所述时延度量结果转换为JSON字符串,并将所述JSON字符串发送至所述请求方;
以所述数据标识为行,以所述采集点标识及所述时间戳为列,将所述时延度量结果存储至时序数据库。
根据本发明优选实施例,所述方法还包括:
获取预先定义的轨迹,其中,所述轨迹包括多个采集点,每个采集点具有相同的追踪标识;
利用所述追踪标识对所述多个采集点进行追踪,并记录数据在所述多个采集点间的扭转情况;
当所述多个采集点中有采集点未被追踪到时,将所述轨迹确定为异常轨迹,并将未被追踪到的采集点确定为异常点;
存储所述异常轨迹及所述异常点,并发出异常告警提示。
根据本发明优选实施例,所述方法还包括:
从所述时序数据库中获取数据进行历史时延分析。
一种分布式***时延度量装置,所述分布式***时延度量装置包括:
确定单元,用于确定目标分布式***中每个应用程序上的采集点;
调用单元,用于调用每个应用程序内部预先构建的作为独立进程运行的采样引擎,利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息;
所述调用单元,还用于调用预先构建的以独立程序的形式运行的时延度量组件;
发送单元,用于将所述时间戳消息发送至所述时延度量组件;
获取单元,用于获取所述时延度量组件中配置的待度量的至少一个时延指标;
处理单元,用于根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值;
计算单元,用于利用所述时延度量组件对每个时延指标对应的时延数值进行统计计算,得到时延度量结果,并输出所述时延度量结果。
一种计算机设备,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述分布式***时延度量方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述分布式***时延度量方法。
由以上技术方案可以看出,本发明能够在分布式***中,利用每个应用程序内部预先构建的作为独立进程运行的采样引擎及预先构建的以独立程序的形式运行的时延度量组件进行时延度量,解决了无法在应用程序内部处理时延的问题,提高了时延度量的全面性,并且,独立运行的采样引擎及时延度量组件在进行时延度量时不会占用***资源,避免在进行时延度量时影响***的正常运行。
附图说明
图1是本发明分布式***时延度量方法的较佳实施例的流程图。
图2是本发明分布式***时延度量装置的较佳实施例的功能模块图。
图3是本发明实现分布式***时延度量方法的较佳实施例的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明分布式***时延度量方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述分布式***时延度量方法应用于一个或者多个计算机设备中,所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(DigitalSignal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述计算机设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
S10,确定目标分布式***中每个应用程序上的采集点。
在本实施例中,所述目标分布式***处理的数据通常从所述目标分布式***的外部输入,数据被所述目标分布式***的软件程序加工处理,在各个软件程序之间流动,并有可能产生对外输出。
例如:所述目标分布式***可以为证券交易***。
在本实施例中,每个应用程序上可以包括一些预先配置的特殊处理环节,每个特殊处理环节即可作为一个采集点。
例如:业务处理环节通常是一个流程,该流程中根据业务实际需求需要关注的一些重要的节点即可作为所述采集点。
S11,调用每个应用程序内部预先构建的作为独立进程运行的采样引擎,利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息。
具体地,所述采样引擎嵌入在应用程序之中,能够在应用程序内部处理时延。
所述采样引擎是编译在应用程序内部,所以对安全性要求很高。实际运行时,所述采样引擎会作为一个独立进程运行,当所述采样引擎故障甚至crash时,都不会影响到应用程序的正常运行,实现故障隔离。
在本实施例中,所述利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息包括:
对于每个应用程序上的预设环节,利用该应用程序对应的采样引擎遍历采集所述预设环节所对应的每个采集点的时间戳,并获取每个采集点的采集点标识;
在采集每个采集点中的首个采集点时,在消息头中增加数据标识;
在采集每个采集点中除所述首个采集点外的其他采集点时,利用所述数据标识标记所述其他采集点;
对每个采集点的采集点标识、所述数据标识及每个采集点的时间戳进行打包,生成该应用程序对应的消息;
整合每个应用程序对应的消息,得到所述时间戳消息。
其中,所述预设环节可以为一个业务环节。
其中,所述采集点标识用于唯一确定采集点处代码,因此利用所述采集点标识能够标记每个采集点。
其中,所述数据标识用于对采集点进行全局关联,具有相同数据标识的采集点属于同一环节。
每个环节对应的采集点都采用相同的数据标识进行标记,能够保证数据采样在各个采集点保持一致。
S12,调用预先构建的以独立程序的形式运行的时延度量组件。
在本实施例中,所述时延度量组件相当于单独部署的时间戳收集、测量、统计及轨迹追踪服务程序。
S13,将所述时间戳消息发送至所述时延度量组件。
在本实施例中,将所述时间戳消息发送至所述时延度量组件后,即可由所述时延度量组件对所述时间戳消息进行分析处理。
在本实施例中,应用程序侧只需要在对时延感兴趣的代码处调用接口进行采集,采集的时间戳信息可以存放在共享内存多队列中,所述采样引擎作为独立进程旁路收集时间戳信息并递交给时延度量组件,不会对应用程序的业务处理流程造成消耗,保证实时性的前提下,能够减小开销。
S14,获取所述时延度量组件中配置的待度量的至少一个时延指标。
在本实施例中,所述至少一个时延指标可以根据实际需求提前配置,也可以在所述时延度量组件运行时指定,本发明不限制。
在本实施例中,所述目标分布式***可以包括不同的时延,包括传输时延(即数据在不同的程序之间传输的时延,主要由网络设备及线路的传输时延引起)和处理时延(即数据在一个程序内部加工计算的时延)。
例如:当所述目标分布式***为证券交易***时,所述时延指标可以包括,但不限于以下一种或者多种的组合:
交易执行处理时延(即委托数据在交易执行程序内部的处理时延),委托上行时延(即从委托数据进入网关程序到向交易所报盘的时延),委托回路时延(即从委托数据进入网关程序到从网关程序收到交易所委托确认的时延)等。
S15,根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值。
本实施例在进行时延处理时无需依赖于日志,处理效率更高,且不会由于日志信息不全面而导致时延丢失,能够追踪到每个消息的时延情况。
在本实施例中,所述根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值包括:
对于每个时延指标,获取所述时延指标对应的数据标识;
从所述时间戳消息中获取具有所述数据标识的采集点作为目标采集点;
确定每个目标采集点的采集点标识;
根据每个目标采集点的采集点标识确定所述时延指标对应的开始采集点及结束采集点;
检测所述开始采集点对应的应用程序与所述结束采集点对应的应用程序是否部署于同一服务器,得到检测结果;
根据所述检测结果计算所述时延指标对应的时延数值。
可以理解的是,分布式***的应用程序大多分散部署在不同服务器上,不同服务器的***时间可能是不同步的,因此为了避免计算不准确,需要根据检测结果有针对性的计算时延数值。
具体地,所述根据所述检测结果计算每个时延指标对应的时延数值包括:
(1)当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序部署于同一服务器时,获取所述开始采集点的时间戳作为第一时间戳,及获取所述结束采集点的时间戳作为第二时间戳,计算所述第二时间戳与所述第一时间戳的差,得到所述时延指标对应的时延数值。
可以理解的是,当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序部署于同一服务器时,说明不存在***时间不同步的问题,因此,首尾两个采集点的时间差即为所述时延指标对应的时延数值。
(2)当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序没有部署于同一服务器时,获取所述开始采集点对应的应用程序与所述结束采集点对应的应用程序的相对时间差,获取所述开始采集点的时间戳作为第三时间戳,获取所述结束采集点的时间戳作为第四时间戳,计算所述第四时间戳与所述第三时间戳的差作为第五时间戳,计算所述第五时间戳与所述相对时间差的差,得到所述时延指标对应的时延数值。
可以理解的是,当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序没有部署于同一服务器时,说明可能存在***时间不同步的问题,因此,为了避免计算误差,先获取两个服务器间的时间差,再根据时间差计算时延数值,这样,当处理消息跨组件或者***处理时,即使两个组件或者***时间不一致,也能够计算时延。
例如:Rule = t4–t3– (delta(A) –delta(B))。
其中,Rule表示两个采集点的时延,(delta(A) –delta(B)) 表示两台服务器的相对时间差(如10秒),t4表示结束采集点的时间戳,t3表示开始采集点的时间戳。
S16,利用所述时延度量组件对每个时延指标对应的时延数值进行统计计算,得到时延度量结果,并输出所述时延度量结果。
在本实施例中,所述时延度量结果可以包括,但不限于:
(1)按指定周期统计的该周期内各项时延指标的统计值,包括平均值、最小值、最大值、50%、90%、95%、99%等百分位值;
(2)该周期内各时延采集点上的吞吐率。
例如:在一场生产活动结束后生成该场活动的性能报告,该报告从平均值、最小值、最大值、50%、90%、95%、99%等百分位值等维度展示各个时延指标的时延情况。
在本实施例中,所述输出所述时延度量结果包括,但不限于以下一种或者多种方式的组合:
(1)在所述时延度量组件的配置界面上实时显示所述时延度量结果。
例如:在前台界面上可以提供丰富的图形协助进行时延分析,主要分为实时时延曲线以及历史数据分析。用户也可直接发送http请求给时延度量组件得到时延结果自行集成。
其中,实时时延曲线是指:用户指定指标名称(可多选),得到各个指标的实时时延曲线,时延曲线周期性刷新(如每3秒刷新),时延度量组件对周期性刷新的数据集合进行平均值、最大值、最小值、50%、90%、95%、99%等百分位值的计算,前端界面将周期性刷新计算的数据值用曲线连接,并显示。
其中,历史数据分析是指:在指定时间段,根据需要对时延数据进行分析,可以得到以下几种图形:
历史时延曲线:可展示一段时间内指定指标的时延变化趋势,是实时时延曲线的历史表现;
时延分布图:可展示一段时间内多个指标的时延分布情况;
散点/热力图:可展示指定时间段内时延散落情况;
内部时延分布:一条完整回路,一般由多段时延组成,可以清晰看出哪段时延占比较大,包括柱状图和占比扇形图;
在所述时延度量组件的配置界面上还提供查询单条轨迹的详细信息的功能,包括采集点名称和时间戳等。
(2)将所述时延度量结果写入指定文件以供数据重演。
例如:所述指定文件可以为二进制文件,时延度量组件接收到采集点数据后直接将数据结构追加到指定的文件中,后续可以使用保存的文件作为启动参数进行数据重演,即时延度量组件依次读出文件中保存的所有采集点数据进行时延计算,相当于应用程序又重新发送了一份一模一样的采集点数据,即重演。根据需要重演可以得到最终时延统计数据或逐笔时延数据。
(3)响应于请求方向所述时延度量组件的内嵌服务器发送的访问请求,将所述时延度量结果转换为JSON字符串,并将所述JSON字符串发送至所述请求方。
上述实施例可以根据实际请求有针对性地推送时延度量结果。
(4)以所述数据标识为行,以所述采集点标识及所述时间戳为列,将所述时延度量结果存储至时序数据库。
例如:所述时序数据库可以为influxdb数据库。保存的数据主要分为两类:
(1)原始的采集点数据:多个采集点数据会根据数据标识关联为一行,列为各个采集点的名称和时间戳;
(2)周期计算得到的时延数据:时延度量组件每秒计算一次时延,并将时延中间结果保存到influxdb。Influxdb中的表数据对应用程序完全透明,仅供时延度量组件内部使用,后续的实时时延数据的获取以及历史时延数据分析都可以基于influxdb中保存的数据进行。
在本实施例中,所述方法还包括:
从所述时序数据库中获取数据进行历史时延分析。
上述实施例能够实现对历史数据的分析,解决了目前无法对历史的时延数据进行分析及事后排查的问题。
在本实施例中,所述方法还包括:
获取预先定义的轨迹,其中,所述轨迹包括多个采集点,每个采集点具有相同的追踪标识;
利用所述追踪标识对所述多个采集点进行追踪,并记录数据在所述多个采集点间的扭转情况;
当所述多个采集点中有采集点未被追踪到时,将所述轨迹确定为异常轨迹,并将未被追踪到的采集点确定为异常点;
存储所述异常轨迹及所述异常点,并发出异常告警提示。
例如:应用程序正常运行时必然会经过TimePoint1,TimePoint2,……,TimePoint8八个采集点,可以提前在配置界面定义一条轨迹为TimePoint1,TimePoint2,……,TimePoint8,若应用程序运行时同一追踪标识(trace_id)的轨迹未包含上述八个采集点,则会被视为异常轨迹。异常轨迹可以单独保存在异常表中,并发出告警信息,用户可根据告警信息追踪到具体哪个流程异常,然后进行问题排查,进而在出现消息阻塞时,能够提供及时的告警。
同时,若消息A经过TimePoint1,TimePoint2,……,TimePoint8八个采集点,时延度量组件可以根据采集点信息以有向无环图的形式绘制出消息A在各个采集点之间的扭转情况,并给出各点之间的时延情况。
由以上技术方案可以看出,本发明能够在分布式***中,利用每个应用程序内部预先构建的作为独立进程运行的采样引擎及预先构建的以独立程序的形式运行的时延度量组件进行时延度量,解决了无法在应用程序内部处理时延的问题,提高了时延度量的全面性,并且,独立运行的采样引擎及时延度量组件在进行时延度量时不会占用***资源,避免在进行时延度量时影响***的正常运行,并且,由于不占用本地***资源(如CPU(Central Processing Unit,中央处理器)、内存、硬盘等),在高吞吐压力下也能够做到对每笔消息的时延进行实时测量和统计。
如图2所示,是本发明分布式***时延度量装置的较佳实施例的功能模块图。所述分布式***时延度量装置11包括确定单元110、调用单元111、发送单元112、获取单元113、处理单元114、计算单元115。本发明所称的模块/单元是指一种能够被处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
确定单元110确定目标分布式***中每个应用程序上的采集点。
在本实施例中,所述目标分布式***处理的数据通常从所述目标分布式***的外部输入,数据被所述目标分布式***的软件程序加工处理,在各个软件程序之间流动,并有可能产生对外输出。
例如:所述目标分布式***可以为证券交易***。
在本实施例中,每个应用程序上可以包括一些预先配置的特殊处理环节,每个特殊处理环节即可作为一个采集点。
例如:业务处理环节通常是一个流程,该流程中根据业务实际需求需要关注的一些重要的节点即可作为所述采集点。
调用单元111调用每个应用程序内部预先构建的作为独立进程运行的采样引擎,利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息。
具体地,所述采样引擎嵌入在应用程序之中,能够在应用程序内部处理时延。
所述采样引擎是编译在应用程序内部,所以对安全性要求很高。实际运行时,所述采样引擎会作为一个独立进程运行,当所述采样引擎故障甚至crash时,都不会影响到应用程序的正常运行,实现故障隔离。
在本实施例中,所述调用单元111利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息包括:
对于每个应用程序上的预设环节,利用该应用程序对应的采样引擎遍历采集所述预设环节所对应的每个采集点的时间戳,并获取每个采集点的采集点标识;
在采集每个采集点中的首个采集点时,在消息头中增加数据标识;
在采集每个采集点中除所述首个采集点外的其他采集点时,利用所述数据标识标记所述其他采集点;
对每个采集点的采集点标识、所述数据标识及每个采集点的时间戳进行打包,生成该应用程序对应的消息;
整合每个应用程序对应的消息,得到所述时间戳消息。
其中,所述预设环节可以为一个业务环节。
其中,所述采集点标识用于唯一确定采集点处代码,因此利用所述采集点标识能够标记每个采集点。
其中,所述数据标识用于对采集点进行全局关联,具有相同数据标识的采集点属于同一环节。
每个环节对应的采集点都采用相同的数据标识进行标记,能够保证数据采样在各个采集点保持一致。
所述调用单元111调用预先构建的以独立程序的形式运行的时延度量组件。
在本实施例中,所述时延度量组件相当于单独部署的时间戳收集、测量、统计及轨迹追踪服务程序。
发送单元112将所述时间戳消息发送至所述时延度量组件。
在本实施例中,将所述时间戳消息发送至所述时延度量组件后,即可由所述时延度量组件对所述时间戳消息进行分析处理。
在本实施例中,应用程序侧只需要在对时延感兴趣的代码处调用接口进行采集,采集的时间戳信息可以存放在共享内存多队列中,所述采样引擎作为独立进程旁路收集时间戳信息并递交给时延度量组件,不会对应用程序的业务处理流程造成消耗,保证实时性的前提下,能够减小开销。
获取单元113获取所述时延度量组件中配置的待度量的至少一个时延指标。
在本实施例中,所述至少一个时延指标可以根据实际需求提前配置,也可以在所述时延度量组件运行时指定,本发明不限制。
在本实施例中,所述目标分布式***可以包括不同的时延,包括传输时延(即数据在不同的程序之间传输的时延,主要由网络设备及线路的传输时延引起)和处理时延(即数据在一个程序内部加工计算的时延)。
例如:当所述目标分布式***为证券交易***时,所述时延指标可以包括,但不限于以下一种或者多种的组合:
交易执行处理时延(即委托数据在交易执行程序内部的处理时延),委托上行时延(即从委托数据进入网关程序到向交易所报盘的时延),委托回路时延(即从委托数据进入网关程序到从网关程序收到交易所委托确认的时延)等。
处理单元114根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值。
本实施例在进行时延处理时无需依赖于日志,处理效率更高,且不会由于日志信息不全面而导致时延丢失,能够追踪到每个消息的时延情况。
在本实施例中,所述处理单元114根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值包括:
对于每个时延指标,获取所述时延指标对应的数据标识;
从所述时间戳消息中获取具有所述数据标识的采集点作为目标采集点;
确定每个目标采集点的采集点标识;
根据每个目标采集点的采集点标识确定所述时延指标对应的开始采集点及结束采集点;
检测所述开始采集点对应的应用程序与所述结束采集点对应的应用程序是否部署于同一服务器,得到检测结果;
根据所述检测结果计算所述时延指标对应的时延数值。
可以理解的是,分布式***的应用程序大多分散部署在不同服务器上,不同服务器的***时间可能是不同步的,因此为了避免计算不准确,需要根据检测结果有针对性的计算时延数值。
具体地,所述处理单元114根据所述检测结果计算每个时延指标对应的时延数值包括:
(1)当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序部署于同一服务器时,获取所述开始采集点的时间戳作为第一时间戳,及获取所述结束采集点的时间戳作为第二时间戳,计算所述第二时间戳与所述第一时间戳的差,得到所述时延指标对应的时延数值。
可以理解的是,当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序部署于同一服务器时,说明不存在***时间不同步的问题,因此,首尾两个采集点的时间差即为所述时延指标对应的时延数值。
(2)当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序没有部署于同一服务器时,获取所述开始采集点对应的应用程序与所述结束采集点对应的应用程序的相对时间差,获取所述开始采集点的时间戳作为第三时间戳,获取所述结束采集点的时间戳作为第四时间戳,计算所述第四时间戳与所述第三时间戳的差作为第五时间戳,计算所述第五时间戳与所述相对时间差的差,得到所述时延指标对应的时延数值。
可以理解的是,当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序没有部署于同一服务器时,说明可能存在***时间不同步的问题,因此,为了避免计算误差,先获取两个服务器间的时间差,再根据时间差计算时延数值,这样,当处理消息跨组件或者***处理时,即使两个组件或者***时间不一致,也能够计算时延。
例如:Rule = t4–t3– (delta(A) –delta(B))。
其中,Rule表示两个采集点的时延,(delta(A) –delta(B)) 表示两台服务器的相对时间差(如10秒),t4表示结束采集点的时间戳,t3表示开始采集点的时间戳。
计算单元115利用所述时延度量组件对每个时延指标对应的时延数值进行统计计算,得到时延度量结果,并输出所述时延度量结果。
在本实施例中,所述时延度量结果可以包括,但不限于:
(1)按指定周期统计的该周期内各项时延指标的统计值,包括平均值、最小值、最大值、50%、90%、95%、99%等百分位值;
(2)该周期内各时延采集点上的吞吐率。
例如:在一场生产活动结束后生成该场活动的性能报告,该报告从平均值、最小值、最大值、50%、90%、95%、99%等百分位值等维度展示各个时延指标的时延情况。
在本实施例中,所述输出所述时延度量结果包括,但不限于以下一种或者多种方式的组合:
(1)在所述时延度量组件的配置界面上实时显示所述时延度量结果。
例如:在前台界面上可以提供丰富的图形协助进行时延分析,主要分为实时时延曲线以及历史数据分析。用户也可直接发送http请求给时延度量组件得到时延结果自行集成。
其中,实时时延曲线是指:用户指定指标名称(可多选),得到各个指标的实时时延曲线,时延曲线周期性刷新(如每3秒刷新),时延度量组件对周期性刷新的数据集合进行平均值、最大值、最小值、50%、90%、95%、99%等百分位值的计算,前端界面将周期性刷新计算的数据值用曲线连接,并显示。
其中,历史数据分析是指:在指定时间段,根据需要对时延数据进行分析,可以得到以下几种图形:
历史时延曲线:可展示一段时间内指定指标的时延变化趋势,是实时时延曲线的历史表现;
时延分布图:可展示一段时间内多个指标的时延分布情况;
散点/热力图:可展示指定时间段内时延散落情况;
内部时延分布:一条完整回路,一般由多段时延组成,可以清晰看出哪段时延占比较大,包括柱状图和占比扇形图;
在所述时延度量组件的配置界面上还提供查询单条轨迹的详细信息的功能,包括采集点名称和时间戳等。
(2)将所述时延度量结果写入指定文件以供数据重演。
例如:所述指定文件可以为二进制文件,时延度量组件接收到采集点数据后直接将数据结构追加到指定的文件中,后续可以使用保存的文件作为启动参数进行数据重演,即时延度量组件依次读出文件中保存的所有采集点数据进行时延计算,相当于应用程序又重新发送了一份一模一样的采集点数据,即重演。根据需要重演可以得到最终时延统计数据或逐笔时延数据。
(3)响应于请求方向所述时延度量组件的内嵌服务器发送的访问请求,将所述时延度量结果转换为JSON字符串,并将所述JSON字符串发送至所述请求方。
上述实施例可以根据实际请求有针对性地推送时延度量结果。
(4)以所述数据标识为行,以所述采集点标识及所述时间戳为列,将所述时延度量结果存储至时序数据库。
例如:所述时序数据库可以为influxdb数据库。保存的数据主要分为两类:
(1)原始的采集点数据:多个采集点数据会根据数据标识关联为一行,列为各个采集点的名称和时间戳;
(2)周期计算得到的时延数据:时延度量组件每秒计算一次时延,并将时延中间结果保存到influxdb。Influxdb中的表数据对应用程序完全透明,仅供时延度量组件内部使用,后续的实时时延数据的获取以及历史时延数据分析都可以基于influxdb中保存的数据进行。
在本实施例中,从所述时序数据库中获取数据进行历史时延分析。
上述实施例能够实现对历史数据的分析,解决了目前无法对历史的时延数据进行分析及事后排查的问题。
在本实施例中,获取预先定义的轨迹,其中,所述轨迹包括多个采集点,每个采集点具有相同的追踪标识;
利用所述追踪标识对所述多个采集点进行追踪,并记录数据在所述多个采集点间的扭转情况;
当所述多个采集点中有采集点未被追踪到时,将所述轨迹确定为异常轨迹,并将未被追踪到的采集点确定为异常点;
存储所述异常轨迹及所述异常点,并发出异常告警提示。
例如:应用程序正常运行时必然会经过TimePoint1,TimePoint2,……,TimePoint8八个采集点,可以提前在配置界面定义一条轨迹为TimePoint1,TimePoint2,……,TimePoint8,若应用程序运行时同一追踪标识(trace_id)的轨迹未包含上述八个采集点,则会被视为异常轨迹。异常轨迹可以单独保存在异常表中,并发出告警信息,用户可根据告警信息追踪到具体哪个流程异常,然后进行问题排查,进而在出现消息阻塞时,能够提供及时的告警。
同时,若消息A经过TimePoint1,TimePoint2,……,TimePoint8八个采集点,时延度量组件可以根据采集点信息以有向无环图的形式绘制出消息A在各个采集点之间的扭转情况,并给出各点之间的时延情况。
由以上技术方案可以看出,本发明能够在分布式***中,利用每个应用程序内部预先构建的作为独立进程运行的采样引擎及预先构建的以独立程序的形式运行的时延度量组件进行时延度量,解决了无法在应用程序内部处理时延的问题,提高了时延度量的全面性,并且,独立运行的采样引擎及时延度量组件在进行时延度量时不会占用***资源,避免在进行时延度量时影响***的正常运行,并且,由于不占用本地***资源(如CPU(Central Processing Unit,中央处理器)、内存、硬盘等),在高吞吐压力下也能够做到对每笔消息的时延进行实时测量和统计。
如图3所示,是本发明实现分布式***时延度量方法的较佳实施例的计算机设备的结构示意图。
所述计算机设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如分布式***时延度量程序。
本领域技术人员可以理解,所述示意图仅仅是计算机设备1的示例,并不构成对计算机设备1的限定,所述计算机设备1既可以是总线型结构,也可以是星形结构,所述计算机设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如所述计算机设备1还可以包括输入输出设备、网络接入设备等。
需要说明的是,所述计算机设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是计算机设备1的内部存储单元,例如该计算机设备1的移动硬盘。存储器12在另一些实施例中也可以是计算机设备1的外部存储设备,例如计算机设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括计算机设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于计算机设备1的应用软件及各类数据,例如分布式***时延度量程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述计算机设备1的控制核心(Control Unit),利用各种接口和线路连接整个计算机设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行分布式***时延度量程序等),以及调用存储在所述存储器12内的数据,以执行计算机设备1的各种功能和处理数据。
所述处理器13执行所述计算机设备1的操作***以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个分布式***时延度量方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在所述计算机设备1中的执行过程。例如,所述计算机程序可以被分割成确定单元110、调用单元111、发送单元112、获取单元113、处理单元114、计算单元115。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述分布式***时延度量方法的部分。
所述计算机设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器等。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根直线表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
尽管未示出,所述计算机设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述计算机设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机设备1与其他计算机设备之间建立通信连接。
可选地,该计算机设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
图3仅示出了具有组件12-13的计算机设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对所述计算机设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图1,所述计算机设备1中的所述存储器12存储多个指令以实现一种分布式***时延度量方法,所述处理器13可执行所述多个指令从而实现:
确定目标分布式***中每个应用程序上的采集点;
调用每个应用程序内部预先构建的作为独立进程运行的采样引擎,利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息;
调用预先构建的以独立程序的形式运行的时延度量组件;
将所述时间戳消息发送至所述时延度量组件;
获取所述时延度量组件中配置的待度量的至少一个时延指标;
根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值;
利用所述时延度量组件对每个时延指标对应的时延数值进行统计计算,得到时延度量结果,并输出所述时延度量结果。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
需要说明的是,本案中所涉及到的数据均为合法取得。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本发明可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种分布式***时延度量方法,其特征在于,所述分布式***时延度量方法包括:
确定目标分布式***中每个应用程序上的采集点;
调用每个应用程序内部预先构建的作为独立进程运行的采样引擎,利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息;
调用预先构建的以独立程序的形式运行的时延度量组件;
将所述时间戳消息发送至所述时延度量组件;
获取所述时延度量组件中配置的待度量的至少一个时延指标;
根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值;
利用所述时延度量组件对每个时延指标对应的时延数值进行统计计算,得到时延度量结果,并输出所述时延度量结果。
2.如权利要求1所述的分布式***时延度量方法,其特征在于,所述利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息包括:
对于每个应用程序上的预设环节,利用该应用程序对应的采样引擎遍历采集所述预设环节所对应的每个采集点的时间戳,并获取每个采集点的采集点标识;
在采集每个采集点中的首个采集点时,在消息头中增加数据标识;
在采集每个采集点中除所述首个采集点外的其他采集点时,利用所述数据标识标记所述其他采集点;
对每个采集点的采集点标识、所述数据标识及每个采集点的时间戳进行打包,生成该应用程序对应的消息;
整合每个应用程序对应的消息,得到所述时间戳消息。
3.如权利要求2所述的分布式***时延度量方法,其特征在于,所述根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值包括:
对于每个时延指标,获取所述时延指标对应的数据标识;
从所述时间戳消息中获取具有所述数据标识的采集点作为目标采集点;
确定每个目标采集点的采集点标识;
根据每个目标采集点的采集点标识确定所述时延指标对应的开始采集点及结束采集点;
检测所述开始采集点对应的应用程序与所述结束采集点对应的应用程序是否部署于同一服务器,得到检测结果;
根据所述检测结果计算所述时延指标对应的时延数值。
4.如权利要求3所述的分布式***时延度量方法,其特征在于,所述根据所述检测结果计算每个时延指标对应的时延数值包括:
当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序部署于同一服务器时,获取所述开始采集点的时间戳作为第一时间戳,及获取所述结束采集点的时间戳作为第二时间戳,计算所述第二时间戳与所述第一时间戳的差,得到所述时延指标对应的时延数值;或者
当所述检测结果显示所述开始采集点对应的应用程序与所述结束采集点对应的应用程序没有部署于同一服务器时,获取所述开始采集点对应的应用程序与所述结束采集点对应的应用程序的相对时间差,获取所述开始采集点的时间戳作为第三时间戳,获取所述结束采集点的时间戳作为第四时间戳,计算所述第四时间戳与所述第三时间戳的差作为第五时间戳,计算所述第五时间戳与所述相对时间差的差,得到所述时延指标对应的时延数值。
5.如权利要求2所述的分布式***时延度量方法,其特征在于,所述输出所述时延度量结果包括以下一种或者多种方式的组合:
在所述时延度量组件的配置界面上实时显示所述时延度量结果;
将所述时延度量结果写入指定文件以供数据重演;
响应于请求方向所述时延度量组件的内嵌服务器发送的访问请求,将所述时延度量结果转换为JSON字符串,并将所述JSON字符串发送至所述请求方;
以所述数据标识为行,以所述采集点标识及所述时间戳为列,将所述时延度量结果存储至时序数据库。
6.如权利要求1所述的分布式***时延度量方法,其特征在于,所述方法还包括:
获取预先定义的轨迹,其中,所述轨迹包括多个采集点,每个采集点具有相同的追踪标识;
利用所述追踪标识对所述多个采集点进行追踪,并记录数据在所述多个采集点间的扭转情况;
当所述多个采集点中有采集点未被追踪到时,将所述轨迹确定为异常轨迹,并将未被追踪到的采集点确定为异常点;
存储所述异常轨迹及所述异常点,并发出异常告警提示。
7.如权利要求5所述的分布式***时延度量方法,其特征在于,所述方法还包括:
从所述时序数据库中获取数据进行历史时延分析。
8.一种分布式***时延度量装置,其特征在于,所述分布式***时延度量装置包括:
确定单元,用于确定目标分布式***中每个应用程序上的采集点;
调用单元,用于调用每个应用程序内部预先构建的作为独立进程运行的采样引擎,利用每个采样引擎采集对应应用程序上采集点的时间戳,并根据采集的时间戳生成时间戳消息;
所述调用单元,还用于调用预先构建的以独立程序的形式运行的时延度量组件;
发送单元,用于将所述时间戳消息发送至所述时延度量组件;
获取单元,用于获取所述时延度量组件中配置的待度量的至少一个时延指标;
处理单元,用于根据所述至少一个时延指标,利用所述时延度量组件对所述时间戳消息进行处理,得到每个时延指标对应的时延数值;
计算单元,用于利用所述时延度量组件对每个时延指标对应的时延数值进行统计计算,得到时延度量结果,并输出所述时延度量结果。
9.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至7中任意一项所述的分布式***时延度量方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现如权利要求1至7中任意一项所述的分布式***时延度量方法。
CN202211094870.0A 2022-09-08 2022-09-08 分布式***时延度量方法、装置、设备及介质 Pending CN115168080A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211094870.0A CN115168080A (zh) 2022-09-08 2022-09-08 分布式***时延度量方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211094870.0A CN115168080A (zh) 2022-09-08 2022-09-08 分布式***时延度量方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115168080A true CN115168080A (zh) 2022-10-11

Family

ID=83482410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211094870.0A Pending CN115168080A (zh) 2022-09-08 2022-09-08 分布式***时延度量方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115168080A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039819A (zh) * 2018-08-16 2018-12-18 深圳华锐金融技术股份有限公司 时延统计方法、装置、***及存储介质
CN109656574A (zh) * 2018-11-27 2019-04-19 深圳华锐金融技术股份有限公司 交易时延度量方法、装置、计算机设备及存储介质
CN113297037A (zh) * 2021-07-27 2021-08-24 华锐分布式(北京)技术有限公司 分布式***跟踪监控方法、***及介质
CN114816778A (zh) * 2021-01-21 2022-07-29 华为技术有限公司 一种时延控制方法、***及相关设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039819A (zh) * 2018-08-16 2018-12-18 深圳华锐金融技术股份有限公司 时延统计方法、装置、***及存储介质
CN109656574A (zh) * 2018-11-27 2019-04-19 深圳华锐金融技术股份有限公司 交易时延度量方法、装置、计算机设备及存储介质
CN114816778A (zh) * 2021-01-21 2022-07-29 华为技术有限公司 一种时延控制方法、***及相关设备
CN113297037A (zh) * 2021-07-27 2021-08-24 华锐分布式(北京)技术有限公司 分布式***跟踪监控方法、***及介质

Similar Documents

Publication Publication Date Title
CN112148577A (zh) 数据异常检测方法、装置、电子设备及存储介质
US8095830B1 (en) Diagnosis of system health with event logs
CN110162445A (zh) 基于主机日志及性能指标的主机健康评价方法及装置
CN113918361A (zh) 基于物联网规则引擎的终端控制方法、装置、设备及介质
CN108989136A (zh) 业务端到端性能监控方法及装置
JP2010117757A (ja) 性能監視システムおよび性能監視方法
CN111652280A (zh) 基于行为的目标物数据分析方法、装置及存储介质
CN111400189A (zh) 代码覆盖率监测方法、装置、电子设备及存储介质
CN112702228A (zh) 服务限流响应方法、装置、电子设备及可读存储介质
CN113157521B (zh) 用于区块链全生命周期的监控方法和监控***
CN113656369A (zh) 一种大数据场景下的日志分布式流式采集及计算方法
CN113407374A (zh) 故障处理方法、装置、故障处理设备及存储介质
CN110928750B (zh) 数据处理方法、装置及设备
CN115168080A (zh) 分布式***时延度量方法、装置、设备及介质
CN114124878B (zh) 行情数据下发方法、装置、***、设备及介质
CN115913763A (zh) 流量异常检测方法、装置、设备及介质
CN110837970A (zh) 一种区域卫生平台质控方法和***
CN114490262A (zh) 数据库监控方法、装置、设备及存储介质
CN106161058A (zh) 一种告警分级方法及装置
CN113285978B (zh) 基于区块链和大数据的故障识别方法及通用计算节点
CN114742412A (zh) 一种软件技术服务***及方法
CN114268559A (zh) 基于tf-idf算法的定向网络检测方法、装置、设备及介质
CN112905470A (zh) 接口调用方法、装置、计算机设备及介质
US20230334068A1 (en) Data processing method and apparatus thereof, electronic device, and computer-readable storage medium
CN114598624A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20221011

RJ01 Rejection of invention patent application after publication