开发者通过华为分析服务下载所需的事件数据,这些数据可以导入到开发者自有的分析系统中,用于构建自定义报告或生成受众群体的个性化分析等,从而帮助制定切实有效的营销活动。数据导出支持按照用户属性和导出事件作为过滤条件,同时展示“预计可导出事件数”。开发者选择不同的时间段和过滤条件,预估事件数就会随之改变。

问题描述

一位开发者向我们提出自己在创建数据任务后,发现错误获取了所选日期前一天的数据。例如下图所示,导出的2021年12月18日的数据报表中eventtime包含了12月17日发生的事件:

问题定位

1. 确定数据导出的时间基线规则。

接到问题后,我们首先确定了开发者在创建数据导出任务时,时间基线规则是基于哪个时间判断的。然后通过云测数据导出规则发现,开发者所选的筛选日期是根据分析服务云测服务器的时间判断的,即server time。

2. 分析跨天上报的数据量占比及特点。

以某应用12月9日的数据为例,当天servertime统计总量数据15xxxxx,eventtime数据量占比97.3%;包含前一天数据量占比2.65%。这些数据无明显特点,云测数据传递过程中的eventtime均为透传不会做另外的计算。

3. 排查端测上报并复现。

Event time记录的是事件触发的时间,因此我们怀疑事件在触发后没有及时上报到云测,而是延迟到第二天才上报到server服务器。也就是说,这些事件均缓存到了本地。

经过与开发者的沟通,我们了解到其采用的是默认上报策略,即应用切后台上报策略和阈值上报策略。当开发者没有设置上报策略时,这两种策略就会自动生效。由此,通过复现发现如果应用被杀掉,用户切后台触发事件上报,上报进程还没有走完,进程被杀掉,导致事件上报失败,缓存在本地,等待下次上报。另外还有两点原因,具体见下节根因描述。

原因

  • 用户切后台触发事件上报,上报进程还没有走完,进程被杀掉,导致事件上报失败,缓存在本地,等待下次上报;

  • 用户切后台上报时,网络状况等原因,没有上报成功;

  • 凌晨正在跨天使用App的用户,数据上报缓存到第二天上报。

解决方案

建议开发者通过setReportPolicies接口设置4种上报策略搭配使用,并将定时上报策略设置为60s-1800s(60s最为敏感)。如果设置为60s,这种场景即便进程被杀掉,也能确保进程杀死前60s之外的数据能够上报,避免数据上报时延。

欲了解更多HMS Core分析服务详情,请参阅:

https://developer.huawei.com/consumer/cn/hms/huawei-analyticskit/?ha_source=hms1

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

【FAQ】关于分析服务错误获取所选日期前一天事件数据的解决方法的更多相关文章

  1. asp.net webapi [FromBody]string 获取不到ajax post的数据的解决方法

    webapi中如下([FromBody]string jsonData: public async Task<ResItem> Post([FromBody]string jsonData ...

  2. 使用MSSQL同步&发布数据库快照遇到错误:对路径“xxxxx”访问被拒绝的解决方法

    使用MSSQL同步 数据库同步做后后测试:先在同步那台服务器(服务器A)数据库里修改里面数据库,然后再去被同步那台服务器(服务器B)看下数据有没被同步过去 发布数据库快照遇到错误:对路径“xxxxx” ...

  3. 【FAQ】分析服务导出的事件数据和概览页面展示的数据不一致该如何解决?

    华为分析服务面向开发者提供两种数据展现方式:(1)事件数据下载,开发者可以将事件数据下载后导入到自有的分析系统中:(2)直接在AGC概览页面查看用户数和事件数. 问题描述 某开发者想将事件数据导入到自 ...

  4. SVN 错误 Access to SVN Repository Forbidden的原因及解决方法

    原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/SVN_Access_to_SVN_Repository_Forbidden.html   当我们新 ...

  5. sql2000新建登陆用户错误“21002:[SQL-DMO] 用户***已经存在”的原因和解决方法【孤立用户解决方法】

    错误症状: 在SQL Server200中用附加数据库导入数据后,在新建登录时出现会出现错误21002:[SQL-DMO] 用户***已经存在.然后发现没建成的用户已经在登录列表里了.删除重建,问题依 ...

  6. VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

    VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machin ...

  7. Mysql错误:Duplicate entry '127' for key 'PRIMARY'的解决方法

    有时候真是挺幸运,正当我自以为是地认为掌握了某个知识点的时候,现实就会马上出现另外一个问题,让我知道之前的认知是不全面的. 正如我上篇博文中所述,如果一个自增字段达到了上限,而且继续向里面插入数据的话 ...

  8. iPhone Anywehre虚拟定位提示“后台服务未启动,请重新安装应用后使用”的解决方法

    问题描述: iPhone越狱了,之后在Cydia中安装Anywhere虚拟定位,但是打开app提示:后台服务未启动,请重新安装应用后使用. 程序无法正常使用... 解决方法: 打开Cydia-已安装, ...

  9. IIS7授权错误:“无法验证对路径的访问”的解决方法

    解决方法: iis7 无法验证对路径的访问 1.打开IIS 7管理器,鼠标单击定位到出现了这个错误的网站. 2.在IIS 7管理器的右边,选择“基本设置”. 3.在弹出的“编辑网站”对话框中,单击“连 ...

  10. mysql错误:Can’t create TCP/IP socket (10106) 解决方法

    错误描述 “mysql错误:Can’t create TCP/IP socket (10106)”,目测是socket端口被占用的原因,然后在打开tomcat,报的错误中也包含了“socket”,再一 ...

随机推荐

  1. 浅谈 rxgo 在项目中的使用方式

    项目中使用到了 RxGo ,感觉现有的处理方式有一定的优势,当然也有一定的有劣势,遂记录下来,免得自己忘记. 本文介绍的只是 rxgo 的一种方式而已,如果你有不错的使用方式,请不吝赐教,谢谢. 对 ...

  2. 02、etcd单机部署和集群部署

    上一章我们认识了etcd,简单的介绍了 etcd 的基础概念,但是理解起来还是比较抽象的.这一章我们就一起来部署下 etcd .这样可以让我们对 etcd 有更加确切的认识. 1.etcd单实例部署 ...

  3. 【Azure 应用程序见解】在Docker中运行的ASP.NET Core应用如何开启Application Insights的Profiler Trace呢? 

    问题描述 使用Azure Application Insights收集AKS中ASP.NET Core应用的监控数据,自动收集请求的Trace情况,用于分析单个请求在应用内部的耗时及处理事件情况,参考 ...

  4. ANDROID : NEW IDEA

    •前言 学习了 Android 开发后,小脑袋瓜中时不时会蹦跶出一些想法: 这些想法大都是我现在实现不了的,所以就需要记录一下,等学到相关知识时,在着手解决. •NEW IDEA 1 将一款 APP( ...

  5. modalError.vue 错误提示框 vue2 iview

    需求 一个错误提示框,后台需要有换行,默认没有换行,做一个支持换行的全局错误提示函数. 注意 代码只展示原理,直接不能使用,里面有getAc,有需要参考 https://www.cnblogs.com ...

  6. husky 7.0.4 git hooks 前端 commit 钩子 git转svn [已解决]

    husky 7 的安装,注意下版本 第一步 安装 cnpm install husky@7.0.4 --save-dev 第二步 在package.json script加入 "prepar ...

  7. deepin版的微信无法启动

    我在网上找了半天的了,出现问题的原因应该是deepin-wine的问题: 既然是deepin-wine出了问题,那重装一下就好了,嗯~ 我直接,yay!结果发现有一个deepin-wine需要更新,更 ...

  8. JavaXMail发送邮件功能实现

    原文:JavaXMail发送邮件功能实现 | Stars-One的杂货小窝 好久之前实现的邮件发送功能,一直没整理出来,考虑到之后有个项目需要,先整理一波 提示: 本文代码例子是使用Kotlin语言编 ...

  9. linux怎么添加用户

    在Linux中添加普通新用户 超级用户(也称为"root")是一个具有修改系统中任何文件权力的特别账号.在日常工作中,最好不要使用超级用户账号进入系统,因为任何错误操作都可能导致巨 ...

  10. 像使用stl一样使用线段树 ——AtCoder Library(转载https://zhuanlan.zhihu.com/p/459579152)

    地址:https://zhuanlan.zhihu.com/p/459579152 我这里翻译一下官方的文档. 首先需要满足几个性质. (注意 ∗ 是个操作,不是单纯的一个乘号) 1)操作满足结合律 ...