CN107704365A - 一种移动端混合应用的监控数据上报方法及装置 - Google Patents
一种移动端混合应用的监控数据上报方法及装置 Download PDFInfo
- Publication number
- CN107704365A CN107704365A CN201710934452.0A CN201710934452A CN107704365A CN 107704365 A CN107704365 A CN 107704365A CN 201710934452 A CN201710934452 A CN 201710934452A CN 107704365 A CN107704365 A CN 107704365A
- Authority
- CN
- China
- Prior art keywords
- monitoring data
- queue
- report
- failure
- checkpoint
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种移动端混合应用的监控数据上报方法及装置,利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种移动端混合应用的监控数据上报方法及装置。
背景技术
目前,由于互联网技术的不断发展,越来越多的互联网产品应运而生,例如电脑、手机、平板电脑等等,极大的丰富了人们的生活。
而在这些互联网产品中,实际上装载了不同的操作***,例如安卓***、ios***、Linux***等等。不同的操作***具有各自不同的操作方式和监控机制。例如,收集用户在APP(应用程序,Application)中的访问记录、行为记录、页面故障等信息是APP服务商了解自己产品运行状况的必要手段。但是针对不同的操作***Android和iOS,服务商会各自开发一套监控上报机制,因为上报过程中间控制较多,两边监控上报的行为无法完全统一。这样的话,对于服务商来说,针对不同的***需要开发不同的监控机制来进行监控,进而针对两个不同的操作***的监控行为无法完全统一,给服务商带来了极大的不便。
发明内容
本发明了提供了一种移动端混合应用的监控数据上报方法及装置,以解决由于不同操作***带来的监控行为无法完全统一的技术问题。
为解决上述技术问题,本发明提供了一种移动端混合应用的监控数据上报方法,所述方法包括:
利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;
确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;
若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;
若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。
优选的,所述SDK接口中设置有多个上报接口,每个上报接口都有一个上报队列和一个失败队列,所述失败队列是存储对应的上报队列中发送失败的监控数据,并进行重试上报。
优选的,所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,具体包括:
从所述SDK接口中的多个上报接口中确定出第一上报接口;
利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据。
优选的,所述第一上报接口对应有一个第一上报队列和一个第一失败队列,所述第一上报队列中具有第一队列时钟,用于监控所述第一上报队列的运行时间,所述第一失败队列中具有第二队列时钟,用于监控所述第一失败队列的运行时间;
所述利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据之后,所述方法还包括:
基于所述第一上报队列中的所述第一队列时钟,判断所述第一上报队列是否到达第一检查点;
若到达所述第一检查点,进一步判断所述第一上报队列中累计的待上传监控数据集合的条数是否到达数目阈值;
若到达所述数目阈值,将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。
若未到达所述数目阈值,则判断本次上报时间距离前一次上报时间的第一时间段是否达到第一预设时间段阈值;
若达到所述第一预设时间段阈值,则将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。
优选的,所述判断所述第一上报队列是否到达第一检查点之后,所述方法还包括:若未到达所述第一检查点,则返回继续判断所述第一上报队列是否到达所述第一检查点;
所述判断本次上报时间距离前一次上报时间的第一时间段是否达到第一预设时间段阈值之后,所述方法还包括:若未到达所述第一预设时间段阈值,则返回继续判断所述第一上报队列是否到达所述第一检查点。
优选的,所述将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传之后,所述方法还包括:
判断所述数组是否上传成功;
若上传成功,则返回继续判断所述第一上报队列是否到达第一检查点;
若上传失败,则对所述数组中上传失败的待监控数据合并为重传监控数据集合,添加重试标记并配置重试次数,然后加入到所述第一失败队列中;
基于所述第一失败队列中的第二队列时钟,判断所述第一失败队列是否到达第二检查点;
若到达所述第二检查点,进一步判断本次上报时间距离前一次上报时间的第二时间段是否达到第二预设时间段阈值;
若达到所述第二预设时间段阈值,进一步判断所述重传监控数据集合的剩余重试次数是否为0;
若所述重传监控数据集合的剩余重试次数是不为0,则重新上传所述重传监控数据集合;
若所述重传监控数据集合的剩余重试次数是为0,则抛弃所述重传监控数据集合;
判断重新发送是否成功;
若重发失败,则所述重传监控数据集合的重发次数减少一次,然后返回继续判断所述第一失败队列是否到达所述第二检查点。
优选的,在所述基于所述失败队列中的第一队列时钟,判断所述第一失败队列是否到达第二检查点之后,所述方法还包括:若未达到所述第二检查点,则返回继续判断所述第一失败队列是否到达第二检查点;
所述判断本次上报时间距离前一次上报时间的第二时间段是否达到第二预设时间段阈值之后,所述方法还包括:若未达到所述第二预设时间段阈值,则返回继续判断所述第一失败队列是否到达第二检查点;
所述抛弃所述重传监控数据集合之后,所述方法还包括:返回继续判断所述第一失败队列是否到达第二检查点;
所述判断重新发送是否成功之后,所述方法还包括:若重发成功,则返回继续判断所述第一失败队列是否到达第二检查点。
本发明的另一方面,本发明公开了一种移动端混合应用的监控数据上报装置,包括:
接收模块,用于利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;
确定模块,用于确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;
上传模块,用于若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;
所述上传模块,还用于若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。
优选的,所述SDK接口中设置有多个上报接口,每个上报接口都有一个上报队列和一个失败队列,所述失败队列是存储对应的上报队列中发送失败的监控数据,并进行重试上报。
优选的,所述接收模块,具体包括:
确定子模块,用于从所述SDK接口中的多个上报接口中确定出第一上报接口;
接收子模块,用于利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据。
优选的,所述第一上报接口对应有一个第一上报队列和一个第一失败队列,所述第一上报队列中具有第一队列时钟,用于监控所述第一上报队列的运行时间,所述第一失败队列中具有第二队列时钟,用于监控所述第一失败队列的运行时间;
所述装置还包括:
第一判断模块,用于基于所述第一上报队列中的所述第一队列时钟,判断所述第一上报队列是否到达第一检查点;
第二判段模块,用于若到达所述第一检查点,进一步判断所述第一上报队列中累计的待上传监控数据集合的条数是否到达数目阈值;
所述上传模块,还用于若到达所述数目阈值,将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。
第三判断模块,用于若未到达所述数目阈值,则判断本次上报时间距离前一次上报时间的第一时间段是否达到第一预设时间段阈值;
所述上传模块,还用于若达到所述第一预设时间段阈值,则将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。
优选的,第一返回模块,用于若未到达所述第一检查点,则返回继续判断所述第一上报队列是否到达所述第一检查点;
第二返回模块,用于若未到达所述第一预设时间段阈值,则返回继续判断所述第一上报队列是否到达所述第一检查点。
优选的,所述装置还包括:
第四判断模块,用于判断所述数组是否上传成功;
第三返回模块,用于若上传成功,则返回继续判断所述第一上报队列是否到达第一检查点;
添加模块,用于若上传失败,则对所述数组中上传失败的待监控数据合并为重传监控数据集合,添加重试标记并配置重试次数,然后加入到所述第一失败队列中;
第五判断模块,用于基于所述第一失败队列中的第二队列时钟,判断所述第一失败队列是否到达第二检查点;
第六判断模块,用于若到达所述第二检查点,进一步判断本次上报时间距离前一次上报时间的第二时间段是否达到第二预设时间段阈值;
第七判断模块,用于若达到所述第二预设时间段阈值,进一步判断所述重传监控数据集合的剩余重试次数是否为0;
所述上传模块,还用于若所述重传监控数据集合的剩余重试次数是不为0,则重新上传所述重传监控数据集合;
抛弃模块,用于若所述重传监控数据集合的剩余重试次数是为0,则抛弃所述重传监控数据集合;
第八判断模块,用于判断重新发送是否成功;
第四返回模块,用于若重发失败,则所述重传监控数据集合的重发次数减少一次,然后返回继续判断所述第一失败队列是否到达所述第二检查点。
优选的,所述装置还包括:
第五返回模块,用于若未达到所述第二检查点,则返回继续判断所述第一失败队列是否到达第二检查点;
第六返回模块,用于若未达到所述第二预设时间段阈值,则返回继续判断所述第一失败队列是否到达第二检查点;
第七返回模块,用于返回继续判断所述第一失败队列是否到达第二检查点;
第八返回模块,用于若重发成功,则返回继续判断所述第一失败队列是否到达第二检查点。
本发明的另一个方面,公开了一种计算机可读存储介质,其上存储有计算机程序,其该程序被处理器执行时实现上述方法技术方案中的步骤。
本发明的另一个方面,公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法技术方案中的步骤。
通过本发明的一个或者多个技术方案,本发明具有以下有益效果或者优点:
本发明公开了一种移动端混合应用的监控数据上报方法及装置,采用相同的上报机制来监控两个不同的操作***的运行数据,利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;然后确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。也就是说,不管是安卓***的监控数据还是ios***的监控数据,两者上报的机制是一样的,不会因***不同而有差别。这样做的好处是,可以利用一套监控机制监控两个不同的操作***的运行,本发明的监控机制不会因为操作***的不同而不同,在上报流程变更时也只需改动一份代码,极大的方便了服务商。
附图说明
图1为本发明实施例中一种移动端混合应用的监控数据上报方法的具体实施过程图;
图2为本发明实施例中映射关系图;
图3为本发明实施例中一种移动端混合应用的监控数据上报方法的上报机制的具体过程图;
图4为本发明实施例中一种移动端混合应用的监控数据上报装置的模块示意图。
具体实施方式
为了使本申请所属技术领域中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。
本发明的问题,在于操作***的不同导致对操作***的监控行为无法完全统一,故而给开发者带来了极大的不便。
为了解决上述问题,本发明公开了一种移动端混合应用的监控数据上报方法。采用相同的上报机制来监控两个不同的操作***的运行数据,在具体的实施过程中,本发明设计的监控数据上报的基础,由于混合应用的交互主要由HTML5完成,故而本发明构建了一个全局统一的监控SDK(Software Development Kit,即软件开发工具包)接口,将复杂的监控数据处理流程封装起来并暴露简单的函数接口给开发者,可提升开发效率、增加代码可维护性。
而SDK接口植入不同的操作***(安卓***、ios***),故而可利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;然后确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。也就是说,不管是安卓***的监控数据还是ios***的监控数据,两者上报的机制是一样的,不会因***不同而有差别。这样做的好处是,利用一套监控机制监控两个不同的操作***的运行,本发明的监控机制不会因为操作***的不同而不同,在上报流程变更时也只需改动一份代码,极大的方便了服务商。
下面请参看具体的介绍。
实施例一:
参看图1,在本发明实施例中,介绍了一种移动端混合应用的监控数据上报方法的具体实施过程中,如下所示:
步骤11,利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据。
所述目标操作***为安卓***或者ios***。
混合应用,是一种将HTML5应用程序嵌入至原生容器的技术,具备跨平台、开发成本低的优点,性能优于纯HTML5应用但劣于原生应用。在开发混合应用的交互时,主要使用HTML5技术进行开发。HTML5是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改。
SDK(Software Development Kit),SDK往往由开发框架提供,暴露出一些接口供业务人员调用。
为了解决上报过程中间控制较多,不同的操作***的监控行为无法完全统一的问题,本发明实施例引入了hybrid接口,监控SDK由hybrid接口中的JS完成,使得两个不同的的监控逻辑流程一致,在监控流程变更时也只需改动一份代码即可。具体来说,在iOS***和安卓***的APP中都提供了一种能够展示web页面的组件,虽然两者的组件不同,但是各自的组件中均可运行JavaScript代码。在iOS***和安卓***启动该组件时,注入同一份JavaScript代码即可运行出同样的逻辑结果。
进一步的,之前在js中上报点位需要业务开发人员拼凑上报字段,现在使用SDK接口封装了这一处的函数调用,开发方便,并且能统一管控调用行为,根据配置一次性关闭或开启打点SDK接口。
在具体的实施过程中,用来监控目标操作***的监控点有多个。在混合应用的运行过程中,开发人员根据监控需求,将调用监控SDK接口的代码布到所需监控数据的地方。一旦该接口被调用,SDK接口将传入的监控数据***SDK内部的队列中,等待时机发送网络请求,将监控数据发送给服务器。
故而,本发明的监控点实际上设置有多个,布置在目标操作***需要监控的地方,另外,SDK接口中也设置有多个上传接口。而监控点和上传接口具有映射关系。假设监控点有:监控点1、监控点2、监控点3、监控点4。上传接口有:上传接口1、上传接口2、上传接口3,两者的映射关系请参看图2。
所述SDK接口中设置有多个上报接口,每个上报接口都有一个上报队列和一个失败队列,所述失败队列是存储对应的上报队列中发送失败的监控数据,并进行重试上报。
故而,在利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据的具体实施过程中,从所述SDK接口中的多个上报接口中确定出第一上报接口。然后利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据。
在确定第一上报接口的过程中,每个监控点都有各自的标识,标识是数字、符号、特征参数等等,是用来区别其他监控点。如图2所示,各监控点可用数字进行区分。
而在监控点需要进行上传监控数据时,首先确定出各监控点的标识。
然后基于监控点和上报接口的映射关系、各监控点的标识,确定出各监控点对应的上传接口。举例来说,第一监控点为监控点1,第一上传接口为上传接口1,在映射关系中,监控点1对应了上传接口1,故而若监控点1需要上传监控数据时,则利用监控点1的标识和基于图2中的映射关系确定出上传接口1。
当然,本发明只是利用了第一监控点和第一上传接口进行举例,其他的监控点和对应的上传接口的交互和上传数据的过程类似,故而不再赘述。而不同的监控点在上传数据时,确定出对应的上传接口利用上传机制进行上传即可。
由于目标操作***是安卓***,也是ios***,故而监控点得到的监控数据可能是监控安卓***得到的监控数据,也可能是监控ios得到的监控数据。进而在得到监控数据之后,则会执行下面的步骤。
步骤12,确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据。
步骤13,若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报。
步骤14,若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。
在具体的实施过程中,下面介绍SDK接口中的上报机制的具体实施过程。
每个监控点将监控数据上报到一个服务端接口(SDK接口)中,为了缓解服务端的压力,一个SDK接口中设置了多个上报接口。本方案中,将上报接口和对应的监控点的标识写入配置文件。由于每个上报接口都有一个上报队列和失败队列。故而,混合应用的容器启动后,会基于配置文件,为每个上报接口初始化上报队列及该队列相对应的失败队列。
具体的,配置文件的格式具体为表1:
表1
配置文件 | 监控点 | 上报接口 | 监控内容 |
故而,在SDK接口接收监控数据时,实际上是先接收到该配置文件,然后根据配置文件初始化上报接口,得到对应的上报队列,然后将具体的监控数据存储到上报队列中。
承接上述描述,在第一监控点需要上报监控数据时,则从所述SDK接口中的多个上报接口中确定出第一上报接口;利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据。
进一步的,所述第一上报接口对应有一个第一上报队列和一个第一失败队列,所述第一上报队列中具有第一队列时钟,用于监控所述第一上报队列的运行时间,所述第一失败队列中具有第二队列时钟,用于监控所述第一失败队列的运行时间。
在具体的实施过程中,第一上报接口的上报机制参看图3:
步骤1,读取配置文件,初始化第一上报接口,进而得到第一上传接口的第一上报队列和第一失败队列,并且,会利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据。而第一上报队列除了存储该条待上传监控数据之外,还有很多条其他的待上传监控数据,这些待上传监控数据一并统称为待上传监控数据集合。
步骤2,启动第一队列时钟。
步骤3,基于所述第一上报队列中的所述第一队列时钟,判断所述第一上报队列是否到达第一检查点。在具体的实施过程中,会获得所述第一上报队列中的第一队列时钟的时钟周期;然后基于所述第一队列时钟的时钟周期,判断所述第一上报队列是否到达第一检查点。具体来说,第一上传队列和第一失败队列都会内置一个时钟,根据配置的时钟周期,定期检查各队列状态,例如每10秒钟检查一次第一上传队列。通过对时钟周期的控制,动态的控制第一上传队列的上报行为。例如,当暂停时钟时,第一上传队列的上报行为会被暂停;当增加时钟周期时,降低第一上传队列的上报频率。
若到达所述第一检查点,则进入步骤4。
若未到达所述第一检查点,则返回步骤3,继续判断所述第一上报队列是否到达所述第一检查点。
步骤4,判断所述第一上报队列中累计的待上传监控数据集合的条数是否到达数目阈值。
若到达所述数目阈值,则进入步骤5。
步骤5,将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。数组只是待上传监控数据集合合并之后的总称,并不代表任何的含义。在具体的实施过程中,检查距离上次上报的时间差,如果该值大于配置的值,则进入步骤7,否则进入步骤3。综合步骤4和步骤5,当队列中的条数满足要求或者队列等待时间足够时,就触发上报行为,这么做的原因是在尽可能的不丢失监控数据的情况下,尽可能少的向服务端发送请求,以避免对服务端接口造成压力。而每条监控数据是一个JSON对象,故而在上传时需要将其合并为数组后发送至服务器。
若未到达所述数目阈值,则进入步骤6。
步骤6,判断本次上报时间距离前一次上报时间的第一时间段是否达到第一预设时间段阈值。
若达到所述第一预设时间段阈值,则进入步骤5。
若未到达所述第一预设时间段阈值,则返回步骤3,继续判断所述第一上报队列是否到达所述第一检查点。
步骤7,将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传之后,判断所述数组是否上传成功。
若上传成功,则返回步骤3,继续判断所述第一上报队列是否到达第一检查点。进行下一次的上传。
若上传失败,则进入步骤8。
步骤8,对所述数组中上传失败的待监控数据合并为重传监控数据集合,添加重试标记并配置重试次数,然后加入到所述第一失败队列中。也就是说,将发送失败的监控数据整体包裹到一个JSON对象中,并新增一个重试次数的字段,重试次数的值在初始化队列时配置。
步骤9,基于所述第一失败队列中的第二队列时钟,判断所述第一失败队列是否到达第二检查点。
若未达到所述第二检查点,则返回步骤9,继续判断所述第一失败队列是否到达第二检查点。
若到达所述第二检查点,进入步骤10。
步骤10,判断本次上报时间距离前一次上报时间的第二时间段是否达到第二预设时间段阈值。
若未达到所述第二预设时间段阈值,则返回步骤9,继续判断所述第一失败队列是否到达第二检查点。
若达到所述第二预设时间段阈值,进入步骤11。
步骤11,判断所述重传监控数据集合的剩余重试次数是否为0。检查重传监控数据集合的剩余重试次数标记的值,如果该值等于0,则表明SDK向服务器重传该重传监控数据集合的次数达到阈值,则抛弃该数据或存入本地数据库中。如果该值大于0,则将第一失败队列中的重传监控数据集合发送至服务端。
若所述重传监控数据集合的剩余重试次数是不为0,则进入步骤12。
若所述重传监控数据集合的剩余重试次数是为0,则进入步骤13。
步骤12,重新上传所述重传监控数据集合。
步骤13,抛弃所述重传监控数据集合。所述抛弃所述重传监控数据集合之后,返回步骤9,继续判断所述第一失败队列是否到达第二检查点。
重新上传所述重传监控数据集合之后,进入步骤14。
步骤14,判断重新发送是否成功。
若重发失败,进入步骤15。
步骤15,所述重传监控数据集合的重发次数减少一次,然后返回步骤9,继续判断所述第一失败队列是否到达所述第二检查点。
若重发成功,则返回步骤9,继续判断所述第一失败队列是否到达第二检查点。用来传输下一次发送失败的监控数据集合。
实施例二:
基于同一发明构思,参看图4,本发明还公开了一种移动端混合应用的监控数据上报装置,包括:
接收模块41,用于利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;
确定模块42,用于确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;
上传模块43,用于若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;
所述上传模块44,还用于若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。
优选的,所述SDK接口中设置有多个上报接口,每个上报接口都有一个上报队列和一个失败队列,所述失败队列是存储对应的上报队列中发送失败的监控数据,并进行重试上报。
优选的,所述接收模块41,具体包括:
确定子模块,用于从所述SDK接口中的多个上报接口中确定出第一上报接口;
接收子模块,用于利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据。
优选的,所述第一上报接口对应有一个第一上报队列和一个第一失败队列,所述第一上报队列中具有第一队列时钟,用于监控所述第一上报队列的运行时间,所述第一失败队列中具有第二队列时钟,用于监控所述第一失败队列的运行时间;
所述装置还包括:
第一判断模块,用于基于所述第一上报队列中的所述第一队列时钟,判断所述第一上报队列是否到达第一检查点;
第二判段模块,用于若到达所述第一检查点,进一步判断所述第一上报队列中累计的待上传监控数据集合的条数是否到达数目阈值;
所述上传模块,还用于若到达所述数目阈值,将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。
第三判断模块,用于若未到达所述数目阈值,则判断本次上报时间距离前一次上报时间的第一时间段是否达到第一预设时间段阈值;
所述上传模块43,还用于若达到所述第一预设时间段阈值,则将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。
优选的,第一返回模块,用于若未到达所述第一检查点,则返回继续判断所述第一上报队列是否到达所述第一检查点;
第二返回模块,用于若未到达所述第一预设时间段阈值,则返回继续判断所述第一上报队列是否到达所述第一检查点。
优选的,所述装置还包括:
第四判断模块,用于判断所述数组是否上传成功;
第三返回模块,用于若上传成功,则返回继续判断所述第一上报队列是否到达第一检查点;
添加模块,用于若上传失败,则对所述数组中上传失败的待监控数据合并为重传监控数据集合,添加重试标记并配置重试次数,然后加入到所述第一失败队列中;
第五判断模块,用于基于所述第一失败队列中的第二队列时钟,判断所述第一失败队列是否到达第二检查点;
第六判断模块,用于若到达所述第二检查点,进一步判断本次上报时间距离前一次上报时间的第二时间段是否达到第二预设时间段阈值;
第七判断模块,用于若达到所述第二预设时间段阈值,进一步判断所述重传监控数据集合的剩余重试次数是否为0;
所述上传模块43,还用于若所述重传监控数据集合的剩余重试次数是不为0,则重新上传所述重传监控数据集合;
抛弃模块,用于若所述重传监控数据集合的剩余重试次数是为0,则抛弃所述重传监控数据集合;
第八判断模块,用于判断重新发送是否成功;
第四返回模块,用于若重发失败,则所述重传监控数据集合的重发次数减少一次,然后返回继续判断所述第一失败队列是否到达所述第二检查点。
优选的,所述装置还包括:
第五返回模块,用于若未达到所述第二检查点,则返回继续判断所述第一失败队列是否到达第二检查点;
第六返回模块,用于若未达到所述第二预设时间段阈值,则返回继续判断所述第一失败队列是否到达第二检查点;
第七返回模块,用于返回继续判断所述第一失败队列是否到达第二检查点;
第八返回模块,用于若重发成功,则返回继续判断所述第一失败队列是否到达第二检查点。
基于与前述实施例中同样的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中同样的发明构思,本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文任一所述方法的步骤。
通过本发明的一个或者多个实施例,本发明具有以下有益效果或者优点:
本发明公开了一种移动端混合应用的监控数据上报方法及装置,采用相同的上报机制来监控两个不同的操作***的运行数据,利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;然后确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。也就是说,不管是安卓***的监控数据还是ios***的监控数据,两者上报的机制是一样的,不会因***不同而有差别。这样做的好处是,利用一套监控机制监控两个不同的操作***的运行,本发明的监控机制不会因为操作***的不同而不同,在上报流程变更时也只需改动一份代码,极大的方便了服务商。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种移动端混合应用的监控数据上报方法,其特征在于,所述方法包括:
利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;
确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;
若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;
若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。
2.如权利要求1所述的方法,其特征在于,所述SDK接口中设置有多个上报接口,每个上报接口都有一个上报队列和一个失败队列,所述失败队列是存储对应的上报队列中发送失败的监控数据,并进行重试上报。
3.如权利要求2所述的方法,其特征在于,所述利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,具体包括:
从所述SDK接口中的多个上报接口中确定出第一上报接口;
利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据。
4.如权利要求3所述的方法,其特征在于,所述第一上报接口对应有一个第一上报队列和一个第一失败队列,所述第一上报队列中具有第一队列时钟,用于监控所述第一上报队列的运行时间,所述第一失败队列中具有第二队列时钟,用于监控所述第一失败队列的运行时间;
所述利用所述第一上报接口接收对应的第一监控点的监控数据,并将所述第一监控点的监控数据放入所述第一上报接口对应的第一上报队列中成为一条待上传监控数据之后,所述方法还包括:
基于所述第一上报队列中的所述第一队列时钟,判断所述第一上报队列是否到达第一检查点;
若到达所述第一检查点,进一步判断所述第一上报队列中累计的待上传监控数据集合的条数是否到达数目阈值;
若到达所述数目阈值,将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传;
若未到达所述数目阈值,则判断本次上报时间距离前一次上报时间的第一时间段是否达到第一预设时间段阈值;
若达到所述第一预设时间段阈值,则将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传。
5.如权利要求4所述的方法,其特征在于,
所述判断所述第一上报队列是否到达第一检查点之后,所述方法还包括:若未到达所述第一检查点,则返回继续判断所述第一上报队列是否到达所述第一检查点;
所述判断本次上报时间距离前一次上报时间的第一时间段是否达到第一预设时间段阈值之后,所述方法还包括:若未到达所述第一预设时间段阈值,则返回继续判断所述第一上报队列是否到达所述第一检查点。
6.如权利要求4所述的方法,其特征在于,所述将所述第一上报队列中累计的待上传监控数据集合合并为一数组并上传之后,所述方法还包括:
判断所述数组是否上传成功;
若上传成功,则返回继续判断所述第一上报队列是否到达第一检查点;
若上传失败,则对所述数组中上传失败的待监控数据合并为重传监控数据集合,添加重试标记并配置重试次数,然后加入到所述第一失败队列中;
基于所述第一失败队列中的第二队列时钟,判断所述第一失败队列是否到达第二检查点;
若到达所述第二检查点,进一步判断本次上报时间距离前一次上报时间的第二时间段是否达到第二预设时间段阈值;
若达到所述第二预设时间段阈值,进一步判断所述重传监控数据集合的剩余重试次数是否为0;
若所述重传监控数据集合的剩余重试次数是不为0,则重新上传所述重传监控数据集合;
若所述重传监控数据集合的剩余重试次数是为0,则抛弃所述重传监控数据集合;
判断重新发送是否成功;
若重发失败,则所述重传监控数据集合的重发次数减少一次,然后返回继续判断所述第一失败队列是否到达所述第二检查点。
7.如权利要求6所述的方法,其特征在于,
在所述基于所述失败队列中的第一队列时钟,判断所述第一失败队列是否到达第二检查点之后,所述方法还包括:若未达到所述第二检查点,则返回继续判断所述第一失败队列是否到达第二检查点;
所述判断本次上报时间距离前一次上报时间的第二时间段是否达到第二预设时间段阈值之后,所述方法还包括:若未达到所述第二预设时间段阈值,则返回继续判断所述第一失败队列是否到达第二检查点;
所述抛弃所述重传监控数据集合之后,所述方法还包括:返回继续判断所述第一失败队列是否到达第二检查点;
所述判断重新发送是否成功之后,所述方法还包括:若重发成功,则返回继续判断所述第一失败队列是否到达第二检查点。
8.一种移动端混合应用的监控数据上报装置,其特征在于,包括:
接收模块,用于利用植入在目标操作***所在终端中的SDK接口接收监控点发送监控所述目标操作***而获得的监控数据,所述目标操作***为安卓***或者ios***;
确定模块,用于确定所述监控数据是所述安卓操作***中的监控数据还是所述ios***中的监控数据;
上传模块,用于若是所述安卓操作***中的监控数据,利用所述SDK接口中的上报机制上报;
所述上传模块,还用于若是所述ios操作***中的监控数据,利用和上报所述安卓***中的监控数据相同的上报机制进行上报。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710934452.0A CN107704365B (zh) | 2017-10-10 | 2017-10-10 | 一种移动端混合应用的监控数据上报方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710934452.0A CN107704365B (zh) | 2017-10-10 | 2017-10-10 | 一种移动端混合应用的监控数据上报方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107704365A true CN107704365A (zh) | 2018-02-16 |
CN107704365B CN107704365B (zh) | 2021-02-02 |
Family
ID=61183960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710934452.0A Active CN107704365B (zh) | 2017-10-10 | 2017-10-10 | 一种移动端混合应用的监控数据上报方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704365B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874620A (zh) * | 2018-05-23 | 2018-11-23 | 北京五八信息技术有限公司 | 一种应用于app的事件监听方法、装置、设备及存储介质 |
CN110597709A (zh) * | 2019-08-13 | 2019-12-20 | 平安国际智慧城市科技股份有限公司 | 混合模式移动应用的交互调试方法、装置和计算机设备 |
CN111756599A (zh) * | 2020-06-23 | 2020-10-09 | 中国联合网络通信集团有限公司 | 一种业务监控方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130017337A (ko) * | 2011-08-10 | 2013-02-20 | 케이티하이텔 주식회사 | 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. |
KR20140091122A (ko) * | 2013-01-07 | 2014-07-21 | 에스케이플래닛 주식회사 | 단말기의 어플리케이션 관리 방법, 이를 위한 시스템 및 장치 |
CN105490841A (zh) * | 2015-11-26 | 2016-04-13 | 广州华多网络科技有限公司 | 一种终端日志抓取方法、装置及*** |
CN105656714A (zh) * | 2015-12-25 | 2016-06-08 | 北京京东尚科信息技术有限公司 | 移动设备的数据采集上报方法和装置 |
CN105975351A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种用户行为消息上报方法和装置 |
CN106817278A (zh) * | 2017-01-12 | 2017-06-09 | 烽火通信科技股份有限公司 | 一种用于智能终端设备的数据采集上报装置及方法 |
CN106897162A (zh) * | 2017-02-23 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 一种应用中组件的通信方式选择方法、通信***和移动终端 |
CN106951233A (zh) * | 2017-03-02 | 2017-07-14 | 广州天高软件科技有限公司 | 混合模式智能手机应用开发框架 |
CN107193565A (zh) * | 2017-05-22 | 2017-09-22 | 北京思序软件有限公司 | 跨移动端开发原生app的方法 |
-
2017
- 2017-10-10 CN CN201710934452.0A patent/CN107704365B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130017337A (ko) * | 2011-08-10 | 2013-02-20 | 케이티하이텔 주식회사 | 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. |
KR20140091122A (ko) * | 2013-01-07 | 2014-07-21 | 에스케이플래닛 주식회사 | 단말기의 어플리케이션 관리 방법, 이를 위한 시스템 및 장치 |
CN105490841A (zh) * | 2015-11-26 | 2016-04-13 | 广州华多网络科技有限公司 | 一种终端日志抓取方法、装置及*** |
CN105656714A (zh) * | 2015-12-25 | 2016-06-08 | 北京京东尚科信息技术有限公司 | 移动设备的数据采集上报方法和装置 |
CN105975351A (zh) * | 2016-04-25 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种用户行为消息上报方法和装置 |
CN106817278A (zh) * | 2017-01-12 | 2017-06-09 | 烽火通信科技股份有限公司 | 一种用于智能终端设备的数据采集上报装置及方法 |
CN106897162A (zh) * | 2017-02-23 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 一种应用中组件的通信方式选择方法、通信***和移动终端 |
CN106951233A (zh) * | 2017-03-02 | 2017-07-14 | 广州天高软件科技有限公司 | 混合模式智能手机应用开发框架 |
CN107193565A (zh) * | 2017-05-22 | 2017-09-22 | 北京思序软件有限公司 | 跨移动端开发原生app的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874620A (zh) * | 2018-05-23 | 2018-11-23 | 北京五八信息技术有限公司 | 一种应用于app的事件监听方法、装置、设备及存储介质 |
CN110597709A (zh) * | 2019-08-13 | 2019-12-20 | 平安国际智慧城市科技股份有限公司 | 混合模式移动应用的交互调试方法、装置和计算机设备 |
CN110597709B (zh) * | 2019-08-13 | 2022-11-01 | 深圳赛安特技术服务有限公司 | 混合模式移动应用的交互调试方法、装置和计算机设备 |
CN111756599A (zh) * | 2020-06-23 | 2020-10-09 | 中国联合网络通信集团有限公司 | 一种业务监控方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107704365B (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704365A (zh) | 一种移动端混合应用的监控数据上报方法及装置 | |
CN104731912B (zh) | 一种消息中间件mq的消息传输方法和装置 | |
US7886189B2 (en) | Mobile terminal apparatus and diagnosis method for mobile terminal apparatus | |
CN108572919A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN104978529A (zh) | 网页前端的异常处理方法、异常处理***及异常处理服务器 | |
GB2418755A (en) | Error handling using a structured state tear down | |
CN104731566B (zh) | 集成开发环境测试装置、方法及*** | |
CN107483245A (zh) | 一种基于karaf_agent的主动采集实现装置 | |
US9104565B2 (en) | Fault tracing system and method for remote maintenance | |
CN108470004A (zh) | 测试脚本生成方法、测试方法、装置、设备及存储介质 | |
CN111737431B (zh) | 设备异常的处理方法及装置、存储介质、电子装置 | |
CN103902446A (zh) | 一种网络服务器自动化测试的方法和装置 | |
AlGhamdi et al. | Towards reducing the time needed for load testing | |
CN108039956A (zh) | 应用监控方法、***和计算机可读存储介质 | |
CN106502944A (zh) | 计算机、pcie设备以及pcie设备的心跳检测方法 | |
CN102193822B (zh) | 用于嵌套任务的结果的编组的方法和*** | |
CN107844486A (zh) | 一种用于客户端的分析网页问题的方法和*** | |
CN109710479A (zh) | 一种处理方法及第一设备、第二设备 | |
CN109165147A (zh) | 日志打印控制方法、装置、***、后端服务器及前端设备 | |
US7984335B2 (en) | Test amplification for datacenter applications via model checking | |
CN103312554B (zh) | 一种多服务器交互业务的测试方法及*** | |
CN108064054A (zh) | 一种lte***中的ftp文件传输监控方法及*** | |
CN109525443A (zh) | 分布式前置采集通讯链路的处理方法、装置和计算机设备 | |
CN109800100A (zh) | 一种防止ios项目崩溃的方法及终端 | |
Buga et al. | Towards modeling monitoring of smart traffic services in a large-scale distributed system |
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 |