监控数据上传方法、装置、设备、系统及存储介质与流程

文档序号:14409718阅读:346来源:国知局
监控数据上传方法、装置、设备、系统及存储介质与流程
本发明涉及应用性能监控
技术领域
,尤其涉及一种监控数据上传方法、装置、设备、系统及计算机可读存储介质。
背景技术
:通常,app运营方为了后续能够对app进行性能上的持续改进,因而需要获得app运行过程中的性能数据,也即app运营方需要主动对app用户端进行监控以获取app的性能监控数据。当用户端设备上报app的性能监控数据时,需要每条数据都是独立完整的,每条数据都包含了设备信息、网络状态等等,这种完整性便于后续的数据分析。然而,在每一条上报数据中,通常包含一些永久不变或者一段时间内不会变化的数据,也即存在多次重复上报的数据。而如果每条数据在上报时都带上完整信息的话,那么将会耗费很大流量在上报这些重复的数据上。技术实现要素:本发明的主要目的在于提供一种监控数据上传方法、装置、设备、系统及计算机可读存储介质,旨在解决现有数据上报存在多次上报重复数据进而导致上报端设备流量消耗过大的技术问题。为实现上述目的,本发明提供一种监控数据上传方法,应用于应用程序的性能监控,所述监控数据上传方法包括以下步骤:在应用程序启动时,向后台服务器上报一次应用程序所在设备的设备信息并保存;在应用程序运行过程中,判断当前所述设备的易变数据是否发生变化;若是,则生成一新的关联码并与变化后的易变数据关联保存;在易变数据未发生变化期间,将该期间内所有待上报的事件监控数据与当前最新的关联码关联保存;在数据上报时,将保存的所述设备信息中的相关信息、与同一关联码关联保存的易变数据与事件监控数据,按照预设格式进行组装与压缩,得到监控数据包并上传后台服务器。可选地,所述设备的易变数据至少包括:网络类型、ip地址、设备系统语言、设备系统时区;所述相关信息至少包括:所述设备的设备码、所述设备信息上报的时间戳。可选地,所述生成一新的关联码并与变化后的易变数据关联保存包括:通过预置的关联码生成器,生成一新的关联码,并在保存易变数据时,将该新的关联码与变化后的易变数据进行关联保存。可选地,所述在数据上报时,将保存的所述设备信息中的相关信息、与同一关联码关联保存的易变数据与事件监控数据,按照预设格式进行组装与压缩包括:在数据上报时,将与同一关联码关联保存的易变数据与事件监控数据划分为一组分组数据;至少将所述设备的设备码、所述设备信息上报的时间戳以及至少一组所述分组数据,按照预设的json格式进行组装,并将组装完成后的数据进行压缩。可选地,所述在应用程序启动时,向后台服务器上报一次应用程序所在设备的设备信息并保存包括:在应用程序启动时,判断当前应用程序所在设备的网络类型是否为移动通信网络;若当前所述设备的网络类型为移动通信网络,则向后台服务器上报一次所述设备的设备信息并本地保存该设备信息。进一步地,为实现上述目的,本发明还提供一种监控数据上传装置,应用于应用程序的性能监控,所述监控数据上传装置包括:第一上报模块,用于在应用程序启动时,向后台服务器上报一次应用程序所在设备的设备信息并保存;判断模块,用于在应用程序运行过程中,判断当前所述设备的易变数据是否发生变化;第一关联模块,用于在当前所述设备的易变数据发生变化时,生成一新的关联码并与变化后的易变数据关联保存;第二关联模块,用于在易变数据未发生变化期间,将该期间内所有待上报的事件监控数据与当前最新的关联码关联保存;第二上报模块,用于在数据上报时,将保存的所述设备信息中的相关信息、与同一关联码关联保存的易变数据与事件监控数据,按照预设格式进行组装与压缩,得到监控数据包并上传后台服务器。进一步地,为实现上述目的,本发明还提供一种监控数据上传设备,所述监控数据上传设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的监控数据上传程序,所述监控数据上传程序被所述处理器执行时实现如上述任一项所述的监控数据上传方法的步骤。进一步地,为实现上述目的,本发明还提供一种监控数据上传系统,所述监控数据上传系统包括后台服务器以及如上所述的监控数据上传设备;所述后台服务器,与所述监控数据上传设备建立无线连接,并用于接收所述监控数据上传设备上传的设备信息以及所述监控数据包。可选地,所述后台服务器还用于:解压所述监控数据包,得到易变数据、事件监控数据以及所述设备信息中的相关信息;基于所述相关信息,查询所述后台服务器所接收到的设备信息,以获得所述易变数据与所述事件监控数据对应的设备信息;将获得的设备信息、所述易变数据与所述事件监控数据进行组装,得到多条完整的监控数据并保存到所述后台服务器的数据库中。进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有监控数据上传程序,所述监控数据上传程序被所述处理器执行时实现如上述任一项所述的监控数据上传方法的步骤。本发明中,将上报后台的数据划分为两部分:第一部分为不变化的数据,包括设备信息;第二部分为变化的数据,包括:短时不变的数据,比如网络类型、ip地址等,以及实时变化的事件监控数据。在app运行过程中,将不同部分的数据分开上报,对于第一部分数据,在app启动时上报一次即可,而对于第二部分数据,采用分组上报,将短时不变的数据与在该短时期间内获取的多个事件监控数据作为同一个分组数据进行上报,进而可大幅减少相同的重复数据的上报,从而降低对上报端设备的流量消耗,为用户节省流量开销成本,同时也可降低数据上传时对上报端设备的性能影响。附图说明图1是本发明实施例方案涉及的设备硬件运行环境的结构示意图;图2为本发明监控数据上传系统一实施例的功能模块示意图;图3为本发明监控数据上传方法一实施例的流程示意图;图4为本发明监控数据上传装置一实施例的功能模块示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。如图1所示,图1是本发明实施例方案涉及的设备硬件运行环境的结构示意图。本发明实施例监控数据上传设备可以是智能手机、平板电脑、便携计算机等具有显示功能的设备。如图1所示,该监控数据上传设备可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。本领域技术人员可以理解,图1中示出的监控数据上传设备的硬件结构并不构成对监控数据上传设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及监控数据上传程序。其中,操作系统是管理和控制监控数据上传设备与软件资源的程序,支持网络通信模块、用户接口模块、监控数据上传程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。在图1所示的监控数据上传设备硬件结构中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;监控数据上传设备通过处理器1001调用存储器1005中存储的监控数据上传程序,并执行以下步骤:在应用程序启动时,向后台服务器上报一次应用程序所在设备的设备信息并保存;在应用程序运行过程中,判断当前所述设备的易变数据是否发生变化;若是,则生成一新的关联码并与变化后的易变数据关联保存;在易变数据未发生变化期间,将该期间内所有待上报的事件监控数据与当前最新的关联码关联保存;在数据上报时,将保存的所述设备信息中的相关信息、与同一关联码关联保存的易变数据与事件监控数据,按照预设格式进行组装与压缩,得到监控数据包并上传后台服务器。进一步地,所述监控数据上传设备通过处理器1001调用存储器1005中存储的监控数据上传程序,以执行以下操作:在数据上报时,将与同一关联码关联保存的易变数据与事件监控数据划分为一组分组数据;至少将所述设备的设备码、所述设备信息上报的时间戳以及至少一组所述分组数据,按照预设的json格式进行组装,并将组装完成后的数据进行压缩。进一步地,所述监控数据上传设备通过处理器1001调用存储器1005中存储的监控数据上传程序,以执行以下操作:在应用程序启动时,判断当前应用程序所在设备的网络类型是否为移动通信网络;若当前所述设备的网络类型为移动通信网络,则向后台服务器上报一次所述设备的设备信息并本地保存该设备信息。参照图2,图2为本发明监控数据上传系统一实施例的功能模块示意图。本实施例中,监控数据上传系统包括:后台服务器10、监控数据上传设备20。其中,监控数据上传设备20中安装有应用程序app客户端,监控数据上传设备20通过该app客户端可实现与后台服务器10建立无线连接。本实施例中,监控数据上传设备20在上传监控数据的过程中,分别向后台服务器10上传自身的设备信息以及监控数据包,该监控数据包为压缩包,具体包括有监控数据上传设备20的易变数据以及采集的应用程序运行过程中的各种事件监控数据。本实施例中,监控数据上传设备20将设备不变的信息独立上报,app启动时只需要上报一次。设备信息中有设备id,之后上报的监控数据可以通过设备id和已经上传的设备信息关联。另外,监控数据上传设备20还上报一些容易变化的数据,比如网络类型、ip地址,这些数据在一段时间内是不变的,因此设计了一个关联码来对监控数据做分组,相同关联码的事件监控数据使用同一份易变数据。数据上传时,同一个分组的监控数据共享一份易变数据,进而可减少重复的易变数据上传,降低对上报端设备的流量消耗,为用户节省流量开销成本,同时也可降低数据上传时对上报端设备的性能影响。基于上述硬件结构,提出本发明监控数据上传方法的各个实施例。参照图3,图3为本发明监控数据上传方法一实施例的流程示意图。本发明具体用于对应用程序运行过程中的性能进行监控。本实施例中,所述监控数据上传方法包括以下步骤:步骤s10,在应用程序启动时,向后台服务器上报一次应用程序所在设备的设备信息并保存;通常,监控数据上报时,需要每条数据都是独立完整的,也即每条数据都包含了设备信息、网络状态、事件监控数据等内容,而其中,某些数据永久不会变化或者短时间内不会变化,也即每一条上传的监控数据都存在重复上传的数据,因此,通过减少该部分重复数据的上报,从而可降低对用户终端的流量消耗。因此,本实施例优选将上报后台的监控数据划分为两部分:可选的,第一部分为不变化的数据,也即设备信息,至少包括:(1)应用程序所在设备的设备码,比如imei(internationalmobileequipmentidentity,移动设备国际识别码),是手机的唯一识别号码。(2)应用程序标识码appid,用于区分相同app的不同型号或版本。比如英文版、中文版,v1版、v2版等。(3)设备信息上报的时间戳,也即设备信息上报后台服务器的时间点。可选的,第二部分为变化的数据,也即易变数据,至少包括:(1)网络类型,比如2g/3g/4g移动通信网络,或者wi-fi网络;(2)ip地址,具体为应用程序所在设备的ip地址;(3)设备系统语言,具体为应用程序所在设备的操作系统所使用的语言,比如中文、英文等;(4)设备系统时区,具体为应用程序所在设备的操作系统所设定的时区,比如北京时间gtm+08。上述四类易变数据都是在短时间内不会发生变化的,因而可以减少该类数据的上报频率,以此降低流量消耗。(5)事件监控数据,由于不同的监控目标,对应不同的事件监控数据,因此,各种事件监控数据在内容上各不相同。本实施例中,不同部分的数据分开上报,对于第一部分数据,在app启动时上报一次即可,而对于第二部分数据,采用分组上报,将短时不变的数据,比如网络类型、ip地址、系统语音、系统时区,与在该短时期间内获取的多个事件监控数据作为同一个分组数据进行上报,其上报时机不限,比如在任意易变数据发生变化时即可上报。本实施例中,在应用程序启动时,监控数据上传设备20向后台服务器10上报一次应用程序所在设备的设备信息,并将该上报的设备信息备份保存到本地。步骤s20,在应用程序运行过程中,判断当前所述设备的易变数据是否发生变化;在本步骤中,在应用程序运行过程中,监控数据上传设备20监测设备的易变数据是否发生变化,若本次的监测结果与上一次的监测结果不一样,则确定当前设备的易变数据发生了变化。其中,易变数据中包含有多种类型的数据,只要存在至少一种类型的数据发生变化,则说明该易变数据发生了变化。步骤s30,若是,则生成一新的关联码并与变化后的易变数据关联保存;当易变数据发生变化时,比如网络类型从3g网络转换为4g网络、ip地址发生了变化,则监控数据上传设备20重新生成一新的关联码。可选的,监控数据上传设备20可通过预置的关联码生成器生成一新的关联码,并在保存易变数据时,将该关联码与当前发生变化后的易变数据进行关联保存。本实施例中,关联码具体用于将易变数据与事件监控数据进行关联,进而便于进行数据分组,以减少易变数据的重复上传频率与次数。当生成新的关联码时,监控数据上传设备20将新生成的关联码与变化后的易变数据进行关联保存。需要说明的是,本实施例优选在应用程序启动时,各易变数据初始化为空值,而在各易变数据被赋值后,也即易变数据发生了变化时,将生成一关联码,并与最初的易变数据进行关联保存。步骤s40,在易变数据未发生变化期间,将该期间内所有待上报的事件监控数据与当前最新的关联码关联保存;本实施例中,在易变数据未发生变化期间,也即该期间内所有待上报的事件监控数据都对应相同的易变数据,因此,监控数据上传设备20通过将该期间内所有待上报的事件监控数据与当前最新的关联码关联保存,从而可实现易变数据与事件监控数据之间一对多的关联关系,进而可实现监控数据的分组上报。步骤s50,在数据上报时,将保存的所述设备信息中的相关信息、与同一关联码关联保存的易变数据与事件监控数据,按照预设格式进行组装与压缩,得到监控数据包并上传后台服务器。本实施例中,在数据上报时,监控数据上传设备20将步骤s10中保存的设备信息中的相关信息、与同一关联码关联保存的易变数据与事件监控数据,按照预设格式进行组装,同时,为进一步减少上传的数据量,因此,在组装完成后进一步进行压缩处理,得到监控数据压缩包,最后再将该监控数据压缩包并上传后台服务器10。本实施例对于组装的方式不限。本领域技术人员可以清楚知道的是,上传的多条事件监控数据都对应相同的一条易变数据,而多条易变数据又对应相同的一条设备信息,因此,优选将一条设备信息、一条易变数据与多条事件监控数据进行非完整的数据上报格式组装,进而减少重复数据的上传。可选的,由于监控数据上传设备20采用的是非完整的数据上报格式组装,因此,为便于后台服务器20得到完整的数据上报格式的监控数据,也即便于后台服务器20对接收到的数据进行完整的数据上报格式的二次组装,因此,所述设备信息中的相关信息优选包括:设备码以及设备信息上报的时间戳,后台服务器20基于该相关信息即可在二次组装前,确定非完整监控数据所对应的设备信息。需要说明的是,本实施例中,上述步骤s20、s40、s50之间的执行顺序不限,监控数据上传设备20优选采用并发方式执行上述各步骤。本实施例中,将上报后台的数据划分为两部分:第一部分为不变化的数据,包括设备信息;第二部分为变化的数据,包括:短时不变的数据,比如网络类型、ip地址等,以及实时变化的事件监控数据。在app运行过程中,将不同部分的数据分开上报,对于第一部分数据,在app启动时上报一次即可,而对于第二部分数据,采用分组上报,将短时不变的数据与在该短时期间内获取的多个事件监控数据作为同一个分组数据进行上报,进而可大幅减少相同的重复数据的上报,从而降低对上报端设备的流量消耗,为用户节省流量开销成本,同时也可降低数据上传时对上报端设备的性能影响。进一步地,在本发明监控数据上传方法另一实施例中,上述步骤s50包括:步骤s501,在数据上报时,将与同一关联码关联保存的易变数据与事件监控数据划分为一组分组数据;本发明设计了一个关联码来对事件监控数据做分组,相同关联码的事件监控数据使用同一份易变数据。数据上传时,同一个分组的事件监控数据共享一份易变数据,进而可减少重复的多份易变数据的上传,降低了上报端设备的流量消耗,为用户节省了流量开销成本,如表1所示的分组划分方式。表1分组名易变数据关联码事件监控数据group14g、192.168.1.10trackid1数据a、b、cgroup2wifi、192.168.1.1trackid2数据e、f、g步骤s502,至少将所述设备的设备码、所述设备信息上报的时间戳以及至少一组所述分组数据,按照预设的json格式进行组装,并将组装完成后的数据进行压缩,得到监控数据包;步骤s503,将监控数据包上传后台服务器。json(javascriptobjectnotation,js对象标记)是一种轻量级的数据交换格式,其采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言,易于机器解析以及二次组装以生成新格式数据。本实施例中,监控数据上传设备20至少将所述设备的设备码、所述设备信息上报的时间戳以及至少一组所述分组数据,按照预设的json格式进行非完整的数据上报格式组装,例如表2所示的一份组装内容。表2例如,监控数据上传设备20将上述表格2中的所有数据按照预设的json格式进行组装,进而得到json格式文本数据而非现有完整的数据上报格式。最后,监控数据上传设备20将一份或多份组装内容进行压缩,得到监控数据的压缩包并上传后台服务器10,以供解析后进行二次组装而最终得到与现有技术相同的完整的数据上报格式的监控数据。进一步地,在本发明监控数据上传方法另一实施例中,上述步骤s10进一步可以包括:步骤s101,在应用程序启动时,判断当前应用程序所在设备的网络类型是否为移动通信网络;步骤s102,若当前所述设备的网络类型为移动通信网络,则向后台服务器上报一次所述设备的设备信息并本地保存该设备信息并执行步骤s20-s50;步骤s103,若当前所述设备的网络类型为wifi网络,则采用现有的监控数据上报方式上传数据。本实施例中,基于节省流量,进而减少用户使用成本角度而言,当应用程序所在设备使用的网络为移动通信网络时,由于该网络为收费网络,因此,监控数据上传设备20选择采用本发明的数据折叠压缩上传方案上传监控数据,而若用程序所在设备使用的网络为wifi网络时,由于该网络为免费网络,因此,监控数据上传设备20即可选择采用本发明的数据折叠压缩上传方案上传监控数据,也可以选择采用现有的监控数据上报方式上传数据。参照图4,图4为本发明监控数据上传装置一实施例的功能模块示意图。本实施例中,监控数据上传装置应用于应用程序的性能监控,包括:第一上报模块10,用于在应用程序启动时,向后台服务器上报一次应用程序所在设备的设备信息并保存;判断模块20,用于在应用程序运行过程中,判断当前所述设备的易变数据是否发生变化;第一关联模块30,用于在当前所述设备的易变数据发生变化时,生成一新的关联码并与变化后的易变数据关联保存;第二关联模块40,用于在易变数据未发生变化期间,将该期间内所有待上报的事件监控数据与当前最新的关联码关联保存;第二上报模块50,用于在数据上报时,将保存的所述设备信息中的相关信息、与同一关联码关联保存的易变数据与事件监控数据,按照预设格式进行组装与压缩,得到监控数据包并上传后台服务器。本实施例中,监控数据上传装置将设备不变的信息独立上报,app启动时只需要上报一次。设备信息中有设备id,之后上报的监控数据可以通过设备id和已经上传的设备信息关联。另外,监控数据上传装置还上报一些容易变化的数据,比如网络类型、ip地址,这些数据在一段时间内是不变的,因此设计了一个关联码来对监控数据做分组,相同关联码的事件监控数据使用同一份易变数据。数据上传时,同一个分组的监控数据共享一份易变数据,进而可减少重复的易变数据上传,降低对上报端设备的流量消耗,为用户节省流量开销成本,同时也可降低数据上传时对上报端设备的性能影响。进一步可选的,在本发明监控数据上传系统一实施例中,后台服务器10在收到监控数据上传设备20上传的监控数据包后,执行以下处理步骤:步骤s1、解压所述监控数据包,得到易变数据、事件监控数据以及所述设备信息中的相关信息;步骤s2、基于所述相关信息,查询所述后台服务器所接收到的设备信息,以获得所述易变数据与所述事件监控数据对应的设备信息;步骤s3、将获得的设备信息、所述易变数据与所述事件监控数据进行组装,得到多条完整的监控数据并保存到所述后台服务器的数据库中。通常,用于进行应用程序性能分析的数据必须是完整的,而一条完整的监控数据包含有设备信息(比如设备码、时间戳)、网络信息(比如网络类型、ip地址)、事件监控数据。明显地,监控数据上传设备20上传的数据并不能直接用于进行性能分析,因而后台服务器10需要进一步对监控数据包中的数据进行二次组装,具体将上传的每份组装数据中的事件监控数据展开,并分别补上对应的设备信息、网络类型、ip地址等内容,从而形成一条完整的监控数据,最后再保存到后台服务器10的数据库中。监控数据上传设备20上传设备信息时,同时也会把设备信息保存起来。后台服务器10在收到设备信息后,会将设备信息保存到设备信息表中。每台设备(比如手机)都有一个不重复的设备码devid,同时还有一个上传的时间戳timestamp。监控数据上传设备20在组装数据并压缩上报时也有带上devid和timestamp。后台服务器10在收到压缩后的数据后,进行解压,然后通过devid和timestamp查找到设备表中对应的设备信息,然后展开group分组数据,并使用查询到的设备信息和解压得到的易变数据(比如网络类型、ip地址等),对事件监控数据分组内的每一条事件监控数据进行格式上的补充与完善,然后保存到数据库。本实施例中,后台服务器10接收到的数据并非是完整的监控数据,但是通过二次组装,得到了完整的监控数据,因而在满足了后台服务器10对应用程序进行性能分析的要求的同时,减少了监控数据上传设备20的数据上传流量,从而节省了用户使用应用的成本。本发明还提供一种应用于监控数据上传设备的计算机可读存储介质。计算机可读存储介质上存储有监控数据上传程序,该监控数据上传程序被处理器执行时实现上述监控数据上传方法任一实施例中的步骤。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,这些均属于本发明的保护之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1