CN111752803A - 埋点数据收集上报的方法、装置及介质 - Google Patents
埋点数据收集上报的方法、装置及介质 Download PDFInfo
- Publication number
- CN111752803A CN111752803A CN202010600328.2A CN202010600328A CN111752803A CN 111752803 A CN111752803 A CN 111752803A CN 202010600328 A CN202010600328 A CN 202010600328A CN 111752803 A CN111752803 A CN 111752803A
- Authority
- CN
- China
- Prior art keywords
- buried point
- point data
- queue
- data
- server
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000015654 memory Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 13
- 230000004048 modification Effects 0.000 abstract description 6
- 238000012986 modification Methods 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 17
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004393 prognosis Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
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)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种埋点数据收集上报的方法、装置及计算机可读存储介质,该方法包括:将来自应用的上层业务的埋点数据存储在本地;将存储在本地的所述埋点数据添加至队列,并在本地将已添加至队列的所述埋点数据标识为待发送状态;向对应的服务端发送队列中的所述埋点数据;如果所述埋点数据成功发送至所述服务端,将成功发送至服务端的所述埋点数据从本地删除;如果所述埋点数据未成功发送至所述服务端,将本地标识有待发送状态的所述埋点数据重新添加至所述队列。本发明在不改变上层业务代码和埋点统计、代码修改量少的前提下,疏导埋点数据在队列的堵塞,保证应用闪退上报过程中的埋点数据不丢失,提高了埋点数据收集上报的可靠性。
Description
技术领域
本发明属于计算机技术领域,更具体而言,涉及一种埋点数据收集上报的方法、装置及介质。
背景技术
为了更加精准的为用户提供服务,应用(APP)、网站等会通过埋点的方式收集大量的埋点数据,例如性能指标数据(页面加载时间、页面加载时长等)、用户操作数据(用户浏览、跳转、评论、分享等),并将收集的埋点数据上报给对应的服务端,通过对埋点数据分析得到的各项数据改进应用、网站等的性能。
HTTP的全称是超文本传输协议,是互联网上最广泛的一种网络协议。现有技术是采用HTTP请求的方式向服务端上报应用收集的埋点数据,通过HTTP网络协议建立应用、网站与操作***后台的接口以及操作***队列与服务端的网络连接,然后通过操作***的队列直接对收集的埋点数据进行并发。虽然在高并发、大访问量的前提下能够做到埋点数据实时上报,但是埋点数据容易丢失,埋点数据完整上报的可靠性低,造成埋点数据丢失的原因主要有以下两个方面:
(1)当埋点数据剧增时,超过队列处理能力,容易发生埋点数据丢失;
(2)当发生异常,如网路异常、***异常、路由异常等,或应用闪退,正在链路中传输未发送至服务端的埋点数据以及队列中的埋点数据会丢失。
发明内容
本发明的主要目的在于提供一种埋点数据收集上报的方法、装置及计算机可读存储介质,解决了埋点数据上报过程中数据丢失的问题,不仅提高埋点数据上报的可靠性,而且代码修改量小,对应用上层业务性能无影响。
根据本发明的第一方面,提供了一种埋点数据收集上报的方法,包括:
将来自应用的上层业务的埋点数据存储在本地;
将存储在本地的所述埋点数据添加至队列,并在本地将已添加至队列的所述埋点数据标识为待发送状态;向对应的服务端发送队列中的所述埋点数据;
如果所述埋点数据成功发送至所述服务端,将成功发送至服务端的所述埋点数据从本地删除;如果所述埋点数据未成功发送至所述服务端,将本地标识有待发送状态的所述埋点数据重新添加至所述队列。
通过将应用上层业务收集的埋点数据存储在本地,疏导埋点数据在队列的堵塞,避免埋点数据流失;并在将埋点数据添加至队列时,在本地将添加至队列中的埋点数据标识为待发送状态,与未加入队列中的埋点数据进行区别,这样即使发生应用闪退即异常,处于上报流程中的埋点数据,如队列中的埋点数据,即使未成功发送至服务端也不会丢失,只要对本地标识有待发送状态的埋点数据重新发送即可,而对于成功发送至服务端的埋点数据,会从本地删除,这样就避免了埋点数据的重复上报,有效地提高了埋点数据上报的可靠性。
本发明一个特定的实施例中,所述向对应的服务端发送队列中的所述埋点数据,包括:
通过HTTP通道向对应的服务端发送队列中的所述埋点数据;或者,
通过TCP通道向对应的服务端发送队列中的所述埋点数据。
本发明一个特定的实施例中,所述将存储在本地的所述埋点数据添加至队列,并在本地将已添加至队列的所述埋点数据标识为待发送状态;向对应的服务端发送队列中的所述埋点数据,包括:
构建TCP通道和单队列;
将存储在本地的所述应用的埋点数据加入所述单队列,并将加入单队列的所述埋点数据标识为待发送状态;
通过所述TCP通道建立所述单队列与应用对应服务端的连接;
通过所述TCP通道向所述服务端发送所述单队列中的所述埋点数据。
通过自建的单队列单条发送取代原有的利用操作***队列高并发,不仅避免了高并发影响APP性能,而且,由于自建了发送埋点数据的单队列和传输埋点数据的TCP通道,不需要操作***参与,就能直接将埋点数据发送至服务端,因此,单队列发送与TCP通道传输相结合后,简化掉与操作***的后台建立连接这一耗时过程,且TCP通道比HTTP的数据传输速度更快,所以在整体上提高了埋点埋点数据收集上报的实时性和可靠性。
本发明一个特定的实施例中,
所述通过所述TCP通道建立所述单队列与应用对应服务端的连接,还包括:
如果通过所述TCP通道建立所述单队列与应用对应服务端的连接失败;
利用HTTP建立单队列与服务端的网络连接,并通过HTTP通道向服务端发送单队列中的埋点数据。不仅能够提高埋点数据上报的可靠性,而且保证埋点数据上报的及时性。
本发明一个特定的实施例中,所述通过所述TCP通道建立所述单队列与应用对应服务端的连接,还包括:
如果通过所述TCP通道建立所述单队列与应用对应服务端的连接失败,每隔第二预设时间,通过所述TCP通道建立所述单队列与应用对应服务端的连接。在故障解除后,保证第一时间采用更优的方案上报埋点数据。
本发明另一个特定的实施例中,所述通过所述TCP通道向所述服务端发送所述单队列中的所述埋点数据之后,还包括:
如果所述埋点数据未成功发送至所述服务端,使用HTTP向所述服务端重新发送所述埋点数据。采用多通道进行埋点数据上报,不仅能够提高数据上报的可靠性,还可以尽量保证埋点数据上报的及时性。
本发明另一个特定的实施例中,
如果所述埋点数据未成功发送至所述服务端,将本地标识有待发送状态的所述埋点数据重新添加至所述队列,包括:
如果所述埋点数据未成功发送至所述服务端,在CPU为空闲状态时,遍历本地存储的埋点数据,将本地标识有待发送状态的所述埋点数据添加至队列。由于未成功发送至所述服务端、且标有待发送状态的埋点数据已经失去了实时性,选择CPU在空闲状态发送,不会对新的埋点数据实时性造成影响。
根据本发明的第二方面,提供了一种埋点数据收集上报的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的埋点数据收集上报的方法。
根据本发明的第三方面,提供了计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行第一方面所述的埋点数据收集上报的方法。
本发明上述技术方案中的一个技术方案至少具有如下优点或有益效果之一:通过将应用上层业务收集的埋点数据存储在本地,疏导埋点数据在队列的堵塞,避免埋点数据流失;并在将埋点数据添加至队列时,在本地将添加至队列中的埋点数据标识为待发送状态,与未加入队列中的埋点数据进行区别,这样即使发生应用闪退即异常,处于上报流程中的埋点数据,如队列中的埋点数据,即使未成功发送至服务端也不会丢失,只要对本地标识有待发送状态的埋点数据重新发送即可,而对于成功发送至服务端的埋点数据,会从本地删除,这样就避免了埋点数据的重复上报,有效地提高了埋点数据上报的可靠性。
另外,本实施例只需要从上层业务获取埋点数据,并不改变上层业务代码和埋点统计,代码修改量少,不影响上层业务性能。
附图说明
图1是本发明实施例提供的一种埋点数据收集上报的方法的流程图;
图2是本发明实施例中步骤S200的流程图;
图3是本发明实施例中步骤S230的流程图;
图4是本发明实施例中步骤S300的流程图;
图5是为本发明实施例通过TCP通道进行埋点数据收集上报的流程图;
图6是本发明实施例还提供的一种埋点数据收集上报的装置的结构框图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”以及“第二”的特征可以明示或者隐含地包括一个或者更多个特征。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,可以是固定连接或活动连接,也可以是可拆卸连接或不可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通信;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通、间接连通或两个元件的相互作用关系。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的不同方案。
参照图1所示,为本发明实施例提供的一种埋点数据收集上报的方法,应用于客户端或客户端的应用(APP)中,用于将APP通过埋点方式收集的埋点数据上报给APP的服务端。
步骤S100、从应用的上层业务中获取埋点数据,并将获取的埋点数据存储在本地(在本实施例中可以是客户端)。在埋点数据上报过程中,如果埋点数据量太大超出队列处理能力,会发生堵塞,造成埋点数据丢失。为了疏导队列的数据堵塞,避免发生因埋点数据量太大造成堵塞,优先保证埋点数据收集上报的可靠性,将应用上层业务实时收集的埋点数据先存入本地,再从本地加入队列,这样即使埋点数据量突然剧增,都会先存入本地,不会堆积在队列中,造成堵塞,导致数据丢失。
因为客户端数据存储速度较快,大约在0.0001毫秒,比埋点数据通过网络传输的过程耗时小几万倍,所以在将埋点数据通过网络传送至服务端的过程中,将埋点数据存储至本地对网络传输实时性的影响可以忽略。而且,本实施例没有修改应用的上层业务代码,只需从上层业务上获取埋点数据,代码修改量少,且不影响上层业务的性能。
步骤S200、将存储在本地的埋点数据添加至队列,并将已添加至队列、存储在本地的的埋点数据标识为待发送状态,如,待发送状态用1表示,在本地存储的、且已添加至队列的埋点数据上标识1,当然也可用其它符号表示待发送状态,在此不限定为1;然后向应用对应的服务端发送队列中的埋点数据。本实施例为了保证埋点数据收集上报的实时性,先存入本地的埋点数据先发送至队列中,避免在数据量不大时出现个别埋点数据上报延迟的情况。在将埋点数据加入队列,同时在本地对该埋点数据进行待发送状态标识,并没有删除,这样,即使在埋点数据发送过程中发生闪退,队列中以及处于发送流程中的埋点数据也不会流失。
步骤S300、判断埋点数据是否成功发送至服务端,如果埋点数据成功发送至服务端,从本地删除标识为待发送状态的该埋点数据,这样可以避免因存储空间不足对客户端上应用运行造成影响以及埋点数据重复发送。如果埋点数据未成功发送至服务端,将本地标识有待发送状态、且未成功发送至服务端的埋点数据重新添加至队列中,重新向服务端发送,直到发送成功,从本地删除标识为待发送状态的该埋点数据。此时,优先考虑可靠性,保证发送失败的埋点数据不丢失,所以在CPU为空闲状态时,才遍历本地存储的埋点数据,将本地标识有待发送状态的埋点数据添加至队列重新发送,避免对新收集的埋点数据的上报及时性造成影响。
在本实施例中,判断埋点数据是否成功发送至服务端,是通过在一个预设的时间内(根据不同用户要求设定)收到服务端返回的发送成功消息,如果收到发送成功消息,表示埋点数据成功发送至服务端,否则,表示埋点数据未成功发送至服务端。
在本实施例中,在CPU为空闲状态时,才遍历本地存储的埋点数据,将本地标识有待发送状态的埋点数据添加至队列重新发送,包括以下步骤:
每隔第一预设时间(如5秒、10秒、15秒等),判断CPU是否为空闲状态;
如果CPU是空闲状态,遍历本地埋点数据存储区域,将带有待发送状态的埋点数据加入队列,重新向服务端发送。
如果不是空闲状态,继续等待,并在第一预设时间预后,再判断CPU是否为空闲状态,开始下一次的CPU空闲状态判断步骤。在本实施例中,如果在将带有待发送状态的埋点数据添加至队列时,判定CPU不是空闲状态,停止将带有待发送状态的埋点数据加入队列,继续等待,直到CPU空闲状态时,继续将带有待发送状态的埋点数据加入队列,避免影响新收集埋点数据上报及时性。
本实施例通过将应用上层业务收集的埋点数据存储在本地,疏导埋点数据在队列的堵塞,避免埋点数据流失;并在将埋点数据添加至队列时,在本地将添加至队列中的埋点数据标识为待发送状态,与未加入队列中的埋点数据进行区别,这样即使发生应用闪退即异常,处于上报流程中的埋点数据,如队列中的埋点数据,即使未成功发送至服务端也不会丢失,只要对本地标识有待发送状态的埋点数据重新发送即可,而对于成功发送至服务端的埋点数据,会从本地删除,这样就避免了埋点数据的重复上报,有效地提高了埋点数据上报的可靠性。
在本发明实施例中,步骤S200的向对应的服务端发送队列中的所述埋点数据,包括:
通过HTTP通道向对应的服务端发送队列中的埋点数据;或者,
通过TCP通道向对应的服务端发送队列中的埋点数据。
(一)在本发明实施例中,在通过HTTP通道向对应的服务端发送队列中的埋点数据时,步骤S200包括以下步骤:
向操作***发送HTTP请求;
通过HTTP网络协议建立本地与操作***后台的接口以及操作***的队列与服务端的网络连接;
将存储在本地的应用的埋点数据加入操作***的队列,并将加入队列的埋点数据标识为待发送状态;
通过HTTP通道向对应服务端并发操作***的队列中埋点数据。
(二)在本发明实施例中,在通过TCP通道向对应的服务端发送队列中的埋点数据时,如图2所示,步骤S200包括以下步骤:
步骤S210、构建全局(应用本实施例的客户端上)唯一的TCP(TransmissionControl Protocol,传输控制协议)通道和一个单队列(为步骤S200中的队列的一种),在构建过程中,不改变应用的上层业务代码,不对应用的上层业务性能有影响;在本发明的一实施例中,应用被打开,触发TCP通道和单队列构建程序,开始执行本步骤。
步骤S220、将本地存储的埋点数据加入单队列,并将加入单队列的埋点数据标识为待发送状态,采用单队列方式进行埋点数据发送,避免高并发影响APP性能。
步骤S230、通过TCP通道建立单队列与对应服务端的连接;在本实施例中可以在执行完S220后马上执行步骤S230,也可以是在接收到埋点数据上报请求后执行步骤S230,通过TCP建立连接后,在不断电或断网或客户端出现故障的情况下,通过TCP通道建立的连接不会断,不需要每次收到埋点数据上报请求都重新建立连接,速度比HTTP更快。
步骤S240、通过TCP通道将单队列中的埋点数据发送给服务端。本实施例不再使用操作***队列并发,而是使用自己创建的单队列进行发送,不仅避免高并发影响APP性能,而且由于与TCP通道结合,不需要反复同操作***的后台服务器建立连接,与高并发相比,采用单队列发送的实时性并没有降低,而TCP通道比HTTP的数据传输速度更快,因此埋点埋点数据收集上报的整体实时性比现有方案更好。
本发明实施例通过自建的单队列单条发送取代原有的利用操作***队列高并发,不仅避免了高并发影响APP性能,而且,由于自建了发送埋点数据的单队列和传输埋点数据的TCP通道,不需要操作***参与,就能直接将埋点数据发送至服务端,因此,单队列发送与TCP通道传输相结合后,简化掉与操作***的后台建立连接这一耗时过程,且TCP通道比HTTP的数据传输速度更快,所以在整体上提高了埋点埋点数据收集上报的实时性和可靠性。另外,本实施例只需要从上层业务获取埋点数据,并不改变上层业务代码和埋点统计,代码修改量少,不影响上层业务性能。
本实施例为了保证埋点数据能够及时上报,提高埋点上报的可靠性,在步骤S230中,如果通过TCP通道建立单队列与对应服务端的连接失败,通过HTTP建立单队列与服务端的网络连接,然后,通过HTTP通道向服务端发送单队列中的埋点数据。
为了能够尽早使用TCP通道上报埋点数据,如果通过TCP通道建立单队列与对应服务端的连接失败,每隔第二预设时间,都尝试通过TCP通道埋点数据建立单队列与对应服务端的连接,直到连接成功,通过TCP上报埋点数据。所以,如图3所示,步骤S230包括以下步骤:
步骤S231、通过TCP通道建立单队列与对应服务端的连接;
步骤S232、判断通过TCP通道建立单队列与对应服务端的连接是否成功,如果是执行步骤S240;否则,执行步骤S233;
步骤S233、开始进行计时,同时,发送HTTP请求,通过HTTP建立单队列与服务端的网络连接,并通过HTTP通道向服务端发送单队列中的埋点数据;
步骤S234、在计时时间达到第二预设时间时,执行步骤S231。
因为网络异常等原因,会造成通过TCP通道向服务端发送埋点数据失败;而在实际应用中,存在HTTP传输链路与TCP不同的情况,即使TCP通道因网络异常无法向服务端成功发送埋点数据,使用HTTP发送也可能会成功,所以,为了不影响埋点数据上报的及时性,在本发明的另一实施例中,采用多通道上报,如果通过TCP通道向服务端发送单队列中的埋点数据失败,埋点数据未成功发送至服务端,则使用HTTP向服务端重新发送该埋点数据,尽量保证埋点数据上报的及时性以及避免埋点数据丢失,提高埋点数据上报的及时和可靠。所以,本发明实施例的埋点数据未成功发送至服务端包括两种情况:
(1)通过TCP通道向服务端发送埋点数据,埋点数据未成功发送至服务端;该情况是只采用TCP通道单通道进行性埋点数据上报,埋点数据未成功发送至服务端后,不再尝试使用HTTP通道重新发送;
(2)通过HTTP通道向服务端发送埋点数据,埋点数据未成功发送至服务端;其中,包括:通过TCP通道建立单队列与应用对应服务端的连接失败后,通过HTTP通道向服务端发送埋点数据,埋点数据未成功发送至服务端;以及,通过TCP通道向服务端发送单队列中的埋点数据,埋点数据未成功发送至服务端,然后通过HTTP通道向服务端发送埋点数据,埋点数据仍然未成功发送至服务端;以及,通过HTTP通道向对应服务端并发操作***的队列中埋点数据,埋点数据未成功发送至服务端。
本发明实施例的埋点数据成功发送至服务端包括两种情况:
(1)通过TCP通道向服务端发送埋点数据,埋点数据成功发送至服务端;
(2)通过HTTP通道向服务端发送埋点数据,埋点数据成功发送至服务端。其中,包括:通过TCP通道建立单队列与应用对应服务端的连接失败后,通过HTTP通道向服务端发送埋点数据;以及,通过TCP通道向服务端发送单队列中的埋点数据,埋点数据未成功发送至服务端,通过HTTP通道向服务端发送埋点数据;以及,通过HTTP通道向对应服务端并发操作***的队列中埋点数据,埋点数据成功发送至服务端。
如图4所示,步骤S300包括以下步骤:
步骤S310、判断通过TCP通道向服务端发送单队列中的埋点数据,是否成功发送至服务端,如果成功发送至服务端,执行步骤S350;否则,执行步骤S320。
步骤S320、发送HTTP请求,通过HTTP协议与服务端建立网络连接,通过HTTP通道向服务端重新发送未成功发送至服务端的埋点数据,然后执行步骤S330。
步骤S330、判断埋点数据是否成功发送至服务端,如果成功发送至服务端,执行步骤S350;否则,执行步骤S340。
步骤S340、在CPU为空闲状态时,将本地存储中标识有待发送状态的埋点数据添加至单队列,重新向服务端发送该埋点数据,执行步骤S240。
步骤S350、从本地删除成功发送至服务端的埋点数据。
步骤S360、结束本条埋点数据的发送程序。
如图5所示,为本发明实施例通过TCP通道进行埋点数据收集上报的流程图,包括以下步骤:
步骤A1、从应用的上层业务获取埋点数据;其中,埋点数据是上层业务通过埋点方式收集的数据;
步骤A2、将从每个上层业务获取的埋点数据在本地进行存储;
步骤A3、将本地存储的埋点数据添加至单队列,并在本地将添加至单队列的埋点数据标识为待发送状态;
步骤A4、通过TCP通道建立单队列与应用对应服务端的连接,如果连接成功,执行步骤A5;否则,执行步骤A6;
步骤A5、通过TCP通道向服务端发送单队列中的埋点数据,如果成功发送至服务端,执行步骤A8;否则,执行步骤A6;
步骤A6、发送HTTP请求,通过HTTP协议与服务端建立网络连接,通过HTTP通道向服务端发送埋点数据,如果成功发送至服务端,执行步骤A8;否则,执行步骤A7;
步骤A7、在CPU为空闲状态时,将待发送状态的埋点数据添加至单队列,然后执行步骤A4;
步骤A8、从本地删除已发送至服务端的埋点数据,然后结束本条埋点数据的上报程序。
如图6示,本发明实施例还提供了一种埋点数据收集上报的装置,该装置安装在智能设备上或应用中。
具体地,该装置包括:一个或多个处理器200和存储器100,图5中以一个处理器200及存储器100为例。处理器200和存储器100可以通过总线或者其他方式连接,如以通过总线连接为例。
存储器100作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本发明实施例中的一种埋点数据收集上报的方法。处理器200通过运行存储在存储器100中的非暂态软件程序以及指令,从而实现上述本发明实施例中的一种埋点数据收集上报的方法。
存储器100可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储执行上述实施例中的一种埋点数据收集上报的方法所需的数据等。此外,存储器100可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例中的一种埋点数据收集上报的方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述实施例中的一种埋点数据收集上报的方法,例如,执行以上描述的图1中的方法步骤S100至步骤S300、图2中的方法步骤S210至步骤S240、图3中的方法步骤S231至步骤S234、图4中的方法步骤S310至步骤S360、图5中的方法步骤A1至步骤A8。
另外,本发明的一个实施例还提供了计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器执行上述实施例中的一种埋点数据收集上报的方法,例如,执行以上描述的图1中的方法步骤S100至步骤S300、图2中的方法步骤S210至步骤S240、图3中的方法步骤S231至步骤S234、图4中的方法步骤S310至步骤S360、图5中的方法步骤A1至步骤A8。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (10)
1.一种埋点数据收集上报的方法,其特征在于,包括:
将来自应用的上层业务的埋点数据存储在本地;
将存储在本地的所述埋点数据添加至队列,并在本地将已添加至队列的所述埋点数据标识为待发送状态;向对应的服务端发送队列中的所述埋点数据;
如果所述埋点数据成功发送至所述服务端,将成功发送至服务端的所述埋点数据从本地删除;如果所述埋点数据未成功发送至所述服务端,将本地标识有待发送状态的所述埋点数据重新添加至所述队列。
2.根据权利要求1所述的方法,其特征在于,所述向对应的服务端发送队列中的所述埋点数据,包括:
通过HTTP通道向对应的服务端发送队列中的所述埋点数据;或者,
通过TCP通道向对应的服务端发送队列中的所述埋点数据。
3.根据权利要求2所述的方法,其特征在于,所述将存储在本地的所述埋点数据添加至队列,并在本地将已添加至队列的所述埋点数据标识为待发送状态;向对应的服务端发送队列中的所述埋点数据,包括:
构建TCP通道和单队列;
将存储在本地的所述应用的埋点数据加入所述单队列,并将加入单队列的所述埋点数据标识为待发送状态;
通过所述TCP通道建立所述单队列与应用对应服务端的连接;
通过所述TCP通道向所述服务端发送所述单队列中的所述埋点数据。
4.根据权利要求3所述的方法,其特征在于,所述通过所述TCP通道建立所述单队列与应用对应服务端的连接,还包括:
如果通过所述TCP通道建立所述单队列与应用对应服务端的连接失败;
利用HTTP建立单队列与服务端的网络连接,并通过HTTP通道向服务端发送单队列中的埋点数据。
5.根据权利要求3所述的方法,其特征在于,所述通过所述TCP通道建立所述单队列与应用对应服务端的连接,还包括:
如果通过所述TCP通道建立所述单队列与应用对应服务端的连接失败,每隔第二预设时间,通过所述TCP通道建立所述单队列与应用对应服务端的连接。
6.根据权利要求3所述的方法,其特征在于,所述通过所述TCP通道向所述服务端发送所述单队列中的所述埋点数据之后,还包括:
如果所述埋点数据未成功发送至所述服务端,使用HTTP向所述服务端重新发送所述埋点数据。
7.根据权利要求1所述的方法,其特征在于,如果所述埋点数据未成功发送至所述服务端,将本地标识有待发送状态的所述埋点数据重新添加至所述队列,包括:
如果所述埋点数据未成功发送至所述服务端,在CPU为空闲状态时,遍历本地存储的埋点数据,将本地标识有待发送状态的所述埋点数据添加至队列。
8.根据权利要求2所述的方法,其特征在于,所述将存储在本地的所述埋点数据添加至队列,并在本地将已添加至队列的所述埋点数据标识为待发送状态;向对应的服务端发送队列中的所述埋点数据,包括:
向操作***发送HTTP请求;
通过HTTP网络协议建立本地与操作***后台的接口以及操作***的队列与服务端的网络连接;
将存储在本地的所述应用的埋点数据加入所述操作***的队列,并将加入队列的所述埋点数据标识为待发送状态;
通过HTTP通道将向对应服务端并发所述操作***的队列中埋点数据。
9.一种埋点数据收集上报的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8中任意一项所述的埋点数据收集上报的方法。
10.计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行权利要求1至8中任意一项所述的埋点数据收集上报的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600328.2A CN111752803A (zh) | 2020-06-28 | 2020-06-28 | 埋点数据收集上报的方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600328.2A CN111752803A (zh) | 2020-06-28 | 2020-06-28 | 埋点数据收集上报的方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752803A true CN111752803A (zh) | 2020-10-09 |
Family
ID=72677704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010600328.2A Pending CN111752803A (zh) | 2020-06-28 | 2020-06-28 | 埋点数据收集上报的方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752803A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328504A (zh) * | 2020-12-03 | 2021-02-05 | 广州品唯软件有限公司 | 埋点数据检验方法、装置、***、计算机设备和存储介质 |
CN112799925A (zh) * | 2021-01-25 | 2021-05-14 | 北京嘀嘀无限科技发展有限公司 | 数据采集方法、装置、电子设备和可读存储介质 |
CN115134352A (zh) * | 2022-06-27 | 2022-09-30 | 重庆长安汽车股份有限公司 | 一种埋点数据上传方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933326A (zh) * | 2016-06-08 | 2016-09-07 | 乐视控股(北京)有限公司 | 异地终端数据的上报方法及装置 |
US20180048724A1 (en) * | 2015-04-22 | 2018-02-15 | Alibaba Group Holding Limited | Data Collecting Method, System, Terminal, and Server |
CN108156006A (zh) * | 2016-12-05 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种埋点数据上报方法、装置及电子设备 |
CN109547234A (zh) * | 2018-10-18 | 2019-03-29 | 广州市百果园信息技术有限公司 | 一种数据处理、上报方法、装置、设备和存储介质 |
CN110716848A (zh) * | 2019-10-18 | 2020-01-21 | 广州华多网络科技有限公司 | 数据收集方法、装置、电子设备及存储介质 |
-
2020
- 2020-06-28 CN CN202010600328.2A patent/CN111752803A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180048724A1 (en) * | 2015-04-22 | 2018-02-15 | Alibaba Group Holding Limited | Data Collecting Method, System, Terminal, and Server |
CN105933326A (zh) * | 2016-06-08 | 2016-09-07 | 乐视控股(北京)有限公司 | 异地终端数据的上报方法及装置 |
CN108156006A (zh) * | 2016-12-05 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种埋点数据上报方法、装置及电子设备 |
CN109547234A (zh) * | 2018-10-18 | 2019-03-29 | 广州市百果园信息技术有限公司 | 一种数据处理、上报方法、装置、设备和存储介质 |
CN110716848A (zh) * | 2019-10-18 | 2020-01-21 | 广州华多网络科技有限公司 | 数据收集方法、装置、电子设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328504A (zh) * | 2020-12-03 | 2021-02-05 | 广州品唯软件有限公司 | 埋点数据检验方法、装置、***、计算机设备和存储介质 |
CN112799925A (zh) * | 2021-01-25 | 2021-05-14 | 北京嘀嘀无限科技发展有限公司 | 数据采集方法、装置、电子设备和可读存储介质 |
CN115134352A (zh) * | 2022-06-27 | 2022-09-30 | 重庆长安汽车股份有限公司 | 一种埋点数据上传方法、装置、设备及介质 |
CN115134352B (zh) * | 2022-06-27 | 2023-06-20 | 重庆长安汽车股份有限公司 | 一种埋点数据上传方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111752803A (zh) | 埋点数据收集上报的方法、装置及介质 | |
CN109451032B (zh) | 一种消息传递*** | |
CN110460412B (zh) | 用于数据传输的方法和rdma网卡 | |
CN109547524B (zh) | 基于物联网的用户行为存储方法、装置、设备及存储介质 | |
CN107959555B (zh) | 一种基于lwaap的数据传输方法、装置及存储介质 | |
CN109525376B (zh) | 快速重传方法、装置及终端设备 | |
CN110661673B (zh) | 一种心跳检测的方法及装置 | |
CN111711680A (zh) | 基于udp协议的文件断点续传方法及装置 | |
WO2019062074A1 (zh) | 一种车载设备数据传输方法和装置 | |
CN111181698B (zh) | 数据处理方法、装置、设备及介质 | |
CN113986501A (zh) | 实时数据库api无中断调用方法、***、存储介质及服务器 | |
CN111818582B (zh) | 数据传输方法、装置及电子设备 | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN113347681A (zh) | 数据传输方法、装置、存储介质及电子装置 | |
CN115412609B (zh) | 一种业务处理方法、装置、服务器及存储介质 | |
CN111385069A (zh) | 数据传输方法及计算机设备 | |
CN114422573B (zh) | 报文发送方法及装置、存储介质及电子装置 | |
CN111782467A (zh) | 埋点数据收集上报的方法、装置及介质 | |
CN109617957A (zh) | 一种基于cdn网络的文件上传方法、装置、服务器 | |
CN114157674A (zh) | 无线通信方法、装置、***、服务器以及介质 | |
EP2951708B1 (en) | Reporting errors on serial interfaces to application layers for flexible error handling approach selection | |
CN115052264B (zh) | 基于多路径筛选的铁路客站无线网络通信方法及装置 | |
CN115914152B (zh) | 回执信息推送方法、***及存储介质 | |
CN112118273B (zh) | 一种数据交互方法、***及第一客户端 | |
CN118353811A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201009 |
|
RJ01 | Rejection of invention patent application after publication |