uni统计2 是开源、全端、云端一体、更适合uni-app的统计平台。
欢迎加入uni统计2.0技术交流群
体验系统:https://hellouniadmin.dcloud.net.cn/
注:uni统计内置在uni-admin中,体验系统的数据会定期重置。
无需开发,在的 中打勾并发行,在uniCloud服务空间部署uni-admin,即可查看报表。
同时开发者也可以自定义打点数据、自定义展现报表。
1. 全端
全端流量统计,一张报表可查看所有端(iOS、Android、Web 及各家小程序)的运营数据。
无需在各端接不同的sdk、无需在不同报表看数据。目前市面已知唯一一个一张报表看遍业务全景的方案。
2. 开源、免费、自由定制
代码全部开源。采集什么数据可以自定义;跑批频率可以自定义(搞活动时实时统计都可以做到);展示报表可以自定义。
3. 私有部署、数据自控
使用传统saas类统计产品,所有数据都上报给统计服务厂商。
基于实现,云函数、统计数据全部托管在开发者自己的服务空间(阿里云或腾讯云自选)中,开发者对自己的统计数据拥有完整的控制权。
4. 有效的错误分析
传统App统计平台,都没有js错误统计。开发者无法了解到自己的js代码在哪些设备上会报错。
uni统计的错误信息更全面,包括 js前端错误和 App 原生层的崩溃。
因为uni-app是编译后运行,传统web和小程序的统计平台,其js报错无法回溯到uni-app的编译前源码,报错看不懂。
uni统计支持sourcemap,可直观了解到底哪行代码写的有问题。详见
5. 默认功能丰富
- 设备统计
- 注册用户统计(基于uni-id)
- 页面统计
- 内容统计
- 新增、活跃、留存、跳出率分析
- 渠道分析:辅助渠道推广
- 错误统计和上报:辅助产品质量提升
- 原生App崩溃统计,分版本查看崩溃率
- 自定义打点、开源可扩展的报表
6. 更适合uni-app和uniCloud
uni统计深入uni-app和uniCloud框架底层,提供了众多其他统计平台无法提供的功能:
- uni-app全端识别,无需对接不同sdk、无需在不同报表中切换和自己累加数据
- 自动识别uni-app路由,自动采集页面标题(基于pages.json的navigationBar或uni-nav-bar组件)
- 自动捕获js错误,上报app端原生崩溃日志
- 兼容uni-app渠道包打包体系,自动识别渠道包
- 基于uni-id账户体系,自动出具注册用户(不是设备)的新增、活跃、留存报表
- 兼容uniCloud opendb规范,从服务器端统计各项数据
7. 开放生态
uni统计的开源且基于uni-admin的插件规范提供了插件机制,会有更多插件作者提供各种丰富的统计插件(如电商统计、内容统计等)。见插件市场
DCloud非常重视数据驱动开发者业务的增长,近期联合专业的大数据服务商神策和阿拉丁共同完善Uni统计2.0的产品模块和生态建设。 如果你对数据分析有任何需求,欢迎您填写需求调研问卷,我们会根据您的宝贵建议,在原有Uni统计产品的基础上,完成迭代更新。
对于使用uni统计1.0的开发者,推荐尽快升级到uni统计2.0。uni统计1.0将不再更新维护。
- uni统计2.0 在客户端仅支持uni-app,非uni-app无法使用。
- uni统计2.0 在云端虽然依赖uniCloud,但并不要求开发者的应用全部基于uniCloud开发。应用的主业务可以连接传统服务器,统计打点、报表展现使用uniCloud即可。
包括两个模块:
- 前端采集模块:内置在框架中,在业务App的进行配置;
- 云端统计模块:内置在项目模板中,和业务App复用同样的uniCloud服务空间;
在业务App项目的 里,选择 项,根据需求,选择开通 ,勾选 开启新版统计。
上述可视化操作,其实对应manifest源码视图的 节点。如下文档对manifest规范进行详述。如不关心规范细节,可以不阅读本小节,继续看下一节《小程序域名白名单》。
下的 字段设置为 ,来开启关闭
设置 属性为 来开启新版统计
uniStatistics说明
collectItems 采集项配置说明
分平台设置
支持分平台设置,比如仅开启微信小程序平台的 ,则在 manifest.json 节点下设置 即可,如下:
分平台uniStatistics说明
小程序域名白名单
由于各家小程序对可访问的域名要配置白名单,否则无法联网。所以需要发布小程序时需要在各厂商的小程序管理后台配置域名白名单。
部署uni统计时可以选择使用uniCloud的阿里云版或腾讯云版,不同云厂商对应的域名不同(文章后面章节会有服务空间相关配置)
点击查看各厂商request合法域名。
根据选择的uniCloud云厂商,配置相应的域名到小程序的域名白名单配置里即可。
注意
- 阿里云迁移正式版后未重新发布的项目仍会访问公测版地址
调试模式
将 下的 字段设置为 ,来开启关闭 调试模式
在调试模式下,会将上报数据的关键信息打印到控制台,方便观察采集信息是否正确 ,多用在自定义扩展的时候
日志格式
表示统计日志相关日志
日志字段说明,详见前端采集SDK
创建 admin 项目
的后台统计报表是uni-admin的内置插件。
uni-admin是一个开源管理后台。也就是使用,需要安装这个后台系统,在里面找到uni统计的菜单并使用。
目前安装的方式分为两种: 和 。
仅需要前往插件市场搜索找到插件后,选择进入uni-admin插件详情页并点击按钮,然后选择需要部署项目的服务空间后耐心等待系统自动部署完成即可。
则请参考uni-admin文档,完成如下操作:
- 创建新的项目(HBuilderX新建项目界面选择uni-admin模板)
- 在弹出的云服务空间初始化向导中,关联服务空间(如果您的业务App已使用了uniCloud,那么选择相同的服务空间;否则,新建一个服务空间,并在业务App里关联相同服务空间)
- 部署云端资源:上传部署云函数、公共模块、通过初始化数据库表。如之前的表已经有冲突数据,需要自己手动合并下
- 在云端配置中心完成其它初始化配置,如:在 文件中填写自己的 passwordSecret 字段 (用于加密密码入库的密钥) 和 tokenSecret 字段 (为生成 token 需要的密钥,测试期间跳过本条也可以),然后对公共模块点右键上传更新。注意:和关联相同服务空间时,可能会出现的相互覆盖问题,此时建议单点维护,详见。
- 运行 uni-admin 项目,一般是运行到浏览器
- 设置管理员账户
- 在左侧「应用管理」中新增「被统计应用」的记录(appid 等)
- 配置结束后,启动业务App,将会在运行后的页面左侧的uni统计菜单里看到业务App的数据(如看不到数据,见下方常见问题章节)
- 测试通过后,在HBuilder发行菜单里发行项目,选择部署到uniCloud服务空间的前端网页托管里。可以在uniCloud web控制台自定义域名。
uni-admin老项目升级
如您需要统计的业务之前已经使用了,可以升级。对项目下的点右键,选择「从插件市场更新」。
uni统计新增的文件主要包括:
- 云函数:(定时跑批云函数)、(接收前端打点的云对象)
- 云函数公共模块:
- 数据表:目录下开头的若干文件
- 统计页面: 文件夹下面的若干页面
更新时注意合并pages.json,确保新页面都注册成功。否则运行起来后,点击左侧菜单会报找不到xxx文件。
初始化数据库时,老项目的菜单表,已经有数据了,此时key冲突的数据无法插入,需要手工合并。
- 如果老项目没有改动过menus和权限,那么可以删掉老表,重新初始化
- 如果老项目的menus菜单改动过,需要把uni统计的若干页面再合并到菜单数据表里
设置定时任务云函数的触发周期
中的默认触发周期为每小时触发一次(即:每隔1小时,系统会自动触发一次云函数)。
你可以根据需要修改的触发周期到分钟级(即每隔n分钟触发一次),但要注意触发周期修改后,需要确保定时任务配置项中设置的分钟数是否会被触发,比如你的配置项中设置的是每小时的第10分钟触发(表达式:),而定时触发器设置的为每20分钟触发1次(),那这个配置项将永远不会触发。
- 我们这里以将跑批周期修改为每隔10分钟触发1次为例,正确的步骤为:
- 修改uni统计配置项将参数的值改为。
- 修改下的文件中的定时触发器配置项,关于定时触发器的具体说明可以参考官方文档定时触发器。
- 检查配置文件()中的参数中设置的选项是否会被触发。
- 重新上传部署和。
开启redis缓存
开启redis缓存后可以降低数据库查询压力,提升uni统计性能,可按需决定是否开启。
开启步骤:
- 修改uni统计配置项将参数的值改为。
- 分别在数据和下的文件中添加redis拓展库。
- 重新上传部署数据、和。
为了让用户端App采集到的数据,可以被中的云函数正确接收并统计,需保证用户端项目和admin项目,关联同样的服务空间。
- 选择用户端项目(需采集用户数据的项目)
- 若该项目之前未启用,右键并选择 (数据量大推荐使用);否则,进入第3步;
- 在目录右键并选择,在打开的窗口中选择对应项目关联的服务空间
此功能只支持 web平台、App平台、微信小程序平台
为方便开发者使用 sourceMap 文件定位代码问题,增加在统计中使用 sourceMap 错误解析功能。
使用环境
- 腾讯云服务空间(uni-admin 1.9.4+),阿里云服务空间(uni-admin 2.3.4+),支付宝云服务空间(uni-admin 2.4.3+)
- HBuiderX 3.5.3+
- 不支持 IE,不支持hbx内置浏览器,推荐使用谷歌浏览器
生成 sourceMap
线上运行端在各种用户环境下可能会有报错,需要开发者统计和分析。但三方统计系统(如友盟、阿拉丁、百度),对运行端的报错采集,提示的是uni-app编译器编译后的代码报错的行数,相当于乱码,无法告知开发者是uni-app的vue或js的哪一行代码报错。
uni统计的sourceMap功能可以解决这一问题,在统计后台可以清晰的看到报错的环境和准确的报错代码,是uni-app编译前的vue或js的具体信息。
在 HBuiderX 中生成 sourceMap 文件
web 平台在时,勾选 选项。
App 平台在时,勾选 选项。
微信小程序平台在时,勾选 选项。
cli 项目生成 sourceMap 文件
项目编译完成后,可在 中查看到生成的各平台的 sourceMap 文件。
由于微信小程序平台上传发布后,会再压缩打包一次,所以需要额外一个步骤:
- 在微信公众平台的中下载线上版本 sourceMap 文件
- 将下载好的文件解压到所生成的 .sourcemap 文件夹中: (__WEIXIN__为新建的目录,解析错误时会根据这个名字查找)
注意事项
- 如果下载的 sourceMap 文件中,只有 文件夹,请重命名为
- 只支持 sourceMap 文件错误解析
上传 sourceMap
uni-admin 2.3.4+ 版本
注意:2.3.4+ 的版本同时支持阿里云和腾讯云空间。
将 uni-admin 项目运行到浏览器中,在 页面,错误信息列表表格的右上角有 按钮。点击后展示如下:
上传请前请填写完整信息:、、
点击 按钮,弹出 框后,请选中编译的对应该平台版本的 sourceMap。如:项目根目录/unpackage/dist/build/.sourcemap/h5,选中 目录后点击上传。如果中途上传失败,在不刷新页面的情况下,重新选择文件夹上传可以跳过已上传文件。
上传完成
uni-admin 2.3.4 之前的版本
注意:2.3.4 之前的版本只支持腾讯云空间,不支持阿里云空间。
在 中配置 相关信息:
- 搜索 补充腾讯云服务空间 SpaceID
- 搜索 补充腾讯云云存储访问地址(如:https://xx-xx-xx.tcb.qcloud.la/__UNI__/uni-stat/sourcemap)
将 uni-admin 项目运行到浏览器中,在 页面,错误信息列表表格的右上角有 按钮。点击后展示如下:
上传请前请填写完整信息:、、
点击 按钮,弹出 框后,请选中编译的对应该平台版本的 sourceMap。如:项目根目录/unpackage/dist/build/.sourcemap/h5,选中 目录后点击上传。如果中途上传失败,在不刷新页面的情况下,重新选择文件夹上传可以跳过已上传文件。
文件夹内容会上传至 目录下
注意事项
- 云存储需要配置权限:如果使用的腾讯云服务空间不是当前项目绑定,则需要设置为:
- 如果出现跨域需要在 中绑定安全域名
- 上传失败可能会有如下原因:
- 如果文件名称、文件夹名称带 或者广告类的字段,请关闭浏览器广告拦截扩展再上传
- 如果云存储中该目录已有同名文件,也可能会上传失败。所以在再次上传相同平台,相同版本的 sourceMap 文件前请将云存储中对应目录 (如:) 删除
解析错误
在 页面,错误信息列表表格中,点击表格行中右侧 即可在弹窗中查看解析后错误信息。
示例
原始错误信息:
解析后的错误信息:
- 解析错误是逐行解析,某一行解析失败会返回原错误信息
- 分隔线下方为平台框架运行时错误栈信息,可以不用关心
- 前端采集SDK源码地址,查看
- 云端统计模块以及统计后台源码地址,查看
数据上报逻辑
数据上报间隔默认是 10s 上报一次 ,在上报间隔内,会将每次上报节点的数据加入统计数据队列,10s后会在下一个上报节点,统一对数据队列进行一定的处理进行上报。
为节约服务端资源,前端采集到的数据按固定周期上报。所以上报请求不是时实发生的。
或更高版本 可以根据自己的业务需求调整上报周期 ,在 中修改即可 ,为节约服务端资源,建议填写范围为 之间。
采集类型
应用启动
访问开始即启动程序,访问结束结分为:进入后台超过5min、在前台无任何操作超过30min、新的来源程序
应用进入后台
应用进入后台时,在 SDK 中是应用的 onHide 生命周期触发
页面切换
页面跳转时上报,在 SDK 中是页面的 onHide 生命周期触发
事件触发
用户触发某些业务逻辑时
- 默认事件
- 登录:用户信息
- 支付:商品名称、金额
- 分享:
- 用户自定义事件
应用错误
应用发生错误时上报
:统计数据类型
:平台类型
:手机系统
:网络类型
统计报表展示页
为了突出目标,仅注释出 uni 统计相关的文件夹及文件,其余与普通 uni-app 项目相同。新增页面可参考 uni-stat 中相似页面。
云函数、通用模块说明
一、 uni统计服务端构成
- :给uni统计提供运行必要的配置参数。
- :数据处理模块,包括收集上报数据的处理入库及定时任务的数据处理。
- :接收客户端上报数据并转发给公共模块处理。注意:该云对象依赖于公共模块。
- :触发定时任务并转发给公共模块处理。
二、公共模块说明
公共模块配置项说明
uni统计配置项存放于uniCloud配置中心()下的 文件中,用户可根据自身系统需要自定义各配置项的值。
基础参数
定时任务配置说明
参数用于配置定时任务触发时间,一般无需修改此项。
目前定时任务类型有():
:基础数据统计,统计维度包括:
- 实时统计,默认触发,统计上一小时的基础数据
- 日统计,默认触发,统计前一天的基础数据
- 周统计,默认触发,统计上一周的基础数据
- 月统计,默认触发,统计上一月的基础数据
:设备留存数据统计,统计维度包括:
- 日统计,默认触发,统计设备日留存数据(初始统计前天到昨天的留存情况,因此需至少运行三天才会有数据)
- 周统计,默认触发,统计设备周留存数据(初始统计上上周到上周的留存情况,因此需至少运行三周才会有数据)
- 月统计,默认触发,统计设备月留存数据(初始统计上上月到上月的留存情况,因此需至少运行三个月才会有数据)
:用户留存数据统计,统计维度包括:
- 日统计,默认触发,统计用户日留存数据(初始统计前天到昨天的留存情况,因此需至少运行三天才会有数据)
- 周统计,默认触发,统计用户周留存数据(初始统计上上周到上周的留存情况,因此需至少运行三周才会有数据)
- 月统计,默认触发,统计用户月留存数据(初始统计上上月到上月的留存情况,因此需至少运行三个月才会有数据)
:活跃设备数据归档,统计维度包括:
- 日归档,默认触发,归档前一天的活跃设备数据,注意:此项数据要保持在、、中的周统计、月统计触发之前执行。
:活跃用户数据归档,统计维度包括:
- 日归档,默认触发,归档前一天的活跃用户数据,注意:此项数据要保持在、、中的周统计、月统计触发之前执行。
:页面数据统计,统计维度包括:
- 日统计,默认触发,统计前一天的页面数据
:页面内容统计,统计维度包括:
- 日统计,默认触发,统计前一天的页面内容数据
:事件数据统计,统计维度包括:
- 日统计,默认触发,统计前一天的事件数据
:错误数据统计,统计维度包括:
- 日统计,默认触发,统计前一天的错误数据
:过期日志清理定时任务:
- 日志清理,默认触发,清理过期的日志数据
:支付数据结果统计,统计维度包括:
- 实时统计,默认触发,统计上一小时的基础数据(实时统计时,会自动统计小时、天、周、月、季度、年度维度的数据,无需再配置其他维度统计)
错误检测配置说明
参数用于在规定时间内限制相同的错误日志写入数据库,防止有高频错误产生时造成大量的数据库写入操作,可按需开启或关闭。
日志清理配置说明
参数用于配置定时清理过期的日志,减少数据库数据的存储量,提升uni统计性能。
目前可配置的日志类型有:
- ,默认保留天的日志。注意:因设备留存统计中最长需要统计30后的留存数据, 所以基础会话日志要至少保存天的日志,否则会对设备留存统计造成影响。
- ,默认保留天的日志。注意:因用户留存统计中最长需要统计30后的留存数据, 所以用户会话日志要至少保存天的日志,否则会对用户留存统计造成影响。
- ,默认保留天的日志。
- ,默认保留天的日志。
- ,默认保留天的日志。
- ,默认保留天的日志。
- ,默认保留天的日志。
- ,默认保留天的日志。
uni统计提供了基础的数据报表,如不能达到预期的数据采集,可以在客户端通过 自由上报数据 ,并通过 uni-admin 增加页面 ,自行统计数据。
这里列出 的基本用法,完整查看:详情
有两个参数。
- eventKey 自定义事件名称
- param 自定义事件参数
在 uni-admin 中新增页面,使用 uniCloud API 获取所有 上报的原始数据,数据存放于 uni-stat-event-logs 表中。
- 获取数据后,可以自行扩展所需业务逻辑
不管是新上报的数据,还是opendb的数据、或者开发者自己的业务数据库里的数据,都可以自己编写报表进行统计分析。
与普通uni-app页面一样,新建页面,编写代码。
在中注册左侧菜单时,需要参考文档:uni-admin 左侧窗口-菜单栏
版本开始(对应),和复用相同的应用版本表(即表) ,废弃原来的表。
如果你已启用,但使用的是老版本的,则需注意版本表的迁移升级,否则基于版本的统计数据可能不准确。
升级步骤:
- 从插件市场更新项目
- 上传覆盖公共模块
- 重新上传覆盖所有的
- 将原表中的数据导入到表中;如下提供了一个代码片段,你可以创建一个云函数,将示例代码拷贝到云函数中,右键执行 “运行-本地云函数”,即可自动完成数据内容的迁移;
版本开始,新增了内容统计,可以通过设置页面规则进行内容统计。内容统计模块默认处于关闭状态,开启内容统计后会增加大量的数据库读写次数,请按需开启。开启内容统计的方式,可参考公共模块配置项说明。
演示图
内容统计
页面规则
设置页面规则
注意
如果升级uni-admin后,你的uni统计没有出现内容统计的菜单,则点击菜单管理里的【更新内置菜单】按钮即可(需uni-admin版本>=2.4.0)
版本开始,新增了对(即鸿蒙App)平台的统计。
若您部署过之前的版本,需要先将升级到之后的版本。
升级uni-admin项目的方法
- 通过部署的用户,可直接在 中,找到文件,右键 => 从插件市场更新,合并项目文件后重新打包、发布即可。
- 通过插件市场功能,部署的用户,可重新在插件市场选择,注意需要与原的AppId保持一致,否则将会导致管理员账号无法登录,原的AppId,可在插件市场的插件部署记录模块查看。
在uni-admin项目中添加App-Harmony服务平台
如果您在中,无法找到平台,您需要在HBuilderX中,找到文件,添加以下并运行。
升级HBuilderX至4.33+,重新打包、发布您要统计的应用
uni-admin项目更新后,即可正常接收和统计平台的相关数据。此外,您还需要升级的前端采集SDK,采集数据才能正常上报,即需要将版本升级至后,重新打包发布您要统计的应用。
版本开始,新增了对平台的统计。
若您部署过之前的版本,需要先将升级到之后的版本,升级项目的方法,可参考上方升级到2.4.24+ 含鸿蒙平台的版本中的说明。
在uni-admin项目中添加鸿蒙元服务平台
如果您在中,无法找到平台,您需要在HBuilderX中,找到文件,添加以下并运行。
升级HBuilderX至4.33+,重新打包、发布您要统计的应用
uni-admin项目更新后,即可正常接收和统计平台的相关数据。此外,您还需要升级的前端采集SDK,采集数据才能正常上报,即需要将版本升级至后,重新打包发布您要统计的应用。
近期,uniCloud阿里云版开始正式商用,部分开发者对基于uniCloud的等云端一体业务,开始纠结,不清楚这些业务预计会花费多少钱,不清楚相比传统服务器而言,何种方案性价比更好。
本文尝试算细账、算总账,以阿里云按量计费为例,详细预测在不同用户规模下的资源消耗及对应费用,帮助大家明智选择,无忧开发。
本文主要分为三个部分:
- 消耗的资源费用测算
- 给你带来的收益
- 综合考虑,你该如何选择
uni统计 消耗的资源费用测算
涉及费用的部分主要分为:
- 云函数:云函数,云函数有2个
- uni-stat-receiver 客户端数据上报函数(添加统计数据源)
- uni-stat-cron 数据跑批处理函数(生成统计数据)
- 云数据库:为前缀的表
- 前端网站托管:部署,管理员发布新版本
接下来,我们对不同资源,分别进行费用评估。
uni-stat-receiver
启用后,你的每一个在线用户默认每10秒会请求一次云函数(如果你的日活在1万以上,可以改成60秒,可以减少费用。时间间隔可在manifest.json内设置,如果用户一直停留在一个页面,那么此时不会重复上报)
我们按照uniCloud官网列出的按量计费规则,计算一下云函数的资源消耗。
我们可以简单得出如下公式:
其中:
- 资源使用量 = 云函数内存(单位为G) * 云函数平均单次执行时长(单位为秒) * 调用次数
- 调用次数 = 应用日活 * 每日活用户平均每天上报次数
我们假设如下数据模型:
- 云函数运行内存:128M,即0.125G(云函数内存默认为512M,用户可以自定义设置,最低可设置为128M)
- 每日活用户平均每天上报次数:10 次
- 云函数平均单次执行时长:100毫秒,即0.1秒
- 单次请求出网流量:0.7 KB
按照如上公式,若有100个日活用户,其的云函数每天的费用为:
即:你的App日活为100,使用商业版后,云函数每天大概消耗0.0032元。
据此,可计算其每月的费用为:0.0032 * 30 ≈ 0.1,即日活为100时,每月云函数只需0.1元。
同理,我们可推导出日活为1000、10000、10万的App,其云函数每月费用如下表:
uni-stat-cron
还有一个云函数,它是定时数据跑批任务,用来将上报的数据进行统计,生成统计报表。
我们假设如下数据模型:
- 云函数内存:512M,即0.5G(跑批云函数建议设置为512M,因为它每天只运行24次,内存越大,性能越强)
- 云函数平均单次执行时长:1秒(随着数据源越多,运行时间越长)
- 每日执行次数:24次(固定每小时运行1次)
- 出网流量:没有返回给客户端,固定为0
其的云函数每天的费用为:
即:你的App日活为100,使用商业版后,云函数每天大概消耗0.0014元。
据此,可计算其每月的费用为:0.0014 * 30 ≈ 0.04,即日活为100时,每月云函数只需0.04元。
同理,我们可推导出日活为1000、10000、10万的App,其云函数每月费用如下表:
由于云函数不管多少日活,每日均只运行24次,故日活对其费用的影响很小(只影响了每次运行的时长)。
按照uniCloud官网介绍,云数据库费用 = ,其中:
- 容量费用:数据库存储容量(单位为G) * 0.07
- 读操作次数费用:读操作次数(万次) * 0.015
- 写操作次数:写操作次数(万次) * 0.05
会产生大量的日志数据,但默认会有自动清除历史日志的策略,如:会话日志的数据会被删除。
由于涉及数据库的情况非常复杂,我们通过对官方统计示例项目的实际运行数据得出以下结果:
日活为100的应用,数据库资源用量如下:
- 每日活用户平均每天上报次数:10 次
- 平均每次上报,需读取2次数据库,写入2次数据库(平均新增1.1条,修改0.9条),故新增插入1.1条记录,约0.54KB(注意:很多情况下上报可能没有数据新增,仅仅只是修改下会话日志数据。)
以上数据由官方统计示例项目计算得出。
故可得出以下数据模型:
- 日均云数据库容量:0.00052G(= 100 * 10 * 0.54 / 1024 / 1024)
- 日均云数据库读取次数:2000次(= 100 * 10 * 2)
- 日均云数据库写入次数:2000次(= 100 * 10 * 2)
因为数据源只保留31天,故稳定运行后,数据量容量一直会保持在31天的量。故下方公式中云数据库容量需要乘31
即:如果你的业务日活为100,使用阿里云商业版云服务空间后,对应数据库每天大概消耗0.0141元。 据此,可计算其每月的费用为:0.0141 * 30 ≈ 0.42,即日活为100时每月云数据库只需0.42元。
云数据库搭配redis后费用对比
redis只影响数据库的读操作,通过官方统计示例项目使用redis的前后对比可知redis大概可以减少2/3的数据库读操作次数(等于减少2/3的数据库读次数费用)。
由此可见,当日活低于10万时,redis减少的费用还不太明显。但当日活大于10万时,redis的作用越来越明显。
需要和配合使用,需要部署在前端网页托管中。主要是管理员使用,使用频次较少,流量也较低。
按照uniCloud官网介绍,前端网页托管费用 = 。
容量费
编译后为4.7M,按照官网每GB每天0.0043元的规则,的月度容量费为:,不到1分钱,可忽略。
流量费
管理员登录,到管理页面浏览统计数据,所需流量不超过3M,即使每月发布2次更新,流量费预估为:,也不到1分钱,也可忽略。
前端网页托管总结
每月费用不到1分钱,可忽略。
细项对比完了,我们来合并看看,使用,每月到底需要花多少钱。
使用,免费获取、一键安装,你将获得:
1. 全端
全端流量统计,一张报表可查看所有端(iOS、Android、Web 及各家小程序)的运营数据。
无需在各端接不同的sdk、无需在不同报表看数据。目前市面已知唯一一个一张报表看遍业务全景的方案。
2. 开源、免费、自由定制
代码全部开源。采集什么数据可以自定义;跑批频率可以自定义(搞活动时实时统计都可以做到);展示报表可以自定义。
3. 私有部署、数据自控
使用传统saas类统计产品,所有数据都上报给统计服务厂商。
基于实现,云函数、统计数据全部托管在开发者自己的服务空间(阿里云或腾讯云自选)中,开发者对自己的统计数据拥有完整的控制权。
4. 有效的错误分析
传统App统计平台,都没有js错误统计。开发者无法了解到自己的js代码在哪些设备上会报错。
uni统计的错误信息更全面,包括 js前端错误和 App 原生层的崩溃。
因为uni-app是编译后运行,传统web和小程序的统计平台,其js报错无法回溯到uni-app的编译前源码,报错看不懂。
uni统计支持sourcemap,可直观了解到底哪行代码写的有问题。详见
真实案例
一个半月全端获客400万的真实例子
再次说回,通过上面的费用测算可得知,以日活1万来说,每个日活产生的一年的费用大概是6分钱到7分钱之间,这个费用已经是比较便宜的了。
目前市面上的统计如友盟统计也是收费的,在日活达到1万时,每年费用需要3109元/年(且这还只是web统计的费用,APP统计另算费用)。同时它还不是源码版本,代码不开源,无法随意定制。
而是全平台统计、代码开源、随意定制,这是三方统计平台做不到的。
再看回刚才的计算表,以日活1万来说,每年费用只需53.31*12=639.72元/年。
不重复制造轮子,聚焦业务,快速验证模式,实现商业增长,才应该是聪明工程师的追求。
本篇评测共大家参考。
- 1.适当增大前端数据上报周期 因为默认是10秒上报一次。改成60秒一次就可以降低6倍的访问量。具体调整方式可参考上文数据上报逻辑中有关前端数据上报周期的说明。
- 2.开启redis缓存 这也是目前降低数据库查询次数最有效的方法。因为redis是按容量计费,读写次数再多也不会多花钱。redis开启方法可参上文开启redis缓存。
- 3.关闭实时统计 实时统计指云端实时运算统计报表。但现实中大多数人只关心昨天的统计报表。只有今天要搞促销时才会实时关注数据报表。可以在日常配置为按天统计,在搞活动时再调整配置为实时统计。修改方法:将实时统计的配置项设置为关闭状态,然后重新上传配置中心()到关联的服务空间即可。配置项说明可查看上文公共模块配置项说明。
答:与定时任务配置配置有关,默认、等数据为1小时后可见,其余数据为次日可见。要想详细了解各类型数据统计时间请参考定时任务配置说明。
答:
- 确保分清楚,业务App 和 admin 是2个工程。业务App是采集端,admin是报表端
- 确保使用HBuilderX 3.4.14+。如果是cli创建的项目,需要升级cli到uni-app 3.4.14+
- 确保在需要统计的业务App工程的manifest里勾选了开启 uni统计2.0,并关联了正确的uniCloud服务空间
- 确保重新发行过业务App(在HBuilder里发行即可,不需要上架应用商店或小程序商店),数据上报只发生在项目发行后或者运行项目开启了调试模式,其他情况不会上报数据。详情
- 确保项目的目录下的云函数都上传到了与App相同的uniCloud服务空间
- 在uniCloud web控制台的云函数日志中,可以看到云函数有正确的请求日志
- 在uniCloud web控制台的云函数日志中,可以看到云函数有定时执行日志,且日志显示执行成功;如日志中显示,则查看下方第6个问题;
- 如需看这个管理端的统计数据,才需要在工程的里配置并再次发行。再次强调不要搞混业务App和admin
答:一般情况下是不需要自行配置的,但如果出现运行超时的情况时,就要考虑去开启分钟级定时任务了。
答:参考uni-admin 给系统创建多个登录账户并设置不同的权限
答:总设备数计算公式为:总设备数 = 原设备数 + 新设备数,而判断一个设备是否为新设备的依据是在客户端SDK中是否已储存该设备上次访问某一应用的时间,未存储则认为是该应用的新设备(即lvts=0时为新设备,lvts>0时为老设备)。 因此如果之前某一设备已经访问过某一应用,就算此时清除数据库中的数据,由于已经在客户端SDK中储存该设备上次访问应用的时间(即此时lvts > 0),所以该设备也不会再被认为是该应用的新设备从而不会再被计算进该应用的总设备数中而只会计算进活跃设备数中,此时可能就会出现总设备数小于活跃设备数的情况。
业务App 和 admin 是2个工程。业务App是采集端,admin是报表端;这两个项目均包含;如果这两个项目关联(复用)相同的服务空间时,很容易出现的互相覆盖问题;此时建议单点维护,方案有2种:
- 以业务App为主:将项目中 下面的文件夹,复制到业务App项目下的目录下,然后重新上传业务App项目下的公共模块即可。
- 以为主:将业务App项目下的,手动合并配置项到项目下的中(注意:是手动合并配置项,不要整体覆盖文件),然后重新上传项目下的公共模块即可。
首先分三步骤
第一步:添加用户角色权限
去权限管理,添加一个权限id为: 的权限
去角色管理,添加一个角色id为: 的角色
去用户管理,赋予子账号角色 角色
第二步:给相关的表设置read权限
涉及表如下:
- 所有 开头的表
- uni-pay-orders
- opendb-app-list
- opendb-app-versions
需要赋予上面的表的 权限
将上面的表的 权限全部设置为
第三步:前往菜单管理,对每一个uni统计的页面(包含子页面)设置下权限 (菜单只有拥有对应权限才会显示)
答:首先登录uniCloud控制台,检查在出现问题的统计项配置的时间点(参考:定时任务配置说明),云函数的运行日志,如果运行日志前面的状态标识是灰色的,代表云函数运行超时了,此时在云函数详情中将云函数的超时时间设置到最大值即可。如果运行日志的状态标识是绿色的,则需要检查日志内容是否有报错,然后根据报错内容做出调整。
答:uni统计能够产出注册用户统计数据的前提是,开通uni统计的应用与项目关联了同一个服务空间,且用户模块使用了uni-id用户体系,如果你应用的用户存储在非uniCloud业务,或者没有使用uni-id用户体系,uni统计将无法自动统计注册用户数据。