数据采集方法、装置、计算机设备及存储介质与流程

文档序号:17721882发布日期:2019-05-22 02:13阅读:176来源:国知局
数据采集方法、装置、计算机设备及存储介质与流程

本申请涉及云部署技术领域,尤其涉及一种数据采集方法、装置、计算机设备及存储介质。



背景技术:

服务即平台(platform-as-a-service,paas),简称paas平台,基于应用容器引擎(docker)搭建的paas平台(也称paas系统)的性能分析系统是指对paas系统进行监控与分析的系统,从一个应用程序开发者的角度来说,开发者在paas系统部署自己的应用程序之后,首先需要知道的是自己部署的应用程序所在的paas系统的运行情况,以便开发者分析自己的应用程序的运行状态。例如,整个paas系统所能运行的应用程序的最大数量,以便得知整个paas系统所能支持的应用程序数量,也可以说,上述性能分析系统是一个对paas系统的性能瓶颈进行测试的系统。

传统上,提出了一种对paas系统进行数据采集的方法,是直接获取paas平台的宿主机的线程的资源数据并进行分析,但是,当paas系统运行在容器引擎(docker)中,由于容器引擎是通过建立进程来模拟虚拟机,paas系统是相当于运行在模拟机上,因此,paas系统的宿主机的线程的资源数据占用并不能直接反映真实的paas系统的资源占用情况,导致最终通过上述资源数据对paas系统进行性能分析得到的性能状况的准确率较低。



技术实现要素:

本申请公开了一种数据采集方法、装置、计算机设备及存储介质,对paas系统进行性能分析得到的性能状况的准确率更高。

一种数据采集方法,应用于数据采集系统中的数据采集装置,数据采集系统包括数据库服务器和paas服务器,paas服务器运行有容器操作系统集群,容器操作系统集群中每个容器操作系统上部署有应用容器引擎集群,应用容器引擎集群上搭建有paas系统,paas服务器还包括数据库客户端和数据采集装置,数据库客户端运行在应用容器引擎集群的应用引擎容器中,数据采集方法包括:

获取应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息;

根据应用容器引擎列表信息获取目标应用容器引擎的容器标识,目标应用容器引擎为应用容器引擎列表信息中指示的任意一个应用容器引擎;

获取目标应用容器引擎的容器标识对应的控制组文件;

对控制组文件进行数据分析以获得控制组文件中的容器性能数据;

将容器性能数据以及目标应用容器引擎的容器标识传输至数据库客户端,以使得数据库客户端将容器性能数据和目标应用容器引擎的容器标识关联发送至数据库服务器。

一种数据采集装置,其特征在于,应用于数据采集系统中的服务即平台paas服务器,paas服务器运行有容器操作系统集群,容器操作系统集群中每个容器操作系统上部署有应用容器引擎集群,应用容器引擎集群上搭建有paas系统,paas服务器还包括数据库客户端,数据库客户端运行在应用容器引擎集群的应用引擎容器中,数据采集系统还包括数据库服务器,数据采集装置包括:

第一获取模块,用于获取应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息;

第二获取模块,用于根据第一获取模块获取的应用容器引擎列表信息获取目标应用容器引擎的容器标识,目标应用容器引擎为应用容器引擎列表信息中指示的任意一个应用容器引擎;

第三获取模块,用于获取第二获取模块获取的目标应用容器引擎的容器标识对应的控制组文件;

分析模块,用于对第三获取模块获取的控制组文件进行数据分析以获得控制组文件中的容器性能数据;

传输模块,用于将分析模块分析得到的容器性能数据以及第二获取模块获取的目标应用容器引擎的容器标识传输至数据库客户端,以使得数据库客户端将容器性能数据和目标应用容器引擎的容器标识关联发送至数据库服务器。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据采集方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据采集方法的步骤。

上述数据采集方法、装置、计算机设备及存储介质所实现的方案中,在对paas系统进行性能数据采集时,是利用运行在容器引擎上的数据采集装置和数据客户端共同工作,且由于paas系统是运行在容器引擎上的,是利用数据采集装置直接读取容器引擎的容器性能数据,因此,获取的容器性能数据直接反应了paas系统的性能,从而利用本申请实施例获取的容器性能数据对paas系统进行性能分析得到的性能状况的准确率更高。

附图说明

为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请中数据采集系统一个框架示意图;

图2是本申请中一种数据采集方法一个实施例流程示意图;

图3是本申请中一种数据采集方法另一实施例流程示意图;

图4是本申请中一种数据采集方法另一实施例流程示意图;

图5是本申请中一种数据采集方法另一实施例流程示意图;

图6是本申请中一种数据采集方法另一实施例流程示意图;

图7是本申请中一种数据采集方法另一实施例流程示意图;

图8是本申请中一种数据采集装置一个实施例结构示意图;

图9是本申请中一种计算机设备的一个实施例结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种数据采集方法,应用于数据采集系统中,其中,数据采集系统的网络框架示意图如图1所示:上述数据采集系统包括数据库服务器和服务即平台服务器,为了便于描述,本文中统称为paas服务器,paas服务器上运行有一个或多个容器操作系统,也就是容器操作系统集群,其中,容器操作系统集群中每个容器操作系统上部署有应用容器引擎集群(也即docker容器集群),应用容器引擎集群上搭建有paas平台(也称paas系统),paas服务器还包括数据库客户端和数据采集装置,数据库客户端运行在应用容器引擎集群中的应用容器引擎中。为了便于理解,下面先对涉及到的术语进行介绍:

paas服务器,顾名思义,paas服务器为用于提供paas平台(也称paas系统)的服务器,在上述paas服务器上可以搭建一个或多个容器操作系统以构成容器操作系统集群,容器操作系统指的是为应用容器引擎搭建操作环境的操作系统,通常为linux系统,应用容器引擎(也即docker容器),是一个开源的应用容器引擎,软件开发者可以打包开发的应用程序并将应用程序部署在应用容器引擎中,应用容器引擎提供的容器可以看成独立的虚拟机,应用程序可运行在该应用容器引擎中,并且基于应用容器引擎建立的虚拟机是基于进程的虚拟化,也就是说,一个应用容器引擎具备完成一个虚拟机可以完成的能力。在上述应用容器引擎集群里,可以搭建本申请实施例中的paas系统,除此之外,应用容器引擎集群中的应用容器引擎,还可以运行上述数据库客户端,数据库客户端指的是用于与数据库服务器建立数据通信的对象或模块,可以看出,用于向数据库服务器进行数据通信的数据库客户端也是以应用容器引擎的形式运行在每个容器操作系统上,可以节省数据采集系统的系统资源。数据采集装置为用于执行本申请实施例的数据采集方法的执行主体,该数据采集装置为一程序模块。数据库服务器是用于提供数据库服务的服务器,用于连接paas服务器,接收数据库客户端发送的性能数据并进行关联存储。示例性的,在一个具体的应用场景中,上述paas系统采用deis(pronouncedday-iss)系统,deis系统是一个开源的paas系统,使用该deis系统,软件开发者可以方便的部署和管理应用程序,并且上述容器操作系统采用,deis系统是轻量级的paas系统,可采用coreos系统作为上述容器操作系统,deis系统中的程序和组件运行在上述coreos系统所构成的容器操作系统集群,deis系统包括多个应用组件,上述多个应用组件组成一个paas系统,deis系统的每一个应用组件都可以以一个应用容器引擎或一组应用容器引擎的方式进行部署,具体不做限定。应理解,coreos系统是服务于大数据和云计算时代的要求轻量级的操作系统,保留了linux系统最基本的内核,去掉了包管理程序,把应用程序的安装转换为通过应用容器引擎的方式进行,coreos系统使用容器技术可使得各应用容器引擎共享系统资源且互不可见,降低了容器操作系统和应用程序时间的耦合度,可以使得coreos系统中应用容器引擎上的应用程序的部署更加灵活。其中,具体的,可以通过在paas服务器中部署安装虚拟机软件(virtualbox),用于运行上述coreos系统构成的容器操作系统集群。另外,由于deis系统的要求比较高,优选地,作为deis系统的宿主主机可选用16g、32g或更高的容量作为内存的容量,可选用150g、300g或更高的容量作为硬盘的容量。需要说明的是,上述应用场景在这里只是示例说明,但并不对本申请实施例构成限定,在本申请的其他应用场景中,还可以有其他的配置,具体不做限定,例如,上述容器操作系统还可以采用centos系统或其他容器操作系统、上述paas服务器也可以采用其它的机架式服务器或其他非机架构式服务器、上述paas系统还可以采用flynn系统,具体这里不做限定。

另外需要说明的是,图1所示的数据采集系统的网络框架示意图中在这里只是一个示例,并不对本申请实施例的中数据采集系统造成限定,例如,在图1所示的网络框架中,在容器操作系统集群中的每一个容器操作系统都包括了本申请实施例中数据采集装置,但在实际应用中,数据采集装置也可以作为paas服务器中独立的装置分别与上述容器操作系统建立数据通信,具体此处不做限定。又例如,在图1所示的网络框架中,包含了多个容器操作系统,但在实际应用中,也可以包含一个容器操作系统,该容器操作系统上部署有应用容器集群,具体这里也不做限定。以上对本申请实施例中的数据采集系统进行了描述,下面对本申请实施例中的数据采集方法进行描述:

本申请实施例提供了数据采集方法,应用于数据采集系统中的数据采集装置,数据采集系统包括数据库服务器和paas服务器,paas服务器运行有容器操作系统集群,容器操作系统集群中每个容器操作系统上部署有应用容器引擎集群,应用容器引擎集群上搭建有paas系统,paas服务器还包括数据库客户端和数据采集装置,数据库客户端运行在应用容器引擎中的应用容器引擎中,数据采集方法包括:

s10、获取应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息;

如前述,可以在应用容器引擎集群中部署应用程序,并且应用容器引擎集群中也运行有paas系统,也就是说,应用容器引擎集群中包括正在运行的应用容器引擎和停止运行的应用容器引擎,在本申请实施例中,数据采集装置可获取应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息。该应用容器引擎列表信息中包含正在运行的应用容器引擎对应的容器标识。需要说明的是,上述应用容器引擎列表信息除了应用容器引擎对应的容器标识外,还可以应用容器引擎的其他信息,例如创建时间等。另外需要说明的是,上述容器标识为某一固定格式或类型的字符或字符串或数字,或三者任意两者的结合,具体不做限定,例如,rq1、rq2用于标识应用容器引擎1,应用容器引擎2等,用于唯一标识应用容器引擎,示例性,应用容器引擎的容器名称也可作为上述容器标识的一种。

s20、根据应用容器引擎列表信息获取目标应用容器引擎的容器标识,目标应用容器引擎为应用容器引擎列表信息中的任意一个应用容器引引擎;

在获得了包含有容器标识的应用容器引擎列表信息后,数据采集装置可根据应用容器引擎列表信息获取目标应用容器引擎的容器标识,其中,该目标引擎容器引擎为应用容器引擎列表信息中的任意一个应用容器引引擎。也就是说,数据采集装置可以对引用容器引擎集群中所有正在运行的应用容器引擎的容器标识。

s30、获取目标应用容器引擎的容器标识对应的控制组文件;

应理解,控制组(controlgroups,cgroup),是一种linux系统中用于限制隔离、以及记录系统进程使用武力资源的一种机制手段。而容器操作系统作为linux系统,也可以采用上述控制组机制,也就是说,通过控制组,可以容器操作系统中各进程使用paas服务器的cpu、内存、网络、磁盘等资源的使用情况,为各进程所能使用的资源进行合理的划分,基于上述控制组机制,由于应用容器引擎作为运行在容器操作系统上的容器,可通过上述控制组方式进行管理应用容器引擎集群。控制组文件指的是通过上述控制组机制管理进程资源时所产生的记录文件,控制组文件用于记录应用容器引擎的容器性能数据。其中,不同的应用容器引擎产生的容器性能数据由不同的控制组文件进行记录,具体的,由应用容器引擎的容器标识对控制组文件进行标识,应用容器引擎的容器标识与控制组文件一一对应。示例性的,假设有应用容器引擎1、2,对应的标识为标识a和标识b,则应用容器引擎1具有与标识a对应的控制组文件1,应用容器引擎2具有与标识b对应的控制组文件2。

其中,控制组包括多个子系统,每个子系统都对应有文件,每个文件用于记录某一种类型的容器性能数据,控制组文件指的是上述各个子系统对应的文件,下面分别展开描述:

cpu子系统,通过设置cpu子系统可以设置容器操作系统应用容器引擎对应的进程对paas服务器的cpu的资源访问进行控制,cpu文件用于记录应用容器引擎对cpu的访问限制信息,例如目标应用容器引擎对应的资源访问的控制权限等。

cpuacct子系统,cpuacct子系统是用于显示paas服务器cup的使用状态的系统,cpuacct文件用于实时记录应用容器引擎对应的进程对cpu资源的使用信息,例如cpu占用比率。

blkio子系统,通过设置blkio可以限制硬件设备的输入输出,例如硬盘、u盘等存储设备,blkio文件用于记录上述硬件设备相关的记录,包括应用容器引擎对于上述存储设备的使用信息,包括对上述存储设备的读、写。

除此之外,除了上述子系统外,还包括其他的控制组子系统,以及对应的文件,例如,devices子系统以及对应的devices文件、freezer子系统以及对应的freezer文件,memory子系统以及对应的memory文件。,在一些实施例中,所述控制组文件包括如下中的至少一项:blkio文件、cpu文件、cpuacct文件、devices文件、freezer文件、memory文件,具体这里不做限定。也不一一展开来描述。

也就是说,目标应用容器引擎的容器标识对应的控制组文件可以包括上述多种文件。因此,在本申请实施例中,数据采集装置可获取目标应用容器引擎中容器标识对应的控制组文件。

s40、对控制组文件进行数据分析以获得控制组文件中的容器性能数据;

如前述,控制组文件为用于记录应用容器引擎的容器性能数据的记录文件,因此,在本申请实施例中,数据采集装置获取目标应用容器引擎的容器标识对应的控制组文件后,数据采集装置可对目标应用容器引擎的容器标识对应的控制组文件进行数据分析,以获得控制组文件中的容器性能数据,也就是目标应用容器引擎对应的容器性能数据。示例性的,假设控制组文件为cpuacct文件,则可以获取到目标应用容器引擎对应的进程对cpu资源的实时使用信息。

s50、将容器性能数据以及目标应用容器引擎的容器标识传输至数据库客户端,以使得数据库客户端将容器性能数据和目标应用容器引擎的容器标识关联发送至数据库服务器。

在数据采集装置获取了取目标应用容器引擎的容器标识对应的控制组文件,从而得到目标应用容器引擎的容器性能数据后,数据的获取更趋向于底层,从而实现准确及快速获取效率。数据采集装置将容器性能数据以及目标应用容器引擎的容器标识传输至数据库客户端,数据库客户端接收到上述容器性能数据以及对应的容器标识后,将容器性能数据和目标应用容器引擎的容器标识关联发送至数据库服务器,也就是说,将容器性能数据和目标应用容器引擎的容器标识进行捆绑发送,以区分每个应用容器引擎的容器性能数据,这样数据库服务器可以对容器性能数据进行监控等后续操作。通过以上技术方案可以看出,本申请在对paas系统进行性能数据采集时,是利用运行在容器引擎上的数据采集装置和数据客户端共同工作,且由于paas系统是运行在容器引擎上的,是利用数据采集装置直接读取应用容器引擎的容器性能数据,因此,获取的容器性能数据直接反应了paas系统的性能,从而利用本申请获取的容器性能数据对paas系统进行性能分析得到的性能状况的准确率更高。

在一些实施例中,在应用容器引擎中部署应用程序时,可通过镜像库的方式进行部署,具体的,其中,镜像库是存储在云端服务器的云存储平台,在使用应用容器引擎时,可通过从云端服务器选取特定功能的镜像,采用从云端服务器拉取的方式获得上述特定功能对应的功能镜像,通过运行镜像快速部署某些功能。示例性的,上述数据库客户端为实现将数据采集装置采集的容器性能数据发送至数据库服务器,因此,可将数据库客户端对应的镜像预先存储在云端服务器,在应用容器引擎中部署数据库客户端时,可从云端服务器获取数据库客户端对应的镜像进行安装。应理解,由于应用容器引擎的进程级虚拟化的特性可知,应用容器引擎不占用容器操作系统过多的系统资源,运行在应用容器引擎的数据库客户端向数据库服务器发送容器性能数据,可以减少数据采集装置的数据发送压力,也就是减少了容器操作系统的系统压力,从而减少了整个数据采集系统的压力。

在一实施例中,上述数据采集装置以linux脚本的形式,例如sheel脚本的形式运行在各容器操作系统中。也就是说,paas服务器中每个容器操作系统均有一份sheel脚本。以一具体的应用场景为例,当数据采集装置以sheel脚本的形式运行在容器操作系统中时,当sheel脚本运行时,会自动从云端服务器拉取数据库客户端对应的镜像,之后将获取的容器性能数据通过数据库客户端实时关联上传至数据库服务器。另外值得一提的是,基于该linxux脚本场景下,当数据采集系统需添加新的容器操作系统节点,只需往该新的容器操作系统节点添加上述sheel脚本即可。

在一些实施例中,如图3所示,步骤s10,也即获取应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息,具体包括如下步骤:

s11、获取应用容器引擎集群的应用容器引擎服务程序;

s12、根据应用容器引擎服务程序获取应用容器引擎集群中所有在运行的应用容器对应的应用容器引擎列表信息。

对于步骤s11,以实际应用场景为例,deis系统工作在coreos系统集群上,coreos系统集群以virtualbox的模式运行在paas服务器上,deis系统的各应用组件以应用容器引擎的形式运行在coreos系统集群上,且软件开发者的应用程序也以应用容器引擎的形式运行在coreos系统集群上,其中,上述应用容器引擎集群的应用容器引擎由应用容器引擎服务程序(docker服务程序)管理,也就是说应用容器引擎服务程序包含正在运行的应用容器引擎的相关信息,在本申请实施例中,数据采集装置可获取应用容器引擎集群的应用容器引擎服务程序。

对于步骤s12,在数据采集装置获取了应用容器引擎集群的应用容器引擎服务程序后,可获取应用容器引擎集群中所有在运行的应用容器对应的应用容器引擎列表信息。具体的,可通过“dockerps”命令从应用容器引擎服务程序提取正在运行的应用容器引擎对应的应用容器引擎列表信息,,需要说明的是,除此之外,还可以有其他的获取正在运行的应用容器引擎的应用容器引擎列表信息,例如,可预先为应用容器引擎所部署的应用程序进行分类,同一类型的应用程序运行时应用容器引擎的参数,与不在应用程序不在运行时应用容器引擎的参数不同,可根据上述不同确定出正在运行的所有应用容器引擎,并生成上述在运行的所有应用容器引擎对应的应用容器引擎列表信息,具体不做限定。

在一些实施例中,如图4所示,步骤s20中,也即数据采集装置根据应用容器引擎列表信息获取目标应用容器引擎的容器标识,具体包括如下步骤:

s21、从应用容器引擎列表信息提取文本信息;

s22、通过sed或awk文本分析工具对文本信息进行文本分析,以获取目标应用容器引擎的容器标识。

应理解,awk文本分析工具是一种文字处理工具,是linux系统中功能强大的数据处理引擎,因此可从应用容器引擎列表信息中提取的文本信息进行文本分析以获取目标应用同期引擎的容器标识,可理解,由于容器标识的字段格式或类型预先知道,因此可利用目标应用容器引擎的容器标识,通过awk文本分析工具对所述文本信息进行文本分析,以获取目标应用容器引擎的容器标识,具体不做限定。另外需要说明的是,除了采用awk文本分析工具外,也还可以采用其他的文本分析工具,例如sed文本分析工具,这里也不做限定。

在一些实施例中,如图5所示,步骤s30中,也即获取目标应用容器引擎的容器标识对应的控制组文件,具体包括如下步骤:

s31、使用全局正则表达式打印命令获取目标应用容器引擎的容器标识对应的文件路径;

s32、通过文件路径获取目标应用容器引擎的容器标识对应的控制组文件。

在本申请实施例中,在获得目标应用容器引擎的容器标识后,可通过全局正则表达式打印(globalregularexpressionprint,grep)命令获取目标应用容器引擎的容器标识对应的文件路径,从而通过文件路径获取目标应用容器引擎的容器标识对应的控制组文件。同理应理解,除了上述使用grep命令获取目标应用容器引擎的容器标识对应的文件路径外还可以有其他的方式,例如同样采用sed分析工具进行文本分析等,具体这里不做限定,也不重复描述。

在一些实施例中,如图6所示,s40中,也即数据采集装置对控制组文件进行数据分析以获得控制组文件中的容器性能数据,具体包括如下步骤:

s41、通过sed或awk文本分析工具对控制组文件进行数据分析,以确定控制组文件中的容器性能数据对应的文本标识;

s42、获取文本标识对应的控制组文件中的容器性能数据。

在一些实施例中,控制组文件至少包括如下一项:blkio文件、cpu文件、cpuacct文件、devices文件、freezer文件、memory文件,具体可根据需求进行配置,这里不走限定。

也就是说,以容器操作系统为coreos操作系统为例,数据采集装置会使用目标应用容器引擎的容器标识在coreos操作系统的控制组文件(也即cgroup文件),包括于blkio文件、cpu文件、cpuacct文件、devices文件、freezer文件、memory文件等,以获取paas服务器的磁盘状态、cpu状态、内存状态、进程状态等信息,在提取到对于应用容器引擎对应的控制组文件后,使用sed或awk等文本分析工作对各控制组文件进行容器性能数据的扫描、分析,将获取的容器性能数据发送至数据库客户端,以便数据库客户端对容器性能数据发送至数据库服务器。

在一些实施例中,如图8所示,上述数据采集方法还包括如下步骤:

s60、确定容器操作系统的系统标识;

如前述,paas服务器中可部署一个或多个容器操作系统,以构成本申请实施例中的容器操作系统集群,在本申请实施例中,每个容器操作系统预设用于唯一标识每个容器操作系统的系统标识。其中,该系统标识采用与容器标识不一样的标识方式,具体不做限定。因此,数据采集装置可确定容器操作系统集群中任意一个容器操作系统的系统标识。

s70、获取系统标识对应的系统文件;

数据采集装置获取容器操作系统的系统标识后,可获取系统标识对应的系统文件信息,上述系统文件信息指的是容器操作系统对应的应用容器引擎对应的控制组文件。同样至少包括如下一项:blkio文件、cpu文件、cpuacct文件、devices文件、freezer文件、memory文件,具体可根据需求进行配置,这里不走限定。

s80、根据系统文件获取系统标识对应的容器操作系统的系统性能数据;

如前述,数据采集装置可从容器操作系统对应的控制组文件中,也即系统文件中获取对应的容器操作系统的系统性能数据。具体的,也可以通过sed或awk等文本分析工具,利用系统标识扫描分析出容器操作系统的系统性能数据,例如容器操作系统对应的所有应用容器引擎的容器性能数据,容器操作系统名称、剩余cpu容量、剩余内存容量、cache使用量等,这里不详细展开描述。

s90、将系统性能数据和系统标识传输至数据库客户端,以使得数据库客户端将系统性能数据和系统标识关联发送至数据库服务器。

也就是说,本申请实施例中的数据采集方法除了获取容器操作系统的应用容器引擎的容器性能数据外,还进一步获取容器操作系统的系统性能数据发送至数据库服务器,获取到了承载有paas系统的各方面的性能数据,比较全面,有助于后续的性能数据分析,以便真实的了解到paas系统的真实工作状态。

在一实施例中,上述数据库服务器收到上述容器性能数据或系统性能数据时,会将获取到的每条性能数据加入时间戳进行关联存储。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在一实施例中,提供一种数据采集装置,应用于数据采集系统中的服务即平台paas服务器,所述paas服务器运行有容器操作系统集群,所述容器操作系统集群中每个容器操作系统上部署有应用容器引擎集群,所述应用容器引擎集群上搭建有paas系统,所述paas服务器还包括数据库客户端,所述数据库客户端运行在所述应用容器引擎集群的应用引擎容器中,所述数据采集系统还包括数据库服务器,该数据采集装装置与上述实施例中数据采集装方法一一对应。如图8所示,该数据采集装置80包括第一获取模块801、第二获取模块802、第三获取模块803、分析模块804和传输模块805。各功能模块详细说明如下:

第一获取模块801,用于获取所述应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息;

第二获取模块802,用于根据所述第一获取模801块获取的所述应用容器引擎列表信息获取目标应用容器引擎的容器标识,所述目标应用容器引擎为所述应用容器引擎列表信息中指示的任意一个应用容器引擎;

第三获取模块803,用于获取所述第二获取模块802获取的所述目标应用容器引擎的容器标识对应的控制组文件;

分析模块804,用于对所述第三获取模块803获取的所述控制组文件进行数据分析以获得所述控制组文件中的容器性能数据;

传输模块805,用于将所述分析模块804分析得到的所述容器性能数据以及所述第二获取模块获取的所述目标应用容器引擎的容器标识传输至数据库客户端,以使得所述数据库客户端将所述容器性能数据和所述目标应用容器引擎的容器标识关联发送至所述数据库服务器。

在一实施例中,第一获取模块801具体用于:

获取应用容器引擎集群的应用容器引擎服务程序;

根据所述应用容器引擎服务程序获取所述应用容器引擎集群中所有在运行的应用容器对应的应用容器引擎列表信息。

在一实施例中,第二获取模块802具体用于:

从所述应用容器引擎列表信息提取文本信息

通过sed或awk文本分析工具对所述文本信息进行文本分析,以获取所述目标应用容器引擎的容器标识。

在一实施例中,第三获取模块803具体用于:

使用grep命令获取所述目标应用容器引擎的容器标识对应的文件路径;

通过所述文件路径获取所述目标应用容器引擎的容器标识对应的控制组文件。

在一实施例中,分析模块804具体用于:

通过sed或awk文本分析工具对所述控制组文件进行数据分析,以确定所述控制组文件中的容器性能数据对应的文本标识;

获取所述文本标识对应的所述控制组文件中的容器性能数据。

在一实施例,所述控制组文件包括但不局限于blkio文件、cpu文件、cpuacct文件、devices文件、freezer文件、memory文件。

在一实施例中,所述数据采集装置80还包括确定模块、第四获取模块:和第五获取模块。

其中,确定模块,用于确定所述容器操作系统的系统标识;

第四获取模块,用于获取所述系统标识对应的系统文件信息;

第五获取模块,用于根据所述系统文件信息获取所述系统标识对应的容器操作系统的系统性能数据;

传输模块还用于:将所述系统性能数据和所述系统标识传输至所述数据库客户端,以使得所述数据库客户端将所述系统性能数据和所述系统标识关联发送至所述数据库服务器。

关于数据采集装置的具体限定可以参见上文中对于数据采集方法的限定,在此不再赘述。上述数据采集装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一实施例中,本申请实施例提供了一种数据采集系统,该数据采集系统包括数据库服务器和paas服务器,paas服务器,paas服务器运行有容器操作系统集群,容器操作系统集群中每个容器操作系统上部署有应用容器引擎集群,应用容器引擎集群上搭建有paas系统,paas服务器还包括数据库客户端和数据采集装置,数据库客户端运行在应用容器引擎中的应用容器引擎中,其中,数据采集装置用于实现前述数据采集方法中数据采集装置的功能或步骤,最终以实现paas服务器和数据库服务器构成的数据采集系统所实现的功能或步骤,具体可参阅前述方法实施例中的描述,这里不重复赘述。

在一实施例中,本申请实施例还提供一性能数据分析系统,包括上述数据采集系统,数据采集系统包括上述paas服务器和数据库服务器、万维网(web)系统、短信预警系统和性能瓶颈测试系统,下面本别对上述模块或系统进行描述:

对于数据采集系统,具体可详细参阅前面的描述,这里只再提下数据库服务器。

对于数据库服务器,是上述性能数据分析系统的中继层,在获得了数据采集系统发送的性能数据(包括容器性能数据和系统性能数据)后,加入时间戳进行关联存储,为上层的应用层提供数据支持。在一些具体的应用场景中,数据库服务器可采用云服务器,数据库服务器上运行mysql服务器组件,以提供sql服务,供应用层调用性能数据。云服务器运行ubuntu4系统,带宽为4m,以保证网络的畅通,应用层由万维网系统、短信预警系统和性能测试系统实现。

其中,万维网系统用于为用户提供稳定的wed访问,主要为用户提供paas系统的相关参数的查询,包括应用容器引擎的容器性能数据和容器操作系统的系统性能数据,paas服务器的信息。

短信预警系统,用于为整个paas系统提供预警短信提醒功能,短信预警系统可从数据库服务器中读取开关状态信息,并且同时提取paas系统的性能数据,当paas系统的所能承受的负载高于预设阈值时,则将负载高于预设值的情况反馈值短信云服务器商,用户则接收到短信云服务商发送的预警短信息。其中,在一具体的应用场景中,短信预警系统可运行在阿里云的window系统主机上,从而为用户提供稳定的短信预警服务。

性能瓶颈测试系统,用于通过模拟化测试为paas系统中的用户提供paas系统的最大性能瓶颈值,例如,paas系统能运行的最多的应用程序的数量等。性能瓶颈测试系统可从数据库服务器中获取开关状态信息,增量式运行paas系统的应用程序,通过和paas系统实时的状态进行结合闭环式控制,以得到paas系统的性能瓶颈值。其中,在一具体的应用场景中,性能瓶颈测试系统以linux脚本的方式运行在paas服务器上。

在一实施例中,万维网系统包括应用容器引擎资源占用展示系统(docker资源占用展示系统),该docker资源占用展示系统用于从数据库服务器中读取应用容器引擎的性能数据并进行展示,其中,在本申请实施例中,性能数据分析系统提供一操作界面,用户可以从操作界面中选取某个容器操作系统的名称,当万维网系统读取到用户选择的容器操作系统选择的名称时,万维网系统用于从数据库服务器中获取到第一预设时长(例如20秒、30秒等)内注册到数据库的应用容器引擎的引擎列表,然后在数据库服务器中读取该引擎列表中各应用容器引擎的容器性能数据,并通过web页面展示给用户看。

在一实施例中,万维网系统包括主机资源占用展示系统(host资源占用展示系统),该host资源占用展示系统用于从数据库服务器中读取容器操作系统的系统数据并进行展示,其中,在本申请实施例中,性能数据分析系统提供一操作界面,用户可以从操作界面中选取某个容器操作系统的系统名称,当万维网系统读取到用户选择的容器操作系统选择的名称时,万维网系统用于从数据库服务器中获取到第二预设时长(例如20秒、30秒等)内注册到数据库的容器操作系统的引擎列表,然后在数据库服务器中读取该引擎列表中各容器操作系统的系统性能数据,并通过web页面展示给用户看。

在一实施例中,host资源占用展示系统通过web页面向用户进行展示时通过图像可视化的方式进行展示,例如展示在chart折线图上,以反映出系统性能数据的变化情况。

在一实施例中,如前述,短信预警系统为当paas系统负载过高时用于给用户发送预警短信的服务系统,该短信预警系统,用于循环从数据库服务器中提取预设的检测状态开关信息,当检测状态开关信息指示为开时,则短信预警系统对数据库服务器的性能数据(容器性能数据和/或系统性能数据)实时进行读取,当确定读取的性能数据高于预警值时,则对云短信运用商发送短信请求,短信运行商则会向用户发送预警短信达到预警提醒作用,并且可锁定短信状态为已发送,以避免对用户连续发送预警短信。若确定读取的性能数据低于预警值,则对用户发送预警解除短信。

在一实施例中,性能瓶颈测试系统,性能瓶颈测试系统用于向数据库获取预设的测试开关信息和写入瓶颈值,当性能瓶颈测试系统从数据库服务器中读取到的测试开关信息展示测试状态为开时,则以递加的方式增量应用程序,从而预测出paas系统的瓶颈值。

在一个实施例中,提供了一种计算机设备,该计算机设备可以作为本申请实施例中的paas服务器,该计算机设备可应用于本申请实施例中的数据采集系统中,其中,所述数据采集系统包括数据库服务器和所述paas服务器,所述paas服务器运行有容器操作系统集群,所述容器操作系统集群中每个容器操作系统上部署有应用容器引擎集群,所述应用容器引擎集群上搭建有paas系统,所述paas服务器还包括数据库客户端,所述数据库客户端运行在所述应用容器引擎集群的应用引擎容器中。其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储获取的容器性能数据,系统性能数据等。该计算机设备的网络接口用于与外部的数据库服务器连接通信。该计算机程序被处理器执行时以实现一种数据采集方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

获取应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息;

根据应用容器引擎列表信息获取目标应用容器引擎的容器标识,目标应用容器引擎为应用容器引擎列表信息中指示的任意一个应用容器引擎;

获取目标应用容器引擎的容器标识对应的控制组文件;

对控制组文件进行数据分析以获得控制组文件中的容器性能数据;

将容器性能数据以及目标应用容器引擎的容器标识传输至数据库客户端,以使得数据库客户端将容器性能数据和目标应用容器引擎的容器标识关联发送至数据库服务器。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取应用容器引擎集群中所有在运行的应用容器引擎对应的应用容器引擎列表信息;

根据应用容器引擎列表信息获取目标应用容器引擎的容器标识,目标应用容器引擎为应用容器引擎列表信息中指示的任意一个应用容器引擎;

获取目标应用容器引擎的容器标识对应的控制组文件;

对控制组文件进行数据分析以获得控制组文件中的容器性能数据;

将容器性能数据以及目标应用容器引擎的容器标识传输至数据库客户端,以使得数据库客户端将容器性能数据和目标应用容器引擎的容器标识关联发送至数据库服务器。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请实施例所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1