CN114143224A - 数据传输质量监控方法及系统 - Google Patents

数据传输质量监控方法及系统 Download PDF

Info

Publication number
CN114143224A
CN114143224A CN202111443363.9A CN202111443363A CN114143224A CN 114143224 A CN114143224 A CN 114143224A CN 202111443363 A CN202111443363 A CN 202111443363A CN 114143224 A CN114143224 A CN 114143224A
Authority
CN
China
Prior art keywords
data
component
data transmission
current
processing time
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.)
Granted
Application number
CN202111443363.9A
Other languages
English (en)
Other versions
CN114143224B (zh
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202111443363.9A priority Critical patent/CN114143224B/zh
Publication of CN114143224A publication Critical patent/CN114143224A/zh
Application granted granted Critical
Publication of CN114143224B publication Critical patent/CN114143224B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据传输质量监控方法,该方法包括:针对数据传输链路中每个组件进行统一的元信息设置,其中,所述元信息中的指定项目在所述数据传输链路的每个所述组件之间全程透传;根据所述元信息在每个所述组件中进行埋点数据采集,并根据透传的所述指定项目对所述埋点数据进行时间对齐;将每个所述组件中采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。本申请还公开了一种数据传输质量监控系统、电子装置和计算机可读存储介质。由此,能够实现所述数据传输链路中组件内、组件间以及全链路的质量监控。

Description

数据传输质量监控方法及系统
技术领域
本申请涉及数据传输技术领域,尤其涉及一种数据传输质量监控方法、系统、电子装置及计算机可读存储介质。
背景技术
数据传输也可以叫做数据集成,是将不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。数据传输质量监控是以端到端的方式,对单个数据流的传输状态进行指标采集和上报,根据预先制定的规则,判断数据流传输是否正常的一种行为。其中,数据流是一个业务或者一个应用产生的数据,隶属于一个数据流的数据通常使用相同的标识,并且共享相同的元信息。
现有的技术对数据流的质量监控往往只针对单一组件进行监控,无法对端到端的整体链路进行监控,并且存在埋点混乱等问题。
发明内容
本申请的主要目的在于提出一种数据传输质量监控方法、系统、电子装置及计算机可读存储介质,旨在解决如何对端到端的整体链路进行监控的问题。
为实现上述目的,本申请实施例提供了一种数据传输质量监控方法,应用于数据传输链路,所述链路包括多个数据传输组件,所述方法包括:
针对每个所述组件进行统一的元信息设置,其中,所述元信息中的指定项目在所述数据传输链路的每个所述组件之间全程透传;
根据所述元信息在每个所述组件中进行埋点数据采集,并根据透传的所述指定项目对所述埋点数据进行时间对齐;
将每个所述组件中采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
可选地,所述元信息包括数据生成时间、数据处理时间、数据流标识、组件标识、标识类型、埋点数量、错误信息;所述指定项目包括数据生成时间、数据处理时间、数据流标识。
可选地,所述指定项目中的所述数据生成时间和所述数据流标识在所述数据传输链路的第一个所述组件中生成,并传送至后续所有所述组件;所述数据处理时间在每个所述组件的输入和输出时更新,更新为当前时间。
可选地,所述根据所述元信息在每个所述组件中进行埋点数据采集包括:
根据所述元信息对每个所述组件中的数据传输质量埋点模型进行统一,抽象为入流量、处理错误、出流量。
可选地,所述根据所述元信息在每个所述组件中进行埋点数据采集,并根据透传的所述指定项目对所述埋点数据进行时间对齐包括:
统计当前组件中当前数据流的输入条数,并根据所述数据处理时间计算上一组件到当前组件的延迟;
统计在当前组件中当前数据流的处理错误信息;
统计当前组件中当前数据流的输出条数,并且根据所述数据处理时间计算当前组件内部的处理耗时。
可选地,所述统计当前组件中当前数据流的输入条数,并根据所述数据处理时间计算上一组件到当前组件的延迟包括:
在当前组件输入的数据中根据所述数据流标识统计当前数据流的输入条数;
根据上一组件输出时传送的所述数据处理时间,以及当前组件输入时更新的所述数据处理时间,计算出上一组件到当前组件的延迟。
可选地,所述统计当前组件中当前数据流的输出条数,并且根据所述数据处理时间计算当前组件内部的处理耗时包括:
在当前组件输出的数据中根据所述数据流标识统计当前数据流的输出条数;
根据当前组件输入时更新的所述数据处理时间,以及当前组件输出时再次更新的所述数据处理时间,计算出当前数据流在当前组件内部的处理耗时。
此外,为实现上述目的,本申请实施例还提供一种数据传输质量监控方法,应用于数据传输链路的组件中,所述方法包括:
接收针对所述数据传输链路中所有组件统一的元信息设置;
接收上一组件传送的所述元信息中的指定项目;
根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐;
将采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
可选地,所述方法还包括:
将在所述组件中更新后的所述指定项目传送至下一组件。
可选地,所述元信息包括数据生成时间、数据处理时间、数据流标识、组件标识、标识类型、埋点数量、错误信息;所述指定项目包括数据生成时间、数据处理时间、数据流标识。
可选地,所述指定项目中的所述数据生成时间和所述数据流标识在所述数据传输链路的第一个所述组件中生成,并传送至后续所有所述组件;所述数据处理时间在所述组件的输入和输出时更新,更新为当前时间。
可选地,所述根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐包括:
统计所述组件中当前数据流的输入条数,并根据所述数据处理时间计算所述上一组件到所述组件的延迟;
统计在所述组件中当前数据流的处理错误信息;
统计所述组件中当前数据流的输出条数,并且根据所述数据处理时间计算所述组件内部的处理耗时。
可选地,所述统计所述组件中当前数据流的输入条数,并根据所述数据处理时间计算所述上一组件到所述组件的延迟包括:
在所述组件输入的数据中根据所述数据流标识统计当前数据流的输入条数;
根据所述上一组件输出时传送的所述数据处理时间,以及所述组件输入时更新的所述数据处理时间,计算出所述上一组件到所述组件的延迟。
可选地,所述统计所述组件中当前数据流的输出条数,并且根据所述数据处理时间计算所述组件内部的处理耗时包括:
在所述组件输出的数据中根据所述数据流标识统计当前数据流的输出条数;
根据所述组件输入时更新的所述数据处理时间,以及所述组件输出时再次更新的所述数据处理时间,计算出当前数据流在所述组件内部的处理耗时。
可选地,所述将在所述组件中更新后的所述指定项目传送至下一组件包括:
将当前数据流对应的所述数据生成时间、所述数据流标识,以及在所述组件输出时更新的所述数据处理时间传送至下一组件。
为实现上述目的,本申请实施例还提供一种数据传输质量监控系统,应用于数据传输链路的组件中,所述系统包括:
接收模块,用于接收针对所述数据传输链路中所有组件统一的元信息设置及上一组件传送的所述元信息中的指定项目;
采集模块,用于根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐;
上报模块,用于将采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输质量监控程序,所述数据传输质量监控程序被所述处理器执行时实现如上述的数据传输质量监控方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据传输质量监控程序,所述数据传输质量监控程序被处理器执行时实现如上述的数据传输质量监控方法。
本申请实施例提出的数据传输质量监控方法、系统、电子装置及计算机可读存储介质,通过对所述数据传输链路中每个组件进行统一的元信息设置,其中指定项目在整个链路全程透传,并对每个组件中的数据传输质量埋点模型进行统一的抽象,从而在对整个链路的数据传输质量监控时可以进行时间对齐,做到时间端到端的精确统计,可以精准的定位到数据传输中的丢失、重复、延迟等质量信息,实现所述数据传输链路中组件内、组件间以及全链路的质量监控。
附图说明
图1为实现本申请各个实施例的一种应用环境架构图;
图2为本申请第一实施例提出的一种数据传输质量监控方法的流程图;
图3为为每个组件中的数据传输质量埋点模型的示意图;
图4为图2中步骤S202的细化流程示意图;
图5为监控端的一种展示效果示意图;
图6为监控端的另一种展示效果示意图;
图7为从数据传输链路到监控端的一种整体流程示意图;
图8为本申请第二实施例提出的一种数据传输质量监控方法的流程图;
图9为本申请第三实施例提出的一种电子装置的硬件架构示意图;
图10为本申请第四实施例提出的一种数据传输质量监控系统的模块示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于数据传输链路2、监控端4的应用环境中。
其中,所述数据传输链路2用于对数据流进行端到端的传输,所述数据传输链路2包括多个数据传输组件6(例如网关、路由器、交换机等),因此数据流的传输过程中会流经多个所述组件6。在本申请各个实施例中,针对每个所述组件6进行统一的元信息设置,并在每个所述组件中根据所述元信息进行埋点数据采集,然后将所述埋点数据上报到所述监控端4。
所述监控端4中包括数据库8,用于将接收到的每个所述组件6上报的埋点数据存入所述数据库8,并根据所述数据库8中的所述埋点数据进行整个所述数据传输链路2的数据传输质量监控分析,然后对分析结果进行展示和报警。所述监控端4可以是服务器。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述数据传输链路2和所述监控端4之间以及所述数据传输链路2中的多个所述组件6之间通过有线或无线网络通信连接,以进行数据传输和交互。
现有的技术通常只针对单一的所述组件6进行质量监控,并且在所述组件6内部通常使用数据处理时间(process_time)进行埋点。由于数据流的传输过程中会流经多个所述组件6,存在传输时延,因此,多个所述组件6之间的质量数据无法时间对齐,也就无法精确的监控出端到端的数据传输质量。除此之外,现有技术未对传输质量模型进行统一的抽象,也存在埋点混乱、成本高的问题。
在本申请各个实施例中,对于各个所述组件6中数据传输的质量监控进行了一种模型化实现,将数据传输过程中流经的每个所述组件6的数据质量监控抽象为三类:入流量、处理错误、出流量。质量埋点数据作为时序数据,并且抽象出数据生成时间(ctime)、数据处理时间(process_time)、组件标识(source)、标识类型(key,主要指每个组件6中的输入、内部处理或输出)、埋点数量(value,埋点记录的数据流数量)、错误信息(error)等元信息,进行分布式生成和集中化采集,并且各个所述组件6之间使用一致的ctime进行数据的埋点。因此,所述监控端4可以基于全局统一的ctime进行时间轴展示和对齐,做到时间端到端的精确统计,可以精准的定位到数据传输中的丢失、重复、延迟等质量信息,实现所述数据传输链路2中组件内、组件间以及全链路的质量监控。
实施例一
如图2所示,为本申请第一实施例提出的一种数据传输质量监控方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述数据传输链路作为执行主体对该方法进行说明。
该方法包括以下步骤:
S200,针对所述数据传输链路中每个组件进行统一的元信息设置。
在本实施例中,将数据传输过程中流经的每个所述组件的数据质量监控抽象为三类:入流量、处理错误、出流量。将埋点数据抽象出数据生成时间(ctime)、数据处理时间(process_time)、数据流标识(logid)、组件标识(source)、标识类型(key)、埋点数量(value)、错误信息(error)等元信息,从而进行分布式生成和集中化采集。
S202,根据所述元信息在每个所述组件中进行埋点数据采集,并根据透传的指定项目对所述埋点数据进行时间对齐。
在本实施例中,根据全程统一的所述元信息设置,对于数据传输的质量监控进行了一种模型化实现,数据传输过程中会流经多个组件,而对每个所述组件中数据传输的质量埋点模型进行了统一的抽象。如图3所示,为每个所述组件中的数据传输质量埋点模型的示意图。
每个所述组件在输入、内部处理和输出三个方面针对所传输的数据流进行埋点数据的采集。数据流是一个业务或者一个应用产生的数据,隶属于一个数据流的数据通常使用相同的标识进行标记,并且共享相同的元信息。
其中,有一部分元信息(指定项目)需要在数据传输全程中透传,即在所述数据传输链路的每个组件中都要进行传递。这些元信息(指定项目)包含:
ctime:数据生成时间,在数据传输链路第一级(例如第一个组件)生成,并传送至后续所有组件。
logid:数据流标识,在数据传输链路第一级生成,并传送至后续所有组件。
process_time:数据处理时间,在每个组件的输入和输出更新,更新为当前时间。
通过这些云信息的全程透传,可以保证各个所述组件之间使用一致的ctime进行数据的埋点,以进行时间对对齐,并且可以根据process_time计算组件内部的处理耗时和组件间的延迟。
另外,通过预先设置时间窗口(例如一分钟),可以根据logid在每个组件的输入和输出分别统计相应数据流的入流量(输入条数)和出流量(输出条数)。
具体而言,进一步参阅图4,为上述步骤S202的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S202具体包括:
S2020,统计当前组件中当前数据流的输入条数,并根据所述数据处理时间计算上一组件到当前组件的延迟。
在输入处的埋点接口为:TracerInputReceive(ctime int64,logId string,keystring)。其中,ctime即数据生成时间,是在数据传输链路第一级生成,并且作为元信息在整个数据传输链路中透传。另外,当前组件在当前数据流的数据输入时还要更新process_time。
在当前组件输入的数据中根据logId,可以统计当前数据流的输入条数。根据上一组件输出时传送的process_time,以及当前组件输入时更新的process_time,可以计算出上一组件到当前组件的延迟。
S2022,统计在当前组件中当前数据流的处理错误信息。
在内部处理处的埋点接口为:TracerError(ctime int64,logId string,keystring,msg string)。其中msg为具体错误信息,ctime即数据生成时间同样在整个数据传输链路中透传,以进行时间对齐。
在当前组件中根据logId和msg,可以统计出当前数据流在当前组件内部处理时的错误信息,例如错误类型、错误次数等。
S2024,统计当前组件中当前数据流的输出条数,并且根据所述数据处理时间计算当前组件内部的处理耗时。
在输出处的埋点接口为:TracerOutputSend(ctime int64,logId string,keystring)。其中ctime即数据生成时间同样在整个数据传输链路中透传,以进行时间对齐。另外,当前组件在当前数据流的数据输出时也要更新process_time。
在当前组件输出的数据中根据logId,可以统计当前数据流的输出条数。根据当前组件输入时更新的process_time,以及当前组件输出时再次更新的process_time,可以计算出当前数据流在当前组件内部的处理耗时(本层内部的延迟)。
回到图2,S204,将每个所述组件中采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
每个所述组件从输入、内部处理、输出三种类型采集到所述埋点数据后,定时(例如一分钟)将所述埋点数据上报至监控端。监控端接收所述埋点数据后放入消息队列,依次处理所述消息队列中的数据后存储至数据库,然后根据所述数据库中的数据对所述数据传输链路中所述数据流的传输质量进行多维度的分析,并进行相应展示和报警。
由于所述数据传输链路中每个组件进行了统一的元信息设置和相应埋点数据的采集,因此所述监控端可以基于全局统一的ctime进行时间轴展示和对齐,做到时间端到端的精确统计。并且,可以精准的定位到数据传输中的丢失、重复、延迟等质量信息,例如可以计算出数据重复率(单位时间内,重复的数据占总数据量的比例)、数据丢失率(单位时间内,丢失的数据占总数据量的比例)、数据延迟(单位时间内,数据从发送到接收所消耗的时间)。从而,实现所述数据传输链路中组件内、组件间以及全链路的质量监控。
如图5所示,为所述监控端的一种展示效果示意图。在图5中,展示了所述数据传输链路中lancer-bfe-agent、gateway2、lancer-collector三层组件对当前数据流的处理情况。可以看出,三层组件间数据条数一致,表明数据未出现丢失。
如图6所示,为所述监控端的另一种展示效果示意图。在图6中,展示了所述数据传输链路中端到端的数据处理延迟分布。从图6中可以看出每一层组件中数据处理延迟时间和所占比例。
如图7所示,为从所述数据传输链路到所述监控端的一种整体流程示意图。在图7中,在所述数据传输链路的多个组件中根据统一的云信息设置进行埋点数据采集,然后上报到监控端。监控端收集所述埋点数据后放入消息队列,再存入数据库,最后进行统一的展示和报警。该整体流程中各个步骤的具体说明参见上述第一实施例的相关描述,在此不再赘述。
本实施例提出的数据传输质量监控方法,通过对所述数据传输链路中每个组件进行统一的元信息设置,其中指定项目在整个链路全程透传,并对每个组件中的数据传输质量埋点模型进行统一的抽象,从而在对整个链路的数据传输质量监控时可以进行时间对齐,做到时间端到端的精确统计,可以精准的定位到数据传输中的丢失、重复、延迟等质量信息,实现所述数据传输链路中组件内、组件间以及全链路的质量监控。
实施例二
如图8所示,为本申请第二实施例提出的一种数据传输质量监控方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述数据传输链路中的单个组件作为执行主体对该方法进行说明。
该方法包括以下步骤:
S300,接收针对所述数据传输链路中所有组件统一的元信息设置。
在本实施例中,将数据传输过程中流经的每个所述组件的数据质量监控抽象为三类:入流量、处理错误、出流量。将埋点数据抽象出数据生成时间(ctime)、数据处理时间(process_time)、数据流标识(logid)、组件标识(source)、标识类型(key)、埋点数量(value)、错误信息(error)等元信息,从而进行分布式生成和集中化采集。
所述组件接收针对所有组件统一的上述元信息设置后,即可对流经的数据流进行埋点数据采集。
S301,接收上一组件传送的所述元信息中的指定项目。
上述统一设置的元信息中,有一部分元信息(所述指定项目)需要在数据传输全程中透传,即在所述数据传输链路的每个组件中都要进行传递。这些元信息(指定项目)包含:
ctime:数据生成时间,在数据传输链路第一级(例如第一个组件)生成,并传送至后续所有组件。
logid:数据流标识,在数据传输链路第一级生成,并传送至后续所有组件。
process_time:数据处理时间,在每个组件的输入和输出更新,更新为当前时间。
所述组件可以接收到上一组件传送的所述元信息中的所述指定项目。值得注意的是,当所述组件为所述数据传输链路的第一个组件时,直接在所述组件中生成所述指定项目,由于不存在上一个组件,不会从上一个组件进行接收。
S302,根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐。
在本实施例中,根据全程统一的所述元信息设置,对于数据传输的质量监控进行了一种模型化实现,数据传输过程中会流经多个组件,而对每个所述组件中数据传输的质量埋点模型进行了统一的抽象。每个所述组件在输入、内部处理和输出三个方面针对所传输的数据流进行埋点数据的采集。数据流是一个业务或者一个应用产生的数据,隶属于一个数据流的数据通常使用相同的标识进行标记,并且共享相同的元信息。
通过所述指定项目的全程透传,可以保证各个所述组件之间使用一致的ctime进行数据的埋点,以进行时间对对齐,并且可以根据process_time计算组件内部的处理耗时和组件间的延迟。
另外,通过预先设置时间窗口(例如一分钟),可以根据logid在所述组件的输入和输出分别统计相应数据流的入流量(输入条数)和出流量(输出条数)。
具体而言,在所述组件中,所述埋点数据采集主要包括:
(1)统计所述组件中当前数据流的输入条数,并根据所述数据处理时间计算上一组件到所述组件的延迟。
在输入处的埋点接口为:TracerInputReceive(ctime int64,logId string,keystring)。其中,ctime即数据生成时间,是在数据传输链路第一级生成,并且作为元信息在整个数据传输链路中透传。另外,所述组件在当前数据流的数据输入时还要更新process_time。
在所述组件输入的数据中根据logId,可以统计当前数据流的输入条数。根据上一组件输出时传送的process_time,以及所述组件输入时更新的process_time,可以计算出上一组件到所述组件的延迟。
(2)统计在所述组件中当前数据流的处理错误信息。
在内部处理处的埋点接口为:TracerError(ctime int64,logId string,keystring,msg string)。其中msg为具体错误信息,ctime即数据生成时间同样在整个数据传输链路中透传,以进行时间对齐。
在所述组件中根据logId和msg,可以统计出当前数据流在所述组件内部处理时的错误信息,例如错误类型、错误次数等。
(3)统计所述组件中当前数据流的输出条数,并且根据所述数据处理时间计算所述组件内部的处理耗时。
在输出处的埋点接口为:TracerOutputSend(ctime int64,logId string,keystring)。其中ctime即数据生成时间同样在整个数据传输链路中透传,以进行时间对齐。另外,所述组件在当前数据流的数据输出时也要更新process_time。
在所述组件输出的数据中根据logId,可以统计当前数据流的输出条数。根据所述组件输入时更新的process_time,以及所述组件输出时再次更新的process_time,可以计算出当前数据流在所述组件内部的处理耗时(本层内部的延迟)。
S304,将采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
所述组件从输入、内部处理、输出三种类型采集到所述埋点数据后,定时(例如一分钟)将所述埋点数据上报至监控端。监控端接收所述埋点数据后放入消息队列,依次处理所述消息队列中的数据后存储至数据库,然后根据所述数据库中的数据对所述数据传输链路中所述数据流的传输质量进行多维度的分析,并进行相应展示和报警。
由于所述数据传输链路中每个组件进行了统一的元信息设置和相应埋点数据的采集,因此所述监控端可以基于全局统一的ctime进行时间轴展示和对齐,做到时间端到端的精确统计。并且,可以精准的定位到数据传输中的丢失、重复、延迟等质量信息,例如可以计算出数据重复率(单位时间内,重复的数据占总数据量的比例)、数据丢失率(单位时间内,丢失的数据占总数据量的比例)、数据延迟(单位时间内,数据从发送到接收所消耗的时间)。从而,实现所述数据传输链路中组件内、组件间以及全链路的质量监控。
优选地,在所述组件中更新后的所述指定项目,还需要传送至下一组件。具体地,所述组件将当前数据流对应的所述数据生成时间、所述数据流标识(这两个是在所述数据传输链路的第一个组件中生成的,不需要更新),以及在所述组件输出时更新的所述数据处理时间传送至下一组件。
实施例三
如图9所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图9仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述数据传输链路或所述组件。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如数据传输质量监控系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述数据传输质量监控系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
实施例四
如图10所示,为本申请第四实施例提出一种数据传输质量监控系统60的模块示意图。所述数据传输质量监控系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述数据传输质量监控系统60包括:
接收模块600,用于接收针对所述数据传输链路中所有组件统一的元信息设置及上一组件传送的所述元信息中的指定项目。
在本实施例中,将数据传输过程中流经的每个所述组件的数据质量监控抽象为三类:入流量、处理错误、出流量。将埋点数据抽象出数据生成时间(ctime)、数据处理时间(process_time)、数据流标识(logid)、组件标识(source)、标识类型(key)、埋点数量(value)、错误信息(error)等元信息,从而进行分布式生成和集中化采集。
所述组件接收针对所有组件统一的上述元信息设置后,即可对流经的数据流进行埋点数据采集。
上述统一设置的元信息中,有一部分元信息(所述指定项目)需要在数据传输全程中透传,即在所述数据传输链路的每个组件中都要进行传递。这些元信息(指定项目)包含:
ctime:数据生成时间,在数据传输链路第一级(例如第一个组件)生成,并传送至后续所有组件。
logid:数据流标识,在数据传输链路第一级生成,并传送至后续所有组件。
process_time:数据处理时间,在每个组件的输入和输出更新,更新为当前时间。
接收模块600可以接收到上一组件传送的所述元信息中的所述指定项目。值得注意的是,当所述组件为所述数据传输链路的第一个组件时,直接在所述组件中生成所述指定项目,由于不存在上一个组件,不会从上一个组件进行接收。
采集模块602,用于根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐。
在本实施例中,根据全程统一的所述元信息设置,对于数据传输的质量监控进行了一种模型化实现,数据传输过程中会流经多个组件,而对每个所述组件中数据传输的质量埋点模型进行了统一的抽象。每个所述组件在输入、内部处理和输出三个方面针对所传输的数据流进行埋点数据的采集。数据流是一个业务或者一个应用产生的数据,隶属于一个数据流的数据通常使用相同的标识进行标记,并且共享相同的元信息。
通过所述指定项目的全程透传,可以保证各个所述组件之间使用一致的ctime进行数据的埋点,以进行时间对对齐,并且可以根据process_time计算组件内部的处理耗时和组件间的延迟。
另外,通过预先设置时间窗口(例如一分钟),可以根据logid在所述组件的输入和输出分别统计相应数据流的入流量(输入条数)和出流量(输出条数)。
具体而言,在所述组件中,所述埋点数据采集主要包括:
(1)统计所述组件中当前数据流的输入条数,并根据所述数据处理时间计算上一组件到所述组件的延迟。
在输入处的埋点接口为:TracerInputReceive(ctime int64,logId string,keystring)。其中,ctime即数据生成时间,是在数据传输链路第一级生成,并且作为元信息在整个数据传输链路中透传。另外,所述组件在当前数据流的数据输入时还要更新process_time。
在所述组件输入的数据中根据logId,可以统计当前数据流的输入条数。根据上一组件输出时传送的process_time,以及所述组件输入时更新的process_time,可以计算出上一组件到所述组件的延迟。
(2)统计在所述组件中当前数据流的处理错误信息。
在内部处理处的埋点接口为:TracerError(ctime int64,logId string,keystring,msg string)。其中msg为具体错误信息,ctime即数据生成时间同样在整个数据传输链路中透传,以进行时间对齐。
在所述组件中根据logId和msg,可以统计出当前数据流在所述组件内部处理时的错误信息,例如错误类型、错误次数等。
(3)统计所述组件中当前数据流的输出条数,并且根据所述数据处理时间计算所述组件内部的处理耗时。
在输出处的埋点接口为:TracerOutputSend(ctime int64,logId string,keystring)。其中ctime即数据生成时间同样在整个数据传输链路中透传,以进行时间对齐。另外,所述组件在当前数据流的数据输出时也要更新process_time。
在所述组件输出的数据中根据logId,可以统计当前数据流的输出条数。根据所述组件输入时更新的process_time,以及所述组件输出时再次更新的process_time,可以计算出当前数据流在所述组件内部的处理耗时(本层内部的延迟)。
上报模块604,用于将采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
所述组件从输入、内部处理、输出三种类型采集到所述埋点数据后,定时(例如一分钟)将所述埋点数据上报至监控端。监控端接收所述埋点数据后放入消息队列,依次处理所述消息队列中的数据后存储至数据库,然后根据所述数据库中的数据对所述数据传输链路中所述数据流的传输质量进行多维度的分析,并进行相应展示和报警。
由于所述数据传输链路中每个组件进行了统一的元信息设置和相应埋点数据的采集,因此所述监控端可以基于全局统一的ctime进行时间轴展示和对齐,做到时间端到端的精确统计。并且,可以精准的定位到数据传输中的丢失、重复、延迟等质量信息,例如可以计算出数据重复率(单位时间内,重复的数据占总数据量的比例)、数据丢失率(单位时间内,丢失的数据占总数据量的比例)、数据延迟(单位时间内,数据从发送到接收所消耗的时间)。从而,实现所述数据传输链路中组件内、组件间以及全链路的质量监控。
优选地,在所述组件中更新后的所述指定项目,还需要传送至下一组件。具体地,所述组件(发送模块)将当前数据流对应的所述数据生成时间、所述数据流标识(这两个是在所述数据传输链路的第一个组件中生成的,不需要更新),以及在所述组件输出时更新的所述数据处理时间传送至下一组件。
实施例五
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据传输质量监控程序,所述数据传输质量监控程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据传输质量监控方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。

Claims (18)

1.一种数据传输质量监控方法,应用于数据传输链路,所述链路包括多个数据传输组件,其特征在于,所述方法包括:
针对每个所述组件进行统一的元信息设置,其中,所述元信息中的指定项目在所述数据传输链路的每个所述组件之间全程透传;
根据所述元信息在每个所述组件中进行埋点数据采集,并根据透传的所述指定项目对所述埋点数据进行时间对齐;
将每个所述组件中采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
2.根据权利要求1所述的数据传输质量监控方法,其特征在于,所述元信息包括数据生成时间、数据处理时间、数据流标识、组件标识、标识类型、埋点数量、错误信息;所述指定项目包括数据生成时间、数据处理时间、数据流标识。
3.根据权利要求2所述的数据传输质量监控方法,其特征在于,所述指定项目中的所述数据生成时间和所述数据流标识在所述数据传输链路的第一个所述组件中生成,并传送至后续所有所述组件;所述数据处理时间在每个所述组件的输入和输出时更新,更新为当前时间。
4.根据权利要求1至3任一项所述的数据传输质量监控方法,其特征在于,所述根据所述元信息在每个所述组件中进行埋点数据采集包括:
根据所述元信息对每个所述组件中的数据传输质量埋点模型进行统一,抽象为入流量、处理错误、出流量。
5.根据权利要求2至4任一项所述的数据传输质量监控方法,其特征在于,所述根据所述元信息在每个所述组件中进行埋点数据采集,并根据透传的所述指定项目对所述埋点数据进行时间对齐包括:
统计当前组件中当前数据流的输入条数,并根据所述数据处理时间计算上一组件到当前组件的延迟;
统计在当前组件中当前数据流的处理错误信息;
统计当前组件中当前数据流的输出条数,并且根据所述数据处理时间计算当前组件内部的处理耗时。
6.根据权利要求5所述的数据传输质量监控方法,其特征在于,所述统计当前组件中当前数据流的输入条数,并根据所述数据处理时间计算上一组件到当前组件的延迟包括:
在当前组件输入的数据中根据所述数据流标识统计当前数据流的输入条数;
根据上一组件输出时传送的所述数据处理时间,以及当前组件输入时更新的所述数据处理时间,计算出上一组件到当前组件的延迟。
7.根据权利要求5或6所述的数据传输质量监控方法,其特征在于,所述统计当前组件中当前数据流的输出条数,并且根据所述数据处理时间计算当前组件内部的处理耗时包括:
在当前组件输出的数据中根据所述数据流标识统计当前数据流的输出条数;
根据当前组件输入时更新的所述数据处理时间,以及当前组件输出时再次更新的所述数据处理时间,计算出当前数据流在当前组件内部的处理耗时。
8.一种数据传输质量监控方法,应用于数据传输链路的组件中,其特征在于,所述方法包括:
接收针对所述数据传输链路中所有组件统一的元信息设置;
接收上一组件传送的所述元信息中的指定项目;
根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐;
将采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
9.根据权利要求8所述的数据传输质量监控方法,其特征在于,所述方法还包括:
将在所述组件中更新后的所述指定项目传送至下一组件。
10.根据权利要求9所述的数据传输质量监控方法,其特征在于,所述元信息包括数据生成时间、数据处理时间、数据流标识、组件标识、标识类型、埋点数量、错误信息;所述指定项目包括数据生成时间、数据处理时间、数据流标识。
11.根据权利要求10所述的数据传输质量监控方法,其特征在于,所述指定项目中的所述数据生成时间和所述数据流标识在所述数据传输链路的第一个所述组件中生成,并传送至后续所有所述组件;所述数据处理时间在所述组件的输入和输出时更新,更新为当前时间。
12.根据权利要求11所述的数据传输质量监控方法,其特征在于,所述根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐包括:
统计所述组件中当前数据流的输入条数,并根据所述数据处理时间计算所述上一组件到所述组件的延迟;
统计在所述组件中当前数据流的处理错误信息;
统计所述组件中当前数据流的输出条数,并且根据所述数据处理时间计算所述组件内部的处理耗时。
13.根据权利要求12所述的数据传输质量监控方法,其特征在于,所述统计所述组件中当前数据流的输入条数,并根据所述数据处理时间计算所述上一组件到所述组件的延迟包括:
在所述组件输入的数据中根据所述数据流标识统计当前数据流的输入条数;
根据所述上一组件输出时传送的所述数据处理时间,以及所述组件输入时更新的所述数据处理时间,计算出所述上一组件到所述组件的延迟。
14.根据权利要求12或13所述的数据传输质量监控方法,其特征在于,所述统计所述组件中当前数据流的输出条数,并且根据所述数据处理时间计算所述组件内部的处理耗时包括:
在所述组件输出的数据中根据所述数据流标识统计当前数据流的输出条数;
根据所述组件输入时更新的所述数据处理时间,以及所述组件输出时再次更新的所述数据处理时间,计算出当前数据流在所述组件内部的处理耗时。
15.根据权利要求11至14任一项所述的数据传输质量监控方法,其特征在于,所述将在所述组件中更新后的所述指定项目传送至下一组件包括:
将当前数据流对应的所述数据生成时间、所述数据流标识,以及在所述组件输出时更新的所述数据处理时间传送至下一组件。
16.一种数据传输质量监控系统,应用于数据传输链路的组件中,其特征在于,所述系统包括:
接收模块,用于接收针对所述数据传输链路中所有组件统一的元信息设置及上一组件传送的所述元信息中的指定项目;
采集模块,用于根据所述元信息在所述组件中进行埋点数据采集,并根据所述上一组件传送的所述指定项目对所述埋点数据进行时间对齐;
上报模块,用于将采集到的所述埋点数据上报到监控端,以使监控端根据所述埋点数据进行数据传输质量展示和报警。
17.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输质量监控程序,所述数据传输质量监控程序被所述处理器执行时实现如权利要求1至7或8至15中任一项所述的数据传输质量监控方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据传输质量监控程序,所述数据传输质量监控程序被处理器执行时实现如权利要求1至7或8至15中任一项所述的数据传输质量监控方法。
CN202111443363.9A 2021-11-30 2021-11-30 数据传输质量监控方法、装置、系统及存储介质 Active CN114143224B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111443363.9A CN114143224B (zh) 2021-11-30 2021-11-30 数据传输质量监控方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111443363.9A CN114143224B (zh) 2021-11-30 2021-11-30 数据传输质量监控方法、装置、系统及存储介质

Publications (2)

Publication Number Publication Date
CN114143224A true CN114143224A (zh) 2022-03-04
CN114143224B CN114143224B (zh) 2024-03-22

Family

ID=80390112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111443363.9A Active CN114143224B (zh) 2021-11-30 2021-11-30 数据传输质量监控方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN114143224B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170070A1 (en) * 2013-08-05 2015-06-18 Tencent Technology (Shenzhen) Company Limited Method, apparatus, and system for monitoring website
CN111506475A (zh) * 2020-04-15 2020-08-07 北京字节跳动网络技术有限公司 数据处理方法、装置、系统、可读介质及电子设备
CN112653586A (zh) * 2019-10-12 2021-04-13 苏州工业园区测绘地理信息有限公司 基于全链路监控的时空大数据平台应用性能管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170070A1 (en) * 2013-08-05 2015-06-18 Tencent Technology (Shenzhen) Company Limited Method, apparatus, and system for monitoring website
CN112653586A (zh) * 2019-10-12 2021-04-13 苏州工业园区测绘地理信息有限公司 基于全链路监控的时空大数据平台应用性能管理方法
CN111506475A (zh) * 2020-04-15 2020-08-07 北京字节跳动网络技术有限公司 数据处理方法、装置、系统、可读介质及电子设备

Also Published As

Publication number Publication date
CN114143224B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
CN111078140B (zh) 核电站文件上传管理方法、装置、终端设备及介质
US10289522B2 (en) Autonomous information technology diagnostic checks
CN109656767A (zh) 一种cpld状态信息的获取方法、系统及相关组件
CN112039701A (zh) 接口调用监控方法、装置、设备及存储介质
CN106254137A (zh) 监管系统的告警根源分析系统及方法
CN109284331B (zh) 基于业务数据资源的制证信息获取方法、终端设备及介质
CN114416703A (zh) 数据完整性自动监控方法、装置、设备及介质
CN110400085B (zh) 信息处理方法、信息处理装置和信息处理系统
CN111680104A (zh) 数据同步方法、装置、计算机设备及可读存储介质
CN114205322A (zh) 消息发送方法、装置、电子设备及存储介质
CN108038127A (zh) 一种数据同步的方法、装置、终端设备及存储介质
CN114143224A (zh) 数据传输质量监控方法及系统
CN111639053A (zh) 授权文件到期告警提示方法、装置及计算机设备
CN116701355A (zh) 数据视图处理方法、装置、计算机设备及可读存储介质
CN116521694A (zh) 一种数据维护方法、智能终端及存储介质
CN114417200B (zh) 网络数据的采集方法、装置及电子设备
CN114238024A (zh) 时序图生成方法与系统
CN112651840B (zh) 基于区块链和数字金融的业务数据日志处理方法及系统
CN112948341B (zh) 用于识别异常的网络设备日志的方法和装置
CN114490137A (zh) 业务数据实时统计方法、装置、电子设备及可读存储介质
CN103778218A (zh) 基于云计算的标准信息一致性预警系统及方法
CN112561385A (zh) 风险监控方法及系统
CN113221151A (zh) 基于区块链的数据处理方法、装置及存储介质
CN109828884A (zh) 加挂服务数据处理方法、系统、计算机设备及存储介质
CN116132395B (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
GR01 Patent grant
GR01 Patent grant