Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_36567140
unidocs-zh
提交
3ed4c51e
U
unidocs-zh
项目概览
qq_36567140
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3ed4c51e
编写于
4月 26, 2022
作者:
M
mehaotian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: uni-stat-v2
上级
664e779b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
126 addition
and
130 deletion
+126
-130
docs/uni-stat-v2.md
docs/uni-stat-v2.md
+126
-130
未找到文件。
docs/uni-stat-v2.md
浏览文件 @
3ed4c51e
...
...
@@ -34,7 +34,7 @@ uni统计2.0 是基于 uniCloud 开发的开源、免费统计平台。
在项目中打开
`manifest.json`
, 选择
`uni统计配置`
项,根据需求,选择开通
`uni统计`
,勾选
`version2`
开启新版统计。
![
开启统计
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/
73a73c56-1b65-4fc2-9429-26248f3e1267
.png
)
![
开启统计
](
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/
03c7afa3-2512-462b-a53f-cbaeca4dec58
.png
)
### 全局设置
...
...
@@ -45,12 +45,20 @@ uni统计2.0 是基于 uniCloud 开发的开源、免费统计平台。
```
js
//...
"
uniStatistics
"
:
{
"
enable
"
:
true
,
//全局开启
"
version
"
:
"
2
"
// 开启新版uni统计,值为字符串
"
enable
"
:
true
,
//全局开启
"
version
"
:
"
2
"
// 开启新版uni统计,值为字符串
},
//...
```
**uniStatistics说明**
|字段|类型|默认值|可选值|说明|
|:-:|:-:|:-:|:-:|:-:|
|enable|Boolean|false|true , false|全局开启或关闭统计 ,分平台配置会覆盖当前配置|
|version|String|'1'|"1" , "2"|统计版本 ,如不填写,默认使用版本1.0,推荐使用2.0版本|
|debug|Boolean|false|true , false|开启统计调试模式 ,会产生大量日志,且会在开发阶段上报数据,应用发布请关闭此项|
### 分平台设置
`uniStatistics`
支持分平台设置,比如若需仅开启微信平台的
`uni统计`
,则在
`mp-weixin`
节点下设置
`uniStatistics ->enable`
即可,如下:
...
...
@@ -64,11 +72,17 @@ uni统计2.0 是基于 uniCloud 开发的开源、免费统计平台。
}
```
**uniStatistics说明**
|字段|类型|默认值|可选值|说明|
|:-:|:-:|:-:|:-:|:-:|
|enable|Boolean|false|true , false|分平台开启或关闭统计 ,分平台配置会覆盖全局配置,uniStatistics 需在平台配置下|
::: warning 注意
-
在分平台下如有
`uniStatistics -> enable`
字段,则优先使用分平台下配置 ,反之使用全局统计设置
-
分平台无需设置
`version`
属性 ,
`version`
属性仅全局生效
-
应用在运行、调试时不会上报统计数据,仅在发行后,并启动新版的App、h5、小程序,才会上报数据。
-
如需在开发运行阶段调试查看上报数据 ,可开启 debug 模式 ,后文查看详情
-
分平台无需设置
`version`
、
`debyg`
属性 ,两个
属性仅全局生效
-
分平台无需设置
`debyg`
属性 ,
`debyg`
属性仅全局生效
-
应用仅在开启调试模式,或发行后才会上报数据
:::
### 域名白名单
...
...
@@ -159,7 +173,12 @@ uni统计2.0 是基于 uniCloud 开发的开源、免费统计平台。
3.
发行项目到对应平台 ,此时数据已经成功采集到
`uni-admin`
中
## 前端SDK开启调试模式
## 开源代码解读
### 前端SDK说明
#### 开启调试模式
将
`manifest.json -> uniStatistics`
下的
`debug`
字段设置为
`true|false`
,来开启关闭
`uni统计`
调试模式
...
...
@@ -200,7 +219,7 @@ uni统计2.0 是基于 uniCloud 开发的开源、免费统计平台。
```
### 采集类型说明
###
#
采集类型说明
**应用启动**
...
...
@@ -361,37 +380,35 @@ uni统计2.0 是基于 uniCloud 开发的开源、免费统计平台。
|none|无网络|
|cable|有线|
#### 数据上报逻辑
数据上报间隔最小是 10s 上报一次 ,在上报间隔内,会将每次上报节点的数据加入统计数据队列,10s后会在下一个上报节点,统一对数据队列进行一定的处理进行上报。
## 开源代码解读
### 前端SDK说明
uni-app 框架内置
这么做的目的是防止频繁上报引起的并发问题。所以上报请求不是时实发生的。
### uni-admin说明
**前端页面结构**
为了突出目标,仅注释出 uni 统计相关的文件夹及文件,其余与普通 uni-app 项目相同。新增页面可参考 uni-stat 中相似页面。
```
bash
├── cloudfunctions
├── common
# 样式
│ │── uni.css
# 公共样式
│ └── uni-icons.css
# icon样式
├── components
# 自定义组件
├── js_sdk
# js sdk
│ └── uni-stat
# uni统计相关工具方法
├── common
# 样式
│ │── uni.css
# 公共样式
│ └── uni-icons.css
# icon样式
├── components
# 自定义组件
├── js_sdk
# js sdk
│ └── uni-stat
# uni统计相关工具方法
│ └── util.js
├── pages
# 页面
│ └── uni-stat
# uni统计页面
│ │── channel
# 渠道(app)
│ │ │── channel.vue
# 页面(下同)
│ │ └── fieldsMap.js
# 字段配置(下同)
│ │── device
# 设备统计
│ │ │── activity
# 渠道/场景分析
├── pages
# 页面
│ └── uni-stat
# uni统计页面
│ │── channel
# 渠道(app)
│ │ │── channel.vue
# 页面(下同)
│ │ └── fieldsMap.js
# 字段配置(下同)
│ │── device
# 设备统计
│ │ │── activity
# 渠道/场景分析
│ │ │ │── activity.vue
│ │ │ └── fieldsMap.js
│ │ │── comparison
# 平台对比
│ │ │── comparison
# 平台对比
│ │ │ │── comparison.vue
│ │ │ └── fieldsMap.js
│ │ │── overview
# 今日概览
...
...
@@ -455,22 +472,6 @@ uni-app 框架内置
```
### 服务端说明
**1. 服务端构成**
-
`uni-config-center/uni-stat 配置模块`
:给
`uni-stat 公共模块`
提供运行必要的配置参数。
-
`uni-stat 公共模块`
:数据处理模块,包括收集上报数据的处理入库及定时任务的数据处理。
-
`uni-stat-receiver 上报数据接收器`
:接收客户端上报数据并转发给公共模块处理。注意:该云对象依赖于
`uni-id`
公共模块。
-
`uni-stat-cron 定时任务云函数`
:触发定时任务并转发给公共模块处理
**2. 公共模块结构说明**
-
`shared目录`
公共模块,提供公共函数库等支持。
-
`stat/mod目录`
数据模型,提供具体业务实现。
-
`stat/lib目录`
工具类类库,提供日期计算、数据加密等额外功能支持。
-
`stat/report.js文件`
数据上报功能的分发入口文件。
-
`stat/stat.js文件`
数据统计及日志清理功能的分发入口文件。
-
`index.js文件`
代理入口文件。
### 服务端说明
...
...
@@ -487,7 +488,7 @@ uni-app 框架内置
注意:uni统计公共模块依赖于 uniCloud配置中心(uni-config-center)
:::
```
bas
e {6}
```
bas
h
├── shared
# 公共模块,提供公共函数库等支持。
│ │── create-api.js
# 用来创建对外访问的实例
│ │── error.js
# 错误处理模块
...
...
@@ -537,13 +538,13 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
**基础参数**
|配置项 |默认值 |说明 |
| :--------: |:---------:|:-------------------: |
|配置项 |默认值 |说明 |
| :--------: |:---------:|:-------------------: |
| debug | false |开启调试模式 true: 开启,false:关闭,开启后会产生大量日志,生产环境请关闭。 |
| redis | false |开启redis缓存,开启后可以降低数据库查询压力,提升uni统计性能,可按需决定是否开启。
[
开启方法
](
#开启redis缓存
)
|
| redis | false |开启redis缓存,开启后可以降低数据库查询压力,提升uni统计性能,可按需决定是否开启。
[
开启方法
](
#开启redis缓存
)
|
| cachetime | 604800 |redis缓存有效期,单位秒。 |
| sessionExpireTime| 1800 |会话过期时间,该配置用来判断当前会话是否已过期,一般情况下无需修改此项。 |
| realtimeStat | true |开启实时统计,true: 开启,false:关闭,开启后会每小时统计一次,数据库读写次数会增多,可按需决定是否开启。 |
| realtimeStat | true |开启实时统计,true: 开启,false:关闭,开启后会每小时统计一次,数据库读写次数会增多,可按需决定是否开启。 |
| cronMin | false |开启分钟级定时任务,true: 开启,false:关闭。开启后定时任务将细分到分钟级执行,分摊数据计算压力,适合应用日活较大或有特殊需求的用户群体。开启方法见下方
[
开启分钟级定时任务
](
#开启分钟级定时任务
)
。 |
| cron | - |用于配置定时任务触发时间,详情见下方
[
定时任务配置说明
](
#定时任务配置说明
)
。 |
| batchInsertNum | 5000 |当有批量写入操作时,限制单次写入数据库的最大条数。为防止写入超时,最大值为5000条。 |
...
...
@@ -572,40 +573,40 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
"
uni-cloud-jql
"
:
{},
"
uni-cloud-redis
"
:
{}
// 配置为此云函数开启redis扩展库,值为空对象留作后续追加参数,暂无内容。如拷贝此配置项到package.json文件,切记去除注释。
}
}
}
```
```
javascript
//配置uni-stat-cron的redis拓展库
{
"
name
"
:
"
uni-stat-cron
"
,
"
version
"
:
"
1.0.0
"
,
"
description
"
:
""
,
"
main
"
:
"
index.js
"
,
"
scripts
"
:
{
"
test
"
:
"
echo
\"
Error: no test specified
\"
&& exit 1
"
},
"
author
"
:
""
,
"
license
"
:
"
ISC
"
,
"
dependencies
"
:
{
"
uni-stat
"
:
"
file:../common/uni-stat
"
{
"
name
"
:
"
uni-stat-cron
"
,
"
version
"
:
"
1.0.0
"
,
"
description
"
:
""
,
"
main
"
:
"
index.js
"
,
"
scripts
"
:
{
"
test
"
:
"
echo
\"
Error: no test specified
\"
&& exit 1
"
},
"
author
"
:
""
,
"
license
"
:
"
ISC
"
,
"
dependencies
"
:
{
"
uni-stat
"
:
"
file:../common/uni-stat
"
},
"
extensions
"
:
{
"
uni-cloud-redis
"
:
{}
// 配置为此云函数开启redis扩展库,值为空对象留作后续追加参数,暂无内容。如拷贝此配置项到package.json文件,切记去除注释。
},
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
512
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 0 * * * * *
"
}
]
}
},
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
512
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 0 * * * * *
"
}
]
}
}
```
...
...
@@ -618,38 +619,38 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
| type |定时任务类型:如
`stat`
:基础数据统计 |
| time |触发时间表达式:
`* * * *`
共四位,由左到右分别代表:星期(1-7代表周一到周日)/日/时/分。例:每天晚上0点0分触发,应写作
`* * 0 0`
|
目前定时任务类型有(
以下括号内的内容表示开启分钟级统计后定时任务的触发时间
):
目前定时任务类型有(
`以下括号内的内容表示开启分钟级统计后定时任务的触发时间`
):
-
`stat`
:基础数据统计
-
实时统计,默认
每小时(0分)
触发,统计上一小时的基础数据
-
日统计,默认
每天上午1点(10分)
触发,统计前一天的基础数据
-
周统计,默认
每周一上午1点(20分)
触发,统计上一周的基础数据
-
月统计,默认
每月1号上午3点(30分)
触发,统计上一月的基础数据
-
`stat`
:基础数据统计
,统计维度包括:
-
实时统计,默认
`每小时(0分)`
触发,统计上一小时的基础数据
-
日统计,默认
`每天上午1点(10分)`
触发,统计前一天的基础数据
-
周统计,默认
`每周一上午1点(20分)`
触发,统计上一周的基础数据
-
月统计,默认
`每月1号上午3点(30分)`
触发,统计上一月的基础数据
-
`retention-device`
:设备留存数据统计
-
- 日统计,默认每天上午2点(20分)
触发,统计前一天的设备留存数据
-
- 周统计,默认每周一上午2点(30分)
触发,统计上一周的设备留存数据
-
- 月统计,默认每月1号上午4点(30分)
触发,统计上一月的设备留存数据
-
`retention-device`
:设备留存数据统计
,统计维度包括:
-
日统计,默认
`每天上午2点(20分)`
触发,统计前一天的设备留存数据
-
周统计,默认
`每周一上午2点(30分)`
触发,统计上一周的设备留存数据
-
月统计,默认
`每月1号上午4点(30分)`
触发,统计上一月的设备留存数据
-
`retention-user`
:用户留存数据统计
-
- 日统计,默认每天上午3点(40分)
触发,统计前一天的用户留存数据
-
- 周统计,默认每周一上午5点(30分)
触发,统计上一周的用户留存数据
-
- 月统计,默认每月1号上午6点(40分)
触发,统计上一月的用户留存数据
-
`retention-user`
:用户留存数据统计
,统计维度包括:
-
日统计,默认
`每天上午3点(40分)`
触发,统计前一天的用户留存数据
-
周统计,默认
`每周一上午5点(30分)`
触发,统计上一周的用户留存数据
-
月统计,默认
`每月1号上午6点(40分)`
触发,统计上一月的用户留存数据
-
`active-device`
:活跃设备数据归档
-
- 日归档,默认每天上午0点(10分)
触发,归档前一天的活跃设备数据,注意:此项数据要保持在
`基础数据统计`
、
`设备留存数据统计`
、
`用户留存数据统计`
中的周统计、月统计触发之前执行。
-
`active-device`
:活跃设备数据归档
,统计维度包括:
-
日归档,默认
`每天上午0点(10分)`
触发,归档前一天的活跃设备数据,注意:此项数据要保持在
`基础数据统计`
、
`设备留存数据统计`
、
`用户留存数据统计`
中的周统计、月统计触发之前执行。
-
`active-user`
:活跃用户数据归档
-
- 日归档,默认每天上午0点(20分)
触发,归档前一天的活跃用户数据,注意:此项数据要保持在
`基础数据统计`
、
`设备留存数据统计`
、
`用户留存数据统计`
中的周统计、月统计触发之前执行。
-
`active-user`
:活跃用户数据归档
,统计维度包括:
-
日归档,默认
`每天上午0点(20分)`
触发,归档前一天的活跃用户数据,注意:此项数据要保持在
`基础数据统计`
、
`设备留存数据统计`
、
`用户留存数据统计`
中的周统计、月统计触发之前执行。
-
`page`
:页面数据统计
-
- 日统计,默认每天上午3点(20分)
触发,统计前一天的页面数据
-
`page`
:页面数据统计
,统计维度包括:
-
日统计,默认
`每天上午3点(20分)`
触发,统计前一天的页面数据
-
`event`
:事件数据统计
-
- 日统计,默认每天上午4点(20分)
触发,统计前一天的事件数据
-
`event`
:事件数据统计
,统计维度包括:
-
日统计,默认
`每天上午4点(20分)`
触发,统计前一天的事件数据
-
`error`
:错误数据统计
-
- 日统计,默认每天上午5点(20分)
触发,统计前一天的错误数据
-
`error`
:错误数据统计
,统计维度包括:
-
日统计,默认
`每天上午5点(20分)`
触发,统计前一天的错误数据
#### 开启分钟级定时任务
...
...
@@ -665,16 +666,16 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
```
javascript
//config选项为阿里云定时器的cron表达式 将原小时级表达式 "config": "0 0 * * * * *" 更改为分钟级表达式 "config": "0 * * * * * *" 后重新上传部署云函数即可.
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
256
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 * * * * * *
"
}
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
256
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 * * * * * *
"
}
]
}
```
...
...
@@ -687,16 +688,16 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
```
javascript
//config选项为阿里云定时器的cron表达式 将原小时级表达式 "config": "0 0 * * * * *" 更改为分钟级表达式 "config": "0 * * * * * *" 后重新上传部署云函数即可.
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
256
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 * * * * * *
"
}
"
cloudfunction-config
"
:
{
"
concurrency
"
:
1
,
"
memorySize
"
:
256
,
"
timeout
"
:
600
,
"
triggers
"
:
[
{
"
name
"
:
"
uni-stat-cron
"
,
"
type
"
:
"
timer
"
,
"
config
"
:
"
0 * * * * * *
"
}
]
}
```
...
...
@@ -730,18 +731,13 @@ uni统计配置项存放于uniCloud配置中心(`uni-config-center`)下的 `
-
`分享日志:shareLog`
,默认保留
`7`
天的日志。
-
`错误日志:errorLog`
,默认保留
`7`
天的日志。
::: warning 注意事项
-
客户端和统计后台两个项目务必关联同一个服务空间,且uni-admin中所有云函数、公共模板等都已经上传部署到该服务空间
-
使用 uni 统计必须配置 APPID 才能正常使用。
[
DCloud的Appid有什么用,如需转让应用怎么做
](
https://ask.dcloud.net.cn/article/35907
)
-
应用在运行、调试时不会上报统计数据,仅在发行后,并启动新版的App、h5、小程序,才会上报数据。
-
不支持 CLI 项目
:::
::: warning 注意事项
-
客户端和统计后台两个项目务必关联同一个服务空间,且uni-admin中所有云函数、公共模板等都已经上传部署到该服务空间
-
使用 uni 统计必须配置 APPID 才能正常使用。
[
DCloud的Appid有什么用,如需转让应用怎么做
](
https://ask.dcloud.net.cn/article/35907
)
-
应用在运行、调试时不会上报统计数据,仅在发行后,并启动新版的App、h5、小程序,才会上报数据。
-
不支持 CLI 项目
:::
<!-- ## 扩展和自定义方式
uni统计提供了基础的数据报表,如不能达到预期的数据采集,可以在客户端通过
`uni.report(eventKey,param)`
自由上报数据 ,并通过 uni-admin 增加页面 ,自行统计数据。
### uni.report 基础用法
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录