DataReporter

数据上报框架
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 日志工具(Logging)
软件类型 开源软件
地区 国产
投 递 者 呼延鹏云
操作系统 Android
开源组织
适用人群 未知
 软件概览

DataReporter 是一款跨平台的数据上报框架,能够保证对业务性能无影响。同时保证上报数据不丢失,即使上报过程 App 出现了crash,数据也不会丢失,App下次重启会再次上报。

适用于 android 和 iOS 平台。目前得到App在使用。每天百万日活,没有出现数据丢失问题。 

相比其他 log 上报软件的设计,DataReporter 更适合的是用户数据上报。因为用户数据的上报是准实时需求,有网情况要尽可能快的报到服务端,同时要保证数据不丢失。而 log 上报框架对于数据实时性上报要求并不高,所以对于数据的准实时上报,使用DataReporter上报框架更适合一些。

特点:

  1. 跨平台,DataReporter是跨平台实现,适用于Android和iOS。
  2. 准实时上报,网络状态好,直接上报,网络状态不好在网络转好后上报,同时上报顺序不乱序。
  3. 不丢数据,采用mmap实现缓冲区。即使发生应用crash或者进程被杀,数据不会丢失,下次启动会再次上报。
  4. 低功耗,采用c++实现,整个上报共用一个线程,多实例多业务场景共用同一线程,当数据全部上报完成后,线程休眠。
  5. 高效率,可配置一次上报数据条数。增加上报效率。有效利用网络。减少链接次数。同时采用native方式实现,性能方面更优秀。

原理

数据通过调用接口进入DataReporter,先缓存到数据缓冲区,缓冲区实现是mmap,即使发生crash数据不丢失。然后启动线程进行上报。上报开始调用上报接口。成功后调用者通知上报完成,开始进行下一批数据上报。当上层调用过快,缓冲区数据达到指定阈值,数据开始下沉写入文件。写文件缓冲区同样采用mmap实现,防止数据丢失。上报优先级是先取文件数据,然后再取内存数据。保证数据顺序与调用顺序相同。

  • DataReporter 是一款跨平台的数据上报框架,能够保证对业务性能无影响。同时保证上报数据不丢失,即使上报过程 App 出现了crash,数据也不会丢失,App下次重启会再次上报。 适用于 android 和 iOS 平台。目前得到App在使用。每天百万日活,没有出现数据丢失问题。 相比其他 log 上报软件的设计,DataReporter 更适合的是用户数据上报。因为用户数据的上报是准实时

 相关资料
  •  说明 调用方法: $.f2e.util.statpid.loginStat(option) //登陆事件上报 $.f2e.util.statpid.clickStat((eid,eid_desc,ext) //产品事件上报 $.f2e.util.statpid.gameStat((ref,ref_desc,gameId,serverId,ext) //游戏事件上报 $.f2e.util.sta

  • 在本文档将演示如何使用 SOFATracer 集成 Zipkin 进行数据上报展示。 假设你已经基于 SOFABoot 构建了一个简单的 Spring Web 工程,那么可以通过如下步骤进行操作: 下面的示例中将分别演示在 SOFABoot/SpringBoot 工程中 以及 非 SOFABoot/SpringBoot 工程中如何使用。 依赖引入 添加 SOFATracer 依赖 工程中添加 SO

  •  珠海pas数据上报文档 版本 数据上报现在分为新上报与旧上报,旧上报一般用于大厅客户端上报。新上报用于浏览器与大厅客户端上报,根据实际情况选择。 参数说明 参数名 说明 pro product(必填)产品 gam game(可选,游戏相关数据必填)游戏 gse game_server(可选,游戏相关数据必填)区服 cha channel (必填)安装渠道 cha_desc channel_de

  • 本章所列接口均需依赖手Q环境,测试工程无法正常返回值。 QQ轻游戏游戏中心日常运营中会需要获取与游戏强相关的游戏数据,用于生成战报、游戏周报、游戏推广页,游戏活动等。 此处需要注意的是与4.1 成绩上报与排行榜 的区别在于此数据转为运营服务,游戏本身排行榜依然使用 章节的 4.1 成绩上报与排行榜 例子: // 上报游戏运营数据 var gameTime = (new Date()).getTim

  • 我们的团队使用JUnit作为一个大型老项目的基础测试框架。我们最近迁移到Maven,并决定尝试一个名为Allure的JUnit新报告。我们从下面的示例中将依赖项和插件复制到pom.XML,但在target/folder中没有生成XML数据。Maven输出中不会发出警告或错误。有人知道怎么会这样吗?

  • 问题内容: 该服务器的行为类似于回显服务器。客户端向服务器发送10个数据包(间隔为1秒) 当客户端从服务器接收数据包时,有时数据包会丢失。 因此,客户端必须等待一秒钟,直到数据包到达。如果数据包未在1秒钟内到达,则客户端应继续发送其他数据包。 我将如何使用.setSoTimeout实现此目的? } 问题答案: setSoTimeout的Javadoc说: 将此选项设置为非零超时后,对此Datagr