CN114884844B - 流量录制方法及系统 - Google Patents
流量录制方法及系统 Download PDFInfo
- Publication number
- CN114884844B CN114884844B CN202210668819.XA CN202210668819A CN114884844B CN 114884844 B CN114884844 B CN 114884844B CN 202210668819 A CN202210668819 A CN 202210668819A CN 114884844 B CN114884844 B CN 114884844B
- Authority
- CN
- China
- Prior art keywords
- flow
- recording
- information
- service
- flow recording
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 230000004044 response Effects 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000012544 monitoring process Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 230000004083 survival effect Effects 0.000 description 4
- 244000035744 Hura crepitans Species 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供流量录制方法及系统,其中所述流量录制方法,应用于流量录制单元,包括:接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。不仅可以提高流量录制效率,还适用于不同编程语言开发的应用或服务中,适用性广。
Description
技术领域
本申请涉及计算机技术领域,特别涉及流量录制方法。本申请同时涉及一种流量录制系统,一种流量录制单元,一种流量录制管理平台,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着互联网行业的不断发展,越来越多的应用系统上线,在应用系统需要修改时,往往通过大量的自动化回归脚本对应用系统进行修改,然而由于系统每时每刻都在演化,自动化回归脚本的正确性难以保证,为了避免该问题,需要将线上真实的数据流转化为覆盖全面的回归测试用例,因此,流量录制技术应运而生。
流量录制是指对应用系统的数据流文件进行录制,将流量以文件的方式保存到被测系统中进行回归测试的一种测试技术。不管是研发还是测试,都希望获取线上真实流量,用于压力测试或是功能回归测试,而流量录制能省去大量测试用例的构造工作,同时可以使测试用例覆盖更全面更真实,由此可见流量录制的重要性。
现有技术中,Java技术栈基于Java特有的Jvm sandbox(JVM沙箱容器)进行流量录制,也即Jvm-Sandbox-Repeater;其他编程语言基于软件开发工具包(sdk,SoftwareDevelopment Kit)进行流量录制,即将业务代码集成流量录制的sdk来实现流量录制。可见,由于不同编程语言的生态和特性有差异,现有的流量录制方案都会根据编程语言特性进行适配设计,缺少适用于不同编程语言的流量录制方案。
发明内容
有鉴于此,本申请实施例提供了流量录制方法。本申请同时涉及一种流量录制系统,一种流量录制单元,一种流量录制管理平台,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的适用性差的技术缺陷。
根据本申请实施例的第一方面,提供了一种流量录制方法,应用于流量录制单元,包括:
接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;
获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;
根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。
根据本申请实施例的第二方面,提供了一种流量录制方法,应用于流量录制管理平台,包括:
接收指定流量录制单元发送的录制请求包,其中,所述指定流量录制单元为任一流量录制单元;
响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,以使所述指定流量录制单元获取指定服务单元的服务属性信息,并基于所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构。
根据本申请实施例的第三方面,提供了一种流量录制系统,包括:
流量录制管理平台和至少一个流量录制单元;
所述流量录制管理平台,用于接收指定流量录制单元发送的录制请求包,所述指定流量录制单元为任一流量录制单元;响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元;
所述指定流量录制单元,用于获取指定服务单元的服务属性信息,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构上;根据所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制。
根据本申请实施例的第四方面,提供了一种流量录制单元,包括:
第一接收模块,被配置为接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;
第一获取模块,被配置为获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;
录制模块,被配置为根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。
根据本申请实施例的第五方面,提供了一种流量录制管理平台,包括:
第二接收模块,被配置为接收指定流量录制单元发送的录制请求包,其中,所述指定流量录制单元为任一流量录制单元;
响应模块,被配置为响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,以使所述指定流量录制单元获取指定服务单元的服务属性信息,并基于所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构。
根据本申请实施例的第六方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述流量录制方法的步骤。
根据本申请实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述流量录制方法的步骤。
本申请提供的流量录制方法,应用于流量录制单元,接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。基于单独的伴生服务,也即流量录制单元,无需业务方语言,跨语言通用,可以适用于不同编程语言开发的应用或服务中,适用性广。通过根据流量录制参数和服务属性信息进行流量录制,使伴生服务的流量录制逻辑兼容不同协议(http和grpc协议);基于独立的伴生服务,无需侵入业务代码,且流量录制单元使用独立的资源,不会占用服务单元的资源,因此,流量录制单元运行过程中出现异常,不会影响服务单元的正常运行,保证了系统的稳定性。此外,还可以提高流量录制效率。
附图说明
图1是本申请一实施例提供的一种流量录制方法的流程图;
图2是本申请一实施例提供的另一种流量录制方法的流程图;
图3是本申请一实施例提供的一种流量录制系统的结构示意图;
图4是本申请一实施例提供的另一种流量录制系统的结构示意图;
图5是本申请一实施例提供的一种应用于微服务的流量录制方法的处理流程图;
图6是本申请一实施例提供的一种流量录制单元的结构示意图;
图7是本申请一实施例提供的一种流量录制管理平台的结构示意图;
图8是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
kubernetes:容器的编排管理系统,简称k8s。
pod:k8s中管理的最小单位级,它是一个或多个容器的组合。
sidecar:伴生容器,在一个Pod中可启动一个或多个辅助容器,来完成一些独立于主进程(主容器)之外的工作。
超文本传输协议(Hyper Text Transfer Protocol,http)是一个简单的请求-响应协议,指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
grpc:gRPC(gRPC Remote Procedure Calls)是一个开源远程过程调用系统,该系统基于http/2协议传输。
微服务:一种软件开发技术-面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通,(通常采用http或grpc协议)。
Kafka:是一种高吞吐量的分布式发布订阅消息系统。
Logstash:是一种分布式日志收集框架。
ElasticSearch:是一个分布式、高扩展、高实时的搜索与数据分析引擎。
Wireshark是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。
Tshark:是开源流量监听工具Wireshark的命令行版本。
proto文件:是一种类似于json(JavaScript Object Notation,一种轻量级的数据交换格式)和xml(可扩展标记语言)的用于数据交换的文件格式,并且在效率和兼容性上都非常的好。
然后,对本申请提供的流量录制方法进行简要说明。
随着互联网行业的不断发展,越来越多的应用系统上线,在应用系统需要修改时,往往通过大量的自动化回归脚本对应用系统进行修改,然而由于系统每时每刻都在演化,自动化回归脚本的正确性以及正确性难以保证,为了避免该问题,需要将线上真实的数据流转化为覆盖全面的回归测试用例,因此,流量录制技术应运而生。
流量录制是指对应用系统的数据流文件进行录制,将流量以文件的方式保存到被测系统中进行回归测试的一种测试技术。不管是研发还是测试,都希望获取线上真实流量,用于压力测试或是功能回归测试,而流量录制能省去大量测试用例的构造工作,同时可以使测试用例覆盖更全面更真实,由此可见流量录制的重要性。
现有技术中,Java技术栈基于Java特有的Jvm sandbox(JVM沙箱容器)进行流量录制,也即Jvm-Sandbox-Repeater;其他编程语言基于软件开发工具包(sdk,SoftwareDevelopment Kit)进行流量录制,即将业务代码集成流量录制的sdk来实现流量录制。可见,由于不同编程语言的生态和特性有差异,现有的流量录制方案都会根据编程语言特性进行适配设计,缺少适用于不同编程语言的流量录制方案。
此外,基于现有技术中流量录制方案还存在以下几个问题:每一种编程语言都需要开发一套sdk,方案不通用;每一种编程语言的sdk需要分别支持不同通信协议,以及区分入口请求和出口请求,即代码侵入;基于代码侵入,所有微服务都需集成sdk,造成与业务逻辑耦合,一旦sdk出问题,将影响所有微服务,且sdk版本迭代时需要所有微服务配合代码更新。
因此,本申请提供了一种流量录制方法,应用于流量录制单元,接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。基于单独的伴生服务,也即流量录制单元,无需业务方语言,跨语言通用,可以适用于不同编程语言开发的应用或服务中,适用性广。通过根据流量录制参数和服务属性信息进行流量录制,使伴生服务的流量录制逻辑兼容不同协议(http和grpc协议);基于独立的伴生服务,无需侵入业务代码,且流量录制单元使用独立的资源,不会占用服务单元的资源,因此,流量录制单元运行过程中出现异常,不会影响服务单元的正常运行,保证了系统的稳定性。此外,还可以提高流量录制效率。
在本申请中,提供了流量录制方法,本申请同时涉及一种流量录制系统,一种流量录制单元,一种流量录制管理平台,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了本申请一实施例提供的一种流量录制方法的流程图,应用于流量录制单元,具体包括以下步骤:
步骤102:接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数。
具体的,流量录制单元是指单独的具有流量录制的功能模块,可以是硬件也可以是软件;流量录制管理平台是指对流量录制进行管理的平台,具有配置流量录制属性、设置接入的应用、流量查询等功能;流量录制信息是指用于指导流量录制进行的信息;流量录制参数是指进行流量录制的参数,如接口(流量)录制规则、流量采用率等参数。
实际应用中,当流量录制主进程开启之后,具有流量录制统筹功能的流量录制管理平台,将包含流量录制参数的流量录制信息发送给负责流量录制的流量录制单元,以告知流量录制单元启动流量录制。
在本说明书一个或多个可选的实施例中,可能存在多个流量录制单元,为了提高流量录制的效率,流量录制管理平台并不会将流量录制信息发送给每个流量录制单元,而是在确定了流量录制单元可以正常使用或者处于连接状态,才会发送流量录制信息。也即接收流量录制管理平台发送的流量录制信息之前,还包括:
向所述流量录制管理平台发送录制请求包,以使所述流量录制管理平台响应于所述录制请求包反馈所述流量录制信息。
具体的,录制请求包是指用于请求流量录制、或者告知流量录制管理平台流量录制单元可以进行流量录制的消息,此外录制请求包的发送,能够保证流量录制单元可以正常使用或者处于连接状态,录制请求包可以包含流量录制单元对应的应用和实例的相关信息。
实际应用中,流量录制单元可以在启动时、不定时或者周期性地向流量录制管理平台发送录制请求包,流量录制管理平台在接收到录制请求包之后,会对录制请求包进行响应,反馈流量录制单元流量录制信息。
例如,流量录制单元每60秒,通过流量录制管理平台的心跳(heartbeat)接口,发送一个心跳包(录制请求包),心跳包的请求内容带上应用和实例的相关信息,如当前录制状态,在流量录制管理平台上注册该应用实例,也即流量录制单元的存活状态,记录最新存活心跳时刻和当前开关状态。之后流量录制管理平台通过heartbeat接口返回流量录制管理平台上用户对该应用或实例的相关配置信息(流量录制信息),包括接口录制规则、流量采用率等等。
如此,通过发送录制请求包,不仅可以提醒流量录制管理平台当前的流量录制单元处于正常状态,可以开启流量录制,使流量录制管理平台能够统计可用流量录制单元的数量;还可以避免流量录制管理平台无效发送流量录制信息,浪费资源。
此外,流量录制信息还可以包括录制开关信息,如预期开关状态,决定流量录制单元开启还是关闭流量录制。流量录制单元在接收到流量录制信息后,判断流量录制信息中的录制开关信息是否为开启:若是,则执行下一步,即执行获取主容器的服务类型和端口信息的步骤;若否,则停止流量录制进程。
需要说明的是,在录制开关信息为开启时,还需要判断流量录制单元的当前录制状态(当前开关状态),在当前录制状态关闭的情况下,将当前录制状态更新为开启,新起线程执行流量监听、录制、收集,即执行之后的“获取主容器的服务类型和端口信息”的步骤,在当前录制状态开启的情况下,则继续进行流量录制。在录制开关信息为关闭时,也需要判断流量录制单元的当前录制状态,在当前录制状态关闭的情况下,则继续保持睡眠状态,即不进行流量录制的状态;在当前录制状态开启的情况下,则关闭之前开启的流量录制线程,即停止流量录制。
步骤104:获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构。
在接收到包含流量录制参数的流量录制信息的基础上,进一步地,获取服务单元的服务属性信息。
具体的,服务单元主要接收并响应服务请求,也即服务执行,如应用;服务架构是指服务体系,即流量录制单元用于对处于同一服务架构的服务单元进行监听,也即流量录制。
实际应用中,流量录制单元可以从当前的服务架构或环境变量中,获取其所在的服务架构中服务单元的服务属性信息,也即当前服务单元的服务属性信息。
在本说明书一个或多个可选的实施例中,服务架构为微服务实例,微服务实例为微服务(应用)所包含的任意一个实例,也即所述流量录制单元和所述服务单元部署于同一微服务实例;所述服务单元为所述微服务实例中提供服务的主容器;所述流量录制单元为所述微服务实例中提供流量录制的伴生容器。将单一应用程序划分成多个微服务,并将微服务中的实例(微服务实例)作为一个系统架构,为其配置一个容器组(Pod),主容器用于提供服务、伴生容器用于对主容器进行流量录制。如此,将以微服务实例为系统架构,不仅将服务分散到各个微服务实例上,有利于提高服务响应效率,还可以使流量录制单元仅对微服务实例内的服务单元进行流量录制,也即不同微服务实例中的流量录制可并行执行,提高流量录制效率。
例如,对于一个微服务应用来说,如果要使用流量录制功能,该微服务在k8s集群内部署的时候,需给微服务应用中的每个实例Pod分配一个伴生容器和主容器,伴生容器承担主容器服务的流量监听、录制、收集功能,也即伴生容器为流量监听录制器。
步骤106:根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。
在获取服务单元的服务属性信息的基础上,进一步地,根据流量录制参数和服务属性信息进行流量录制。
具体的,流量录制是指在不影响用户正常使用的前提下,获取线上用户的真实请求和服务响应结果,将其保存或者转发到目标应用;服务单元的端口是指接收服务请求或者响应服务请求的端口。
实际应用中,可以根据服务属性信息,从流量录制参数中获取目标流量录制参数,再基于目标流量录制参数,对服务单元的端口进行流量录制;或者根据流量录制参数,确定流量录制方案,进而根据流量录制方案以及对应的服务属性信息对服务单元的端口进行流量录制。
在本说明书一个或多个可选的实施例中,服务属性信息可以包括服务类型和端口信息。此时,为了提高流量录制的效率,可以先基于服务类型和端口信息获取流量录制指令,进而基于流量录制指令和流量录制参数进行流量录制。也即在服务属性信息包括服务类型和端口信息的情况下,所述根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制,具体实现过程可以如下:
根据所述服务类型和所述端口信息,确定所述端口的流量录制指令;
根据所述流量录制参数和所述流量录制指令,对所述端口进行流量录制。
具体的,服务类型可以是服务单元所使用的协议类型,如http类型、grpc类型,还可以是服务单元响应服务请求的类型,如登录、上传文档等;流量录制指令是指用于执行流量录制的指令,如开源工具Tshark启动的网卡监听命令。
实际应用中,流量录制单元在获取服务属性信息时,可以获取到服务单元的服务类型和端口信息。进一步地,流量录制单元可以基于服务单元的服务类型和端口信息,确定流量录制对应的指令,也即流量录制指令。然后,根据流量录制参数和流量录制指令,对主容器的端口进行流量录制,也即基于流量录制参数,执行流量录制指令。
例如,流量录制单元为伴生容器,服务单元为主容器。伴生容器可以从容器的环境变量中获取主容器的服务类型(http/grpc)以及端口类型(端口信息);然后根据不同的服务类型和端口类型,分别获取开源工具Tshark相应的网卡监听命令,也即流量录制指令,并基于流量录制参数执行网卡监听命令,即对端口进行流量录制。
如此,通过服务类型和端口信息确定流量录制指令,在基于流量录制指令进行流量录制,可以明确流量录制的具体过程及步骤,使对端口进行流量录制有条不紊地进行,提高流量录制的效率和准确率。
需要说明的是,在服务类型为grpc服务的情况下,Tshark启动时需要指定grpc服务定义的proto文件,平台返回的相关配置信息中包含grpc服务的proto文件所在git仓库信息,所以在启动Tshark之前通过git接口获取所需proto文件,并置于Tshark所要求的路径下。
在本说明书一个或多个可选的实施例中,对端口进行流量录制之后,还需要对录制的初始流量信息进行存储或者处理,以便于后续对流量信息进行查询或展示。也即根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制之后,还包括:
获取流量录制得到的初始流量信息,并识别所述初始流量信息;
在所述初始流量信息为请求信息的情况下,将所述请求信息进行存储;
在所述初始流量信息为响应信息的情况下,将所述响应信息与存储的请求信息进行拼接,得到目标流量信息。
具体的,初始流量信息可以是经过流量录制直接得到的流量信息,还可以是对流量录制直接得到的流量信息进行加工处理后的流量信息;请求信息是指从客户端发送过来的请求对应的流量信息;响应信息是指响应于客户端的请求对应的流量信息。
实际应用中,在对服务单元的端口进行流量录制之后,可以获取初始流量信息,并识别初始流量信息是什么类型的流量信息,若是请求信息,则将请求信息先进行存储,若是响应信息,则将响应信息与预先存储的请求信息进行拼接,得到目标流量信息。
实际场景中,流量录制单元通过Tshark录制到的流量信息是按请求和响应拆分的,每一条流量信息要么是一次接口请求,即请求信息,要么是一次接口响应,即响应信息,将监听到的请求信息先存储,如先缓存在内存中,等其对应的响应信息到来时,将请求信息和响应信息进行拼接得到完整的一次接口信息(包含请求和响应),也即目标流量信息。
如此,通过对初始流量信息进行识别,将对应的请求信息和响应信息进行拼接,已得到完整的流量信息,即目标流量信息,可以简化获取目标流量信息的过程,进而提高流量录制效率。
此外,在将响应信息与存储的请求信息进行拼接,得到目标流量信息之后,可以将存储的该请求信息进行删除,避免占用存储空间,影响流量录制的效率。
需要说明的是,为了提高识别效率和拼接效率,进而提高获取目标流量信息的效率,在获取初始流量信息时,可以进行格式化处理,使初始流量信息格式统一,便于识别和拼接。也即所述获取流量录制得到的初始流量信息,具体实现过程可以如下:
获取流量录制得到的原始流量信息;
对所述原始流量信息进行格式化处理,得到所述初始流量信息。
具体的,原始流量信息是指直接获取得到的流量信息;格式化是指是把所有的原始流量信息处理成相同的规格、样式,如删除无关数据、如位置统一等。
例如,将Tshark监听网卡录制到的指定端口的流量信息进行数据归一化、指定数据位置等格式化处理,得到初始流量信息。
在本说明书一个或多个可选的实施例中,在得到了目标流量信息之后,流量录制单元可以将目标流量信息发送至专门的流量收集器进行收集,也即将所述响应信息与存储的请求信息进行拼接,得到目标流量信息之后,还包括:
将所述目标流量信息发送至流量收集器,以使所述流量收集器对所述目标流量信息进行收集处理。
具体的,流量收集器可以是收集目标流量信息的功能模块。
实际应用中,为了对目标流量信息进行统一管理,且不影响流量录制单元的流量录制效率,可以将拼接好的目标流量信息发送至流量收集器进行统一收集,如此,避免了将过多的目标流量信息存储在流量录制单元,占用过多空间,从而导致流量录制单元的效率降低。
此外,在得到了拼接好的目标流量信息之后,还可以对目标流量信息中存在预设敏感信息的字段进行加密处理,然后将目标流量信息进行整体序列化处理,再上传到流量收集器进行收集。
需要说明的是,流量收集器采用通用流式数据处理方案:可以通过消息队列接收目标流量信息;然后利用数据处理管道将消息队列中的目标流量信息存入数据引擎中。例如,由Kafka集群(消息队列)接收从各个微服务实例的伴生容器发送过来的格式化后的目标流量信息,再由Logstash服务(数据处理管道)从Kafka队列中去消费目标流量信息写入ElasticSearch数据引擎(数据引擎)。
此外,ElasticSearch可以按微服务应用名分索引存储各应用的目标流量信息,供流量录制管理平台查询进行展示。即流量录制管理平台在接收到流量查询请求的情况下,从数据引擎获取所述流量查询请求对应的指定流量信息,并反馈指定流量信息。
本申请提供的流量录制方法,应用于流量录制单元,接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。基于单独的伴生服务,也即流量录制单元,无需业务方语言,跨语言通用,可以适用于不同编程语言开发的应用或服务中,适用性广。通过根据流量录制参数和服务属性信息进行流量录制,使伴生服务的流量录制逻辑兼容不同协议(http和grpc协议);基于独立的伴生服务,无需侵入业务代码,且流量录制单元使用独立的资源,不会占用服务单元的资源,因此,流量录制单元运行过程中出现异常,不会影响服务单元的正常运行,保证了系统的稳定性。此外,还可以提高流量录制效率。
上述为本实施例的一种应用于流量录制单元的流量录制方法的示意性方案。需要说明的是,该应用于流量录制单元的流量录制方法的技术方案与下述的应用于流量录制管理平台的流量录制方法的技术方案属于同一构思,应用于流量录制单元的流量录制方法的技术方案未详细描述的细节内容,均可以参见下述流量录制管理平台的流量录制方法的技术方案的描述。
与上述方法实施例相对应,图2示出了本申请一实施例提供的另一种流量录制方法的流程图,应用于流量录制管理平台,具体包括以下步骤:
步骤202:接收指定流量录制单元发送的录制请求包,其中,所述指定流量录制单元为任一流量录制单元。
具体的,流量录制单元是指单独的具有流量录制的功能模块,可以是硬件也可以是软件;流量录制管理平台是指对流量录制进行管理的平台,具有配置流量录制属性、设置接入的应用、流量查询等功能;录制请求包是指用于请求流量录制、或者告知流量录制管理平台流量录制单元可以进行流量录制的消息,此外录制请求包的发送,能够保证流量录制单元可以正常使用或者处于连接状态,录制请求包可以包含流量录制单元对应的应用和实例的相关信息。
实际应用中,流量录制单元可以在启动时、不定时或者周期性地向流量录制管理平台发送录制请求包,流量录制管理平台在接收到录制请求包之后,会对录制请求包进行响应,反馈流量录制单元流量录制信息。
在本说明书一个或多个可选的实施例中,发送包含流量录制参数的流量录制信息至所述指定流量录制单元之前,还包括:
确定接收所述录制请求包的时刻,并对所述录制请求包进行解析,得到所述指定流量录制单元的当前录制状态;
将所述时刻和所述当前录制状态进行存储。
具体的,接收录制请求包的时刻也即发出录制请求包的时刻;当前录制状态是指流量路录制单元是否在进行流量录制的状态,如录制中、未录制。
实际应用中,流量录制管理平台在接收到录制请求包时,确定接收录制请求包的时刻,并从录制请求包中获取指定流量录制单元的当前录制状态,同时记录时刻和当前录制状态。如此,便于流量录制管理平台确定各流量录制单元的存活状态和录制状态,使流量录制管理平台可以更好地对流量录制进行规划,提高流量录制效率。
需要说明的是,对于不同的流量录制单元,存储时刻和当前录制状态也不同。也即将所述时刻和所述当前录制状态进行存储,具体实现过程可以如下:
在本地存在所述指定流量录制单元的请求记录的情况下,根据所述时刻和所述当前录制状态更新所述请求记录;
在本地不存在所述指定流量录制单元的请求记录的情况下,为所述指定流量录制单元创建请求记录,并将所述时刻和所述当前录制状态存储至所述请求记录中。
具体的,请求记录是指记载该指定流量录制单元对应信息的记录。
实际应用中,如果流量录制管理平台或者流量录制管理平台的存储区有指定流量录制单元的请求记录,则可以根据新确定与该指定流量录制单元关联的时刻和当前录制状态对请求记录进行更新,可以将时刻和当前录制状态存储在该请求记录中,还可以将新的时刻和当前录制状态覆盖请求记录;如果流量录制管理平台或者流量录制管理平台的存储区没有指定流量录制单元的请求记录,则可以为该指定流量录制单元新建请求记录,将新确定与该指定流量录制单元关联的时刻和当前录制状态添加至请求记录中。
例如,流量录制管理平台具有心跳收集功能,主要负责与各微服务的伴生容器(流量录制单元)进行交互,流量录制管理平台暴露一个heartbeat接口,供流量录制单元调用,流量录制管理平台收到心跳请求时,根据传参信息(包含应用、实例、开关状态等),即录制请求包,在流量录制管理平台的数据库中更新该应用该实例的(心跳)时刻和当前开关状态(当前录制状态),如果原先数据库中不存在该应用该实例的心跳记录,则新插入一条记录。
步骤204:响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,以使所述指定流量录制单元获取指定服务单元的服务属性信息,并基于所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构。
具体的,流量录制信息是指用于指导流量录制进行的信息;流量录制参数是指进行流量录制的参数,如接口(流量)录制规则、流量采用率等参数;服务单元主要接收并响应服务请求,也即服务执行,如应用;服务架构是指服务体系,即流量录制单元用于对处于同一服务架构的服务单元进行监听,也即流量录制;流量录制是指在不影响用户正常使用的前提下,获取线上用户的真实请求和服务响应结果,将其保存或者转发到目标应用;服务单元的端口是指接收服务请求或者响应服务请求的端口。
实际应用中,当具有流量录制统筹功能的流量录制管理平台接收到录制请求包之后,需要响应录制请求包,也即将包含流量录制参数的流量录制信息发送给负责流量录制的流量录制单元,以告知流量录制单元启动流量录制。进一步地,流量录制单元可以从当前的服务架构或环境变量中,获取其所在的服务架构中服务单元的服务属性信息,也即当前服务单元的服务属性信息。接着根据服务属性信息,从流量录制参数中获取目标流量录制参数,再基于目标流量录制参数,对服务单元的端口进行流量录制;或者根据流量录制参数,确定流量录制方案,进而根据流量录制方案以及对应的服务属性信息对服务单元的端口进行流量录制。
在本说明书一个或多个可选的实施例中,所述响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,具体实现过程可以如下:
根据所述录制请求包,查询预设配置信息,确定所述包含流量录制参数的流量录制信息;
将所述流量录制信息发送至所述指定流量录制单元。
具体的,预设配置信息是指运营人员或用户预先在流量录制管理平台设置的配置数据。
实际应用中,流量录制管理平台还具有配置同步的功能,在接收到录制请求包之后,根据录制请求包查询指定流量录制单元对应的应用的相关配置信息(预设配置信息),如流量录制规则、流量采用率、当前实例预期开关状态,作为录制请求包的响应返回给指定流量录制单元。
如此,录制请求包查询预设配置信息进而得到流量录制信息,不仅可以提高确定流量录制信息的效率,还可以保证流量录制信息的正确率,进而有利于提高流量录制的效率和准确率。
在本说明书一个或多个可选的实施例中,录制请求包可以携带当前录制状态;在发送包含流量录制参数的流量录制信息至所述指定流量录制单元之前,还包括:
按照预设周期,查询所述当前录制状态为启动的流量录制单元的第一数量;
将预设的开启数量与所述第一数量进行比较,并根据比较结果确定针对所述指定流量录制单元的开关状态信息;
获取所述服务架构对应的流量录制参数;
根据所述开关状态信息和所述流量录制参数,确定所述流量录制信息。
具体的,预设周期是预先设置的配置同步周期,如10秒、60秒等;当前录制状态是指流量录制单元是否启动流量录制的状态,如录制中、未录制;第一数量是指录制中的流量录制单元的数量;开启数量是指在流量录制管理平台上预先设置当前应用预期开启录制的实例个数,也即预期设置的开启流量录制单元的数量;流量录制参数是指进行流量录制的参数,如接口(流量)录制规则、流量采用率等参数。
实际应用中,预先设定了流量录制管理平台配置同步周期,也即预设周期,且流量录制管理平台上设置了开启数量。此时,流量录制管理平台会按照预设周期,定时执行配置同步:查询该应用实例的心跳记录,筛选出当前存活的实例,统计当前开启监听的实例个数,即当前录制状态为启动的流量录制单元的第一数量,并查询应用预期开启录制的实例个数,即预设的开启数量。将预期启动监听的实例个数与当前开启监听的实例个数进行比较:如果第一数量n少于开启数量m,则从当前存活且预期开关状态为关的流量录制单元中随机选取(m-n)个流量录制单元,将数据库中选取的(m-n)个流量录制单元的预期开关状态变更为开;如果第一数量n大于开启数量m,则从当前存活且预期状态为开的实例中随机选取(n-m)个流量录制单元,将数据库中选取的(m-n)个流量录制单元的预期开关状态变更为关;如果当前开启的个数等于预期,则维持不动。如此,可以保证流量录制的稳定性。
例如,微服务X有10个实例,设置3个实例开启流量录制。当X进行版本升级时,旧版本A下线,新版本B上线,此时旧版本A的10个实例的容器都会收到终止信号,执行销毁操作,这样旧版本A的10个实例的心跳就停留在当前时刻,而新版本B的10个实例启动之后就开始发心跳,而其当前状态以及默认初始预期开关状态都是关,此时平台定时执行配置同步的时候,就会发现微服务X的预期开启录制的实例个数是3,而实际存活的且开启录制的实例个数是0,则就会在当前存活的版本B的10个实例中随机挑选3个实例,将其数据库中预期开关状态更新为开,这样后续这3个实例的伴生服务发来心跳时,就会获得最新的预期开关状态为开,就会开启录制。
在本说明书一个或多个可选的实施例中,在流量录制管理平台上还可以配置新的服务架构,即:
接收新增服务架构的新增指令,其中,所述新增指令中携带有配置信息;
根据所述配置信息,进行信息配置。
具体的,配置信息是指针对新增服务架构的一些用于设置的信息。
实际应用中,流量录制管理平台具有应用接入、规则配置的功能,用户如果有新服务架构想使用流量录制功能,可以在流量录制管理平台进行配置:在平台上新增服务架构,完成应用相关的信息配置,即接收新增服务架构的新增指令,且新增指令中携带有配置信息。然后流量录制管理平台基于配置信息,进行信息配置。如此,可以使流量录制管理平台的使用更加灵活,更够根据用户需求进行服务架构的新增,提高用户粘度。
例如,如果有微服务实例提供grpc服务,需要配置grpc服务定义的proto文件所在的仓库及其路径。
此外,可以在通过流量录制管理平台删除一些服务架构,与新增服务架构类型,此处不再赘述。
此外,用户可以在流量录制管理平台为新增的服务架构配置流量录制参数,为所述新增服务架构配置流量录制参数。例如,在流量录制管理平台上配置该新增服务架构的录制,即流量录制参数,如支持正则和/或黑白名单模式的接口路径(path)、开启录制的实例个数(预设的开启数量)、流量采样率(基于单个实例)。如此,可以保证在该新增服务架构中的流量录制单元进行流量录制时,可以获得对应的流量录制参数(流量录制信息),以保证流量录制的稳定、有效进行,还可以提高流量录制效率。
此外,流量录制管理平台还具有流量查询展示的功能,用户在平台上可查看某个应用下录制到目标流量信息,可根据时间、接口路径等条件进行流量过滤。流量录制管理平台从ElasticSearch获取数据时,对相关加密字段进行解密处理,然后传给前端进行展示。此外,只有该应用有权限的人员才能访问对应的数据。
本申请提供的流量录制方法,应用于流量录制管理平台,接收指定流量录制单元发送的录制请求包,其中,所述指定流量录制单元为任一流量录制单元;响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,以使所述指定流量录制单元获取指定服务单元的服务属性信息,并基于所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构。基于单独的伴生服务,也即流量录制单元,无需业务方语言,跨语言通用,可以适用于不同编程语言开发的应用或服务中,适用性广。通过根据流量录制参数和服务属性信息进行流量录制,使伴生服务的流量录制逻辑兼容不同协议(http和grpc协议);基于独立的伴生服务,无需侵入业务代码,且流量录制单元使用独立的资源,不会占用服务单元的资源,因此,流量录制单元运行过程中出现异常,不会影响服务单元的正常运行,保证了系统的稳定性。此外,还可以提高流量录制效率,且通过发送录制请求包,不仅可以提醒流量录制管理平台当前的流量录制单元处于正常状态,可以开启流量录制,使流量录制管理平台能够统计可用流量录制单元的数量;还可以避免流量录制管理平台无效发送流量录制信息,浪费资源。
上述为本实施例的一种应用于流量录制管理平台的流量录制方法的示意性方案。需要说明的是,该应用于流量录制管理平台的流量录制方法的技术方案与上述的应用于流量录制单元的流量录制方法的技术方案属于同一构思,应用于流量录制管理平台的流量录制方法的技术方案未详细描述的细节内容,均可以参见上述流量录制单元的流量录制方法的技术方案的描述。
与上述方法实施例相对应,图3示出了本申请一实施例提供的一种流量录制系统的结构示意图。如图3所示,该系统包括:
流量录制管理平台302和至少一个流量录制单元304;
所述流量录制管理平台302,用于接收指定流量录制单元304发送的录制请求包,所述指定流量录制单元304为任一流量录制单元304;响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元304;
所述指定流量录制单元304,用于获取指定服务单元的服务属性信息,其中,所述指定服务单元与所述指定流量录制单元304部署于同一服务架构上;根据所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制。
可选地,所述流量录制单元304和所述服务单元部署于同一微服务实例;
所述服务单元为所述微服务实例中提供服务的主容器;所述流量录制单元304为所述微服务实例中提供流量录制的伴生容器。
可选地,所述服务属性信息包括服务类型和端口信息;
所述指定流量录制单元304,还用于:
根据所述服务类型和所述端口信息,确定所述端口的流量录制指令;
根据所述流量录制参数和所述流量录制指令,对所述端口进行流量录制。
可选地,所述指定流量录制单元304,还用于:
获取流量录制得到的初始流量信息,并识别所述初始流量信息;
在所述初始流量信息为请求信息的情况下,将所述请求信息进行存储;
在所述初始流量信息为响应信息的情况下,将所述响应信息与存储的请求信息进行拼接,得到目标流量信息。
可选地,所述指定流量录制单元304,还用于:
获取流量录制得到的原始流量信息;
对所述原始流量信息进行格式化处理,得到所述初始流量信息。
可选地,在图3的基础上,图4示出本申请一实施例提供的另一种流量录制系统的结构示意图:所述系统还包括流量收集器402;
所述指定流量录制单元304,还用于:
将所述目标流量信息发送至流量收集器402;
所述流量收集器402,用于:
将所述目标流量信息进行存储。
可选地,所述流量收集器402,还用于:
通过消息队列接收所述目标流量信息;利用数据处理管道将所述消息队列中的目标流量信息存入数据引擎中;
所述流量录制管理平台302,还用于在接收到流量查询请求的情况下,从所述数据引擎获取所述流量查询请求对应的指定流量信息,并反馈所述指定流量信息。
可选地,所述流量录制管理平台302,还用于:
确定接收所述录制请求包的时刻,并对所述录制请求包进行解析,得到所述指定流量录制单元304的当前录制状态;
将所述时刻和所述当前录制状态进行存储。
可选地,所述流量录制管理平台302,还用于:
在本地存在所述指定流量录制单元304的请求记录的情况下,根据所述时刻和所述当前录制状态更新所述请求记录;
在本地不存在所述指定流量录制单元304的请求记录的情况下,为所述指定流量录制单元304创建请求记录,并将所述时刻和所述当前录制状态存储至所述请求记录中。
可选地,所述流量录制管理平台302,还用于:
根据所述录制请求包,查询预设配置信息,确定所述包含流量录制参数的流量录制信息;
将所述流量录制信息发送至所述指定流量录制单元304。
可选地,所述录制请求包携带当前录制状态;
所述流量录制管理平台302,还用于:
按照预设周期,查询所述当前录制状态为启动的流量录制单元304的第一数量;
将预设的开启数量与所述第一数量进行比较,并根据比较结果确定针对所述指定流量录制单元304的开关状态信息;
获取所述服务架构对应的流量录制参数;
根据所述开关状态信息和所述流量录制参数,确定所述流量录制信息。
可选地,所述流量录制管理平台302,还用于:
接收新增服务架构的新增指令,其中,所述新增指令中携带有配置信息;
根据所述配置信息,进行信息配置。
可选地,所述流量录制管理平台302,还用于:
为所述新增服务架构配置流量录制参数。
本申请提供的流量录制系统,流量录制管理平台接收指定流量录制单元发送的录制请求包,所述指定流量录制单元为任一流量录制单元;响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元;所述指定流量录制单元获取指定服务单元的服务属性信息,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构上;根据所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制。基于单独的伴生服务,也即流量录制单元,无需业务方语言,跨语言通用,可以适用于不同编程语言开发的应用或服务中,适用性广。通过根据流量录制参数和服务属性信息进行流量录制,使伴生服务的流量录制逻辑兼容不同协议(http和grpc协议);基于独立的伴生服务,无需侵入业务代码,且流量录制单元使用独立的资源,不会占用服务单元的资源,因此,流量录制单元运行过程中出现异常,不会影响服务单元的正常运行,保证了系统的稳定性。此外,还可以提高流量录制效率,且通过发送录制请求包,不仅可以提醒流量录制管理平台当前的流量录制单元处于正常状态,可以开启流量录制,使流量录制管理平台能够统计可用流量录制单元的数量;还可以避免流量录制管理平台无效发送流量录制信息,浪费资源。
上述为本实施例的一种流量录制系统的示意性方案。需要说明的是,该流量录制系统的技术方案与上述的流量录制方法的技术方案属于同一构思,应用于流量录制系统的技术方案未详细描述的细节内容,均可以参见上述流量录制方法的技术方案的描述。
下述结合附图5,以本申请提供的流量录制方法在微服务的应用为例,对所述流量录制方法进行进一步说明。其中,图5示出了本申请一实施例提供的一种应用于微服务的流量录制方法的处理流程图,具体如下。
步骤S1,外网的设备,如智能手机、智能机器人、平板电脑、智能计算机、智能电视等向内网发起各种服务请求。内网的负在均衡服务器对接受的服务请求进行负载均衡处理,将其发送至微服务对应的应用中,如应用1和应用2。应用中的网卡接收服务请求,由主容器进行响应,即应用1的主容器执行应用1、应用N的主容器执行应用N。
步骤S2:用户在流量录制管理平台上注册应用并配置相关信息,即流量录制管理平台的应用接入、规则配置。
步骤S3:伴生容器定时请求平台,将当前伴生容器的心跳发生给平台,表明当前存活状态,同时平台将当前应用的用户配置信息返回给伴生容器,包括接口录制规则、采样率、预期开关状态等信息,通过这种方式灵活控制开启录制的实例个数、流量录制的采样率以及接口录制规则。即流量录制管理平台的心跳收集、配置同步。
步骤S4:利用同一个pod内所有容器共享网络栈的原理,基于伴生容器,通过旁路方式监听微服务的入口端口以及所有出口端口,从而获得所有出入口流量,并且做到主服务无感知,不受影响。即伴生容器对主容器的端口进行监听录制(流量录制)。
步骤S5:录制到的流量,格式化处理后写入Kafka消息队列,再经过Logstash(数据处理管道)消费,之后转存到ElasticSearch数据引擎作为持久化存储,再通过平台来展示这些数据。
与上述方法实施例相对应,本申请还提供了流量录制单元实施例,图6示出了本申请一实施例提供的一种流量录制单元的结构示意图。如图6所示,该流量录制单元包括:
第一接收模块602,被配置为接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;
第一获取模块604,被配置为获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;
录制模块606,被配置为根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。
可选地,所述流量录制单元和所述服务单元部署于同一微服务实例;
所述服务单元为所述微服务实例中提供服务的主容器;所述流量录制单元为所述微服务实例中提供流量录制的伴生容器。
可选地,所述服务属性信息包括服务类型和端口信息;
所述录制模块606,还被配置为:
根据所述服务类型和所述端口信息,确定所述端口的流量录制指令;
根据所述流量录制参数和所述流量录制指令,对所述端口进行流量录制。
可选地,所述流量录制单元还包括:
识别模块,被配置为获取流量录制得到的初始流量信息,并识别所述初始流量信息;
第一存储模块,被配置为在所述初始流量信息为请求信息的情况下,将所述请求信息进行存储;
拼接模块,被配置为在所述初始流量信息为响应信息的情况下,将所述响应信息与存储的请求信息进行拼接,得到目标流量信息。
可选地,所述识别模块,还被配置为:
获取流量录制得到的原始流量信息;
对所述原始流量信息进行格式化处理,得到所述初始流量信息。
可选地,所述流量录制单元还包括:
第一发送模块,被配置为将所述目标流量信息发送至流量收集器,以使所述流量收集器对所述目标流量信息进行收集处理。
可选地,所述流量录制单元还包括:
第二发送模块,被配置为向所述流量录制管理平台发送录制请求包,以使所述流量录制管理平台响应于所述录制请求包反馈所述流量录制信息。
本申请提供的流量录制单元,接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数;获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构;根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。基于单独的伴生服务,也即流量录制单元,无需业务方语言,跨语言通用,可以适用于不同编程语言开发的应用或服务中,适用性广。通过根据流量录制参数和服务属性信息进行流量录制,使伴生服务的流量录制逻辑兼容不同协议(http和grpc协议);基于独立的伴生服务,无需侵入业务代码,且流量录制单元使用独立的资源,不会占用服务单元的资源,因此,流量录制单元运行过程中出现异常,不会影响服务单元的正常运行,保证了系统的稳定性。此外,还可以提高流量录制效率。
上述为本实施例的一种流量录制单元的示意性方案。需要说明的是,该流量录制单元的技术方案与上述的应用于流量录制单元的流量录制方法的技术方案属于同一构思,流量录制单元的技术方案未详细描述的细节内容,均可以参见上述应用于流量录制单元的流量录制方法的技术方案的描述。
与上述方法实施例相对应,本申请还提供了流量录制管理平台实施例,图7示出了本申请一实施例提供的一种流量录制管理平台的结构示意图。如图7所示,该流量录制管理平台包括:
第二接收模块702,被配置为接收指定流量录制单元发送的录制请求包,其中,所述指定流量录制单元为任一流量录制单元;
响应模块704,被配置为响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,以使所述指定流量录制单元获取指定服务单元的服务属性信息,并基于所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构。
可选地,所述流量录制管理平台还包括:
解析模块,被配置为确定接收所述录制请求包的时刻,并对所述录制请求包进行解析,得到所述指定流量录制单元的当前录制状态;
第二存储模块,被配置为将所述时刻和所述当前录制状态进行存储。
可选地,所述第二存储模块,还被配置为:
在本地存在所述指定流量录制单元的请求记录的情况下,根据所述时刻和所述当前录制状态更新所述请求记录;
在本地不存在所述指定流量录制单元的请求记录的情况下,为所述指定流量录制单元创建请求记录,并将所述时刻和所述当前录制状态存储至所述请求记录中。
可选地,所述响应模块704,还被配置为:
根据所述录制请求包,查询预设配置信息,确定所述包含流量录制参数的流量录制信息;
将所述流量录制信息发送至所述指定流量录制单元。
可选地,所述录制请求包携带当前录制状态;
所述流量录制管理平台,还包括:
查询模块,被配置为按照预设周期,查询所述当前录制状态为启动的流量录制单元的第一数量;
比较模块,被配置为将预设的开启数量与所述第一数量进行比较,并根据比较结果确定针对所述指定流量录制单元的开关状态信息;
第二获取模块,被配置为获取所述服务架构对应的流量录制参数;
确定模块,被配置为根据所述开关状态信息和所述流量录制参数,确定所述流量录制信息。
可选地,所述流量录制管理平台,还包括第三接收模块,被配置为:
接收新增服务架构的新增指令,其中,所述新增指令中携带有配置信息;
根据所述配置信息,进行信息配置。
可选地,所述流量录制管理平台,还包括配置模块,被配置为:
为所述新增服务架构配置流量录制参数。
本申请提供的流量录制装置,应用于流量录制管理平台,接收指定流量录制单元发送的录制请求包,其中,所述指定流量录制单元为任一流量录制单元;响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,以使所述指定流量录制单元获取指定服务单元的服务属性信息,并基于所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构。基于单独的伴生服务,也即流量录制单元,无需业务方语言,跨语言通用,可以适用于不同编程语言开发的应用或服务中,适用性广。通过根据流量录制参数和服务属性信息进行流量录制,使伴生服务的流量录制逻辑兼容不同协议(http和grpc协议);基于独立的伴生服务,无需侵入业务代码,且流量录制单元使用独立的资源,不会占用服务单元的资源,因此,流量录制单元运行过程中出现异常,不会影响服务单元的正常运行,保证了系统的稳定性。此外,还可以提高流量录制效率,且通过发送录制请求包,不仅可以提醒流量录制管理平台当前的流量录制单元处于正常状态,可以开启流量录制,使流量录制管理平台能够统计可用流量录制单元的数量;还可以避免流量录制管理平台无效发送流量录制信息,浪费资源。
上述为本实施例的一种流量录制管理平台的示意性方案。需要说明的是,该流量录制管理平台的技术方案与上述的应用于流量录制管理平台的流量录制方法的技术方案属于同一构思,流量录制管理平台的技术方案未详细描述的细节内容,均可以参见上述应用于流量录制管理平台的流量录制方法的技术方案的描述。
图8示出了本申请一实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,LocalArea Network)、广域网(WAN,WideAreaNetwork)、个域网(PAN,PersonalAreaNetwork)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,Network InterfaceController))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocalAreaNetwork)无线接口、全球微波互联接入(Wi-MAX,Worldwide Interoperabilityfor Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,NearField Communication)接口,等等。
在本申请的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
其中,处理器820执行所述计算机指令时实现所述的流量录制方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的流量录制方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述流量录制方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述流量录制方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的流量录制方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述流量录制方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (18)
1.一种流量录制方法,其特征在于,应用于流量录制单元,包括:
接收流量录制管理平台发送的流量录制信息,其中,所述流量录制信息包括流量录制参数,所述流量录制信息是指用于指导流量录制进行的信息;
获取服务单元的服务属性信息,其中,所述服务单元与所述流量录制单元部署于同一服务架构,所述服务架构为微服务实例,所述服务单元为所述微服务实例中提供服务的主容器;所述流量录制单元为所述微服务实例中提供流量录制的伴生容器;
根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制。
2.根据权利要求1所述的方法,其特征在于,所述服务属性信息包括服务类型和端口信息;
所述根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制,包括:
根据所述服务类型和所述端口信息,确定所述端口的流量录制指令;
根据所述流量录制参数和所述流量录制指令,对所述端口进行流量录制。
3.根据权利要求1-2任意一项所述的方法,其特征在于,所述根据所述流量录制参数和所述服务属性信息,对所述服务单元的端口进行流量录制之后,还包括:
获取流量录制得到的初始流量信息,并识别所述初始流量信息;
在所述初始流量信息为请求信息的情况下,将所述请求信息进行存储;
在所述初始流量信息为响应信息的情况下,将所述响应信息与存储的请求信息进行拼接,得到目标流量信息。
4.根据权利要求3所述的方法,所述获取流量录制得到的初始流量信息,包括:
获取流量录制得到的原始流量信息;
对所述原始流量信息进行格式化处理,得到所述初始流量信息。
5.根据权利要求3所述的方法,所述将所述响应信息与存储的请求信息进行拼接,得到目标流量信息之后,还包括:
将所述目标流量信息发送至流量收集器,以使所述流量收集器对所述目标流量信息进行收集处理。
6.根据权利要求1-2任意一项所述的方法,所述接收流量录制管理平台发送的流量录制信息之前,还包括:
向所述流量录制管理平台发送录制请求包,以使所述流量录制管理平台响应于所述录制请求包反馈所述流量录制信息。
7.一种流量录制方法,其特征在于,应用于流量录制管理平台,包括:
接收指定流量录制单元发送的录制请求包,其中,所述指定流量录制单元为任一流量录制单元;
响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,所述流量录制信息包括流量录制参数,所述流量录制信息是指用于指导流量录制进行的信息,以使所述指定流量录制单元获取指定服务单元的服务属性信息,并基于所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构,所述服务架构为微服务实例,所述服务单元为所述微服务实例中提供服务的主容器;所述流量录制单元为所述微服务实例中提供流量录制的伴生容器。
8.根据权利要求7所述的方法,其特征在于,所述发送包含流量录制参数的流量录制信息至所述指定流量录制单元之前,还包括:
确定接收所述录制请求包的时刻,并对所述录制请求包进行解析,得到所述指定流量录制单元的当前录制状态;
将所述时刻和所述当前录制状态进行存储。
9.根据权利要求8所述的方法,其特征在于,所述将所述时刻和所述当前录制状态进行存储,包括:
在本地存在所述指定流量录制单元的请求记录的情况下,根据所述时刻和所述当前录制状态更新所述请求记录;
在本地不存在所述指定流量录制单元的请求记录的情况下,为所述指定流量录制单元创建请求记录,并将所述时刻和所述当前录制状态存储至所述请求记录中。
10.根据权利要求7-9任意一项所述的方法,其特征在于,所述响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,包括:
根据所述录制请求包,查询预设配置信息,确定所述包含流量录制参数的流量录制信息;
将所述流量录制信息发送至所述指定流量录制单元。
11.根据权利要求7-9任意一项所述的方法,其特征在于,所述录制请求包携带当前录制状态;
所述发送包含流量录制参数的流量录制信息至所述指定流量录制单元之前,还包括:
按照预设周期,查询所述当前录制状态为启动的流量录制单元的第一数量;
将预设的开启数量与所述第一数量进行比较,并根据比较结果确定针对所述指定流量录制单元的开关状态信息;
获取所述服务架构对应的流量录制参数;
根据所述开关状态信息和所述流量录制参数,确定所述流量录制信息。
12.根据权利要求7-9任意一项所述的方法,其特征在于,还包括:
接收新增服务架构的新增指令,其中,所述新增指令中携带有配置信息;
根据所述配置信息,进行信息配置。
13.根据权利要求12所述的方法,其特征在于,还包括:
为所述新增服务架构配置流量录制参数。
14.一种流量录制系统,其特征在于,包括:
流量录制管理平台和至少一个流量录制单元;
所述流量录制管理平台,用于接收指定流量录制单元发送的录制请求包,所述指定流量录制单元为任一流量录制单元;响应于所述录制请求包,发送包含流量录制参数的流量录制信息至所述指定流量录制单元,所述流量录制信息包括流量录制参数,所述流量录制信息是指用于指导流量录制进行的信息;
所述指定流量录制单元,用于获取指定服务单元的服务属性信息,其中,所述指定服务单元与所述指定流量录制单元部署于同一服务架构上,所述服务架构为微服务实例,所述服务单元为所述微服务实例中提供服务的主容器;所述流量录制单元为所述微服务实例中提供流量录制的伴生容器;根据所述流量录制参数和所述服务属性信息,对所述指定服务单元的端口进行流量录制。
15.根据权利要求14所述的系统,其特征在于,还包括:
流量收集器;
所述指定流量录制单元,还用于获取流量录制得到的初始流量信息,并识别所述初始流量信息;在所述初始流量信息为请求信息的情况下,将所述请求信息进行存储;在所述初始流量信息为响应信息的情况下,将所述响应信息与存储的请求信息进行拼接,得到目标流量信息;将所述目标流量信息发送至流量收集器;
所述流量收集器,还用于将所述目标流量信息进行存储。
16.根据权利要求15所述的系统,其特征在于,所述流量收集器,还用于通过消息队列接收所述目标流量信息;利用数据处理管道将所述消息队列中的目标流量信息存入数据引擎中;
所述流量录制管理平台,还用于在接收到流量查询请求的情况下,从所述数据引擎获取所述流量查询请求对应的指定流量信息,并反馈所述指定流量信息。
17.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述计算机指令时实现权利要求1-6或者7-13任意一项所述方法的步骤。
18.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-6或者7-13任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210668819.XA CN114884844B (zh) | 2022-06-14 | 2022-06-14 | 流量录制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210668819.XA CN114884844B (zh) | 2022-06-14 | 2022-06-14 | 流量录制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114884844A CN114884844A (zh) | 2022-08-09 |
CN114884844B true CN114884844B (zh) | 2023-12-26 |
Family
ID=82681118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210668819.XA Active CN114884844B (zh) | 2022-06-14 | 2022-06-14 | 流量录制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114884844B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019066295A1 (ko) * | 2017-09-28 | 2019-04-04 | 큐비트시큐리티 주식회사 | 실시간 웹 해킹 탐지를 위한 웹 트래픽 로깅 시스템 및 방법 |
CN110083543A (zh) * | 2019-05-07 | 2019-08-02 | 江苏满运软件科技有限公司 | 回归测试方法、装置、电子设备及存储介质 |
CN112532490A (zh) * | 2020-11-30 | 2021-03-19 | 武汉悦学帮网络技术有限公司 | 回归测试系统、方法和电子设备 |
US10992585B1 (en) * | 2019-05-09 | 2021-04-27 | Amazon Technologies, Inc. | Unified network traffic controllers for multi-service environments |
CN113315828A (zh) * | 2021-05-25 | 2021-08-27 | 平安银行股份有限公司 | 一种流量录制方法、装置及流量录制设备、存储介质 |
CN113422794A (zh) * | 2021-02-09 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 流量录制、回放处理方法、装置及电子设备 |
CN113971200A (zh) * | 2021-10-28 | 2022-01-25 | 北京百度网讯科技有限公司 | 一种云原生平台的地图服务流量录制系统及方法 |
CN114285774A (zh) * | 2021-12-09 | 2022-04-05 | 广州品唯软件有限公司 | 流量录制方法、装置、电子设备及存储介质 |
CN114579423A (zh) * | 2020-11-30 | 2022-06-03 | 行吟信息科技(上海)有限公司 | 一种流量回放质量分析方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10785122B2 (en) * | 2018-10-05 | 2020-09-22 | Cisco Technology, Inc. | Canary release validation mechanisms for a containerized application or service mesh |
JP2020150335A (ja) * | 2019-03-11 | 2020-09-17 | 富士通株式会社 | パケット解析プログラム、パケット解析装置およびパケット解析方法 |
-
2022
- 2022-06-14 CN CN202210668819.XA patent/CN114884844B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019066295A1 (ko) * | 2017-09-28 | 2019-04-04 | 큐비트시큐리티 주식회사 | 실시간 웹 해킹 탐지를 위한 웹 트래픽 로깅 시스템 및 방법 |
CN110083543A (zh) * | 2019-05-07 | 2019-08-02 | 江苏满运软件科技有限公司 | 回归测试方法、装置、电子设备及存储介质 |
US10992585B1 (en) * | 2019-05-09 | 2021-04-27 | Amazon Technologies, Inc. | Unified network traffic controllers for multi-service environments |
CN112532490A (zh) * | 2020-11-30 | 2021-03-19 | 武汉悦学帮网络技术有限公司 | 回归测试系统、方法和电子设备 |
CN114579423A (zh) * | 2020-11-30 | 2022-06-03 | 行吟信息科技(上海)有限公司 | 一种流量回放质量分析方法及装置 |
CN113422794A (zh) * | 2021-02-09 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 流量录制、回放处理方法、装置及电子设备 |
CN113315828A (zh) * | 2021-05-25 | 2021-08-27 | 平安银行股份有限公司 | 一种流量录制方法、装置及流量录制设备、存储介质 |
CN113971200A (zh) * | 2021-10-28 | 2022-01-25 | 北京百度网讯科技有限公司 | 一种云原生平台的地图服务流量录制系统及方法 |
CN114285774A (zh) * | 2021-12-09 | 2022-04-05 | 广州品唯软件有限公司 | 流量录制方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Privacy-preserving network flow recording;Bilal Shebaro et al.;《Digital Investigation》;第8卷;全文 * |
基于FMS与VHCapture的软件演示教学平台的设计与实现;徐海波;;实验技术与管理(第01期);全文 * |
基于流量回放的Web应用自动化测试工具的设计及实现;高晓慧;《中国优秀硕士学位论文全文数据库》(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114884844A (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10200506B2 (en) | Method, system and device for monitoring data | |
CN108471366A (zh) | 一种面向云原生应用的立体监控系统 | |
CN111124819B (zh) | 全链路监控的方法和装置 | |
CN109684370A (zh) | 日志数据处理方法、系统、设备及存储介质 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
US11422830B1 (en) | Decentralized mobile device control | |
CN110659109A (zh) | 一种openstack集群虚拟机监控系统及方法 | |
CN110995859A (zh) | 一种基于泛在物联网的变电站智能支撑平台系统 | |
CN110928934A (zh) | 一种用于业务分析的数据处理方法和装置 | |
CN114745295A (zh) | 数据采集方法、装置、设备和可读存储介质 | |
US11462322B1 (en) | Methods of determining a state of a dependent user | |
CN107463490B (zh) | 一种应用于平台开发中的集群日志集中收集方法 | |
CN111984505A (zh) | 一种运维数据采集引擎及采集方法 | |
CN110830759B (zh) | 智能应用部署的方法、装置和系统 | |
CN114884844B (zh) | 流量录制方法及系统 | |
CN113760634A (zh) | 一种数据处理方法和装置 | |
US11698874B2 (en) | Systems and methods for generic assurance framework | |
CN116010388A (zh) | 数据校验方法、数据采集服务端及数据校验系统 | |
CN116016117A (zh) | 网络设备运维数据采集方法、系统、电子设备及存储介质 | |
CN107347024A (zh) | 一种存储操作日志的方法和装置 | |
CN109684158B (zh) | 分布式协调系统的状态监控方法、装置、设备及存储介质 | |
CN113079055A (zh) | 一种agv运行数据的动态采集方法和装置 | |
CN109684159A (zh) | 分布式消息系统的状态监控方法、装置、设备及存储介质 | |
CN114697305B (zh) | 一种基于微服务架构的业务处理方法、装置及系统 | |
US20240070005A1 (en) | Real-Time Fault Management (RFM) |
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 |