1.目标数据
收集和分析的数据主要包括
页面数据
、
事件数据、曝光数据、启动数据和错误数
据。
2.页面
页面数据主要记录一个页面的用户访问情况,包括访问时间、停留时间、页面路径等信
息。
![](https://i-blog.csdnimg.cn/blog_migrate/c88f392daff58197177b8807525d45aa.png)
1
)所有页面
id
如下
![](https://i-blog.csdnimg.cn/blog_migrate/68876fc5a83f387b9aead40ab1fb9003.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8761a292457108aaffc86fd963f127c4.png)
2
)所有页面对象类型如下:
![](https://i-blog.csdnimg.cn/blog_migrate/34a0c31a5e5e2b11b3f8ae3fd58c8ef3.png)
3
)所有来源类型如下:
![](https://i-blog.csdnimg.cn/blog_migrate/d5ba82f8fea2579719e96944876181a7.png)
3.
事件
事件数据主要记录应用内一个具体操作行为,包括操作类型、操作对象、操作对象描述
等信息
![](https://i-blog.csdnimg.cn/blog_migrate/77dfe5cc10060c9c4aeaca47bab15f50.png)
(1)
所有动作类型如下:
![](https://i-blog.csdnimg.cn/blog_migrate/2a100a6bb6cf8b8bd920ff69b7cca465.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fe3544d800d82f53bbeb3663fd37b204.png)
注:对于下单、支付等业务数据,可从业务数据库获取。
2
)所有动作目标类型如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7360271afba900de744789c1eb385d82.png)
4.曝光
曝光数据主要记录页面所曝光的内容,包括曝光对象,曝光类型等信息。
![](https://i-blog.csdnimg.cn/blog_migrate/f911b098bf6fa40d641b65fa0bed7ed2.png)
1
)所有曝光类型如下:
promotion("
商品推广
"),
recommend("
算法推荐商品
"),
query("
查询结果商品
"),
activity("
促销活动
");
2)
所有曝光对象类型如下:
sku_id("
商品
skuId"),
activity_id("
活动
id");
5.启动
启动数据记录应用的启动信息。
![](https://i-blog.csdnimg.cn/blog_migrate/f894f38f3ceacd1e279a93d369926d70.png)
1
)所有启动入口类型如下:
icon("
图标
"),
notification("
通知
"),
install("
安装后启动
");
6.错误
错误数据记录应用使用过程中的错误信息,包括
错误编号
及
错误信息
。
7.
数据埋点
目前主流的埋点方式,有
代码埋点(前端
/
后端)、可视化埋点
、
全埋点
三种。
代码埋点
是通过调用埋点
SDK
函数,在需要埋点的业务逻辑功能位置调用接口,上报
埋点数据。例如,我们对页面中的某个按钮埋点后,当这个按钮被点击时,可以在这个按钮
对应的
OnClick
函数里面调用
SDK
提供的数据发送接口,来发送数据。
可视化埋点
只需要研发人员集成采集
SDK
,不需要写埋点代码,业务人员就可以通过
访问分析平台的“圈选”功能,来“圈”出需要对用户行为进行捕捉的控件,并对该事件进
行命名。圈选完毕后,这些配置会同步到各个用户的终端上,由采集
SDK
按照圈选的配置
自动进行用户行为数据的采集和发送。
全埋点
是通过在产品中嵌入
SDK
,前端自动采集页面上的全部用户行为事件,上报埋
点数据,相当于做了一个统一的埋点。然后再通过界面配置哪些数据需要在系统里面进行分
析。
8.
埋点数据日志结构
我们的日志结构大致可分为两类,一是普通页面埋点日志,二是启动日志。
普通页面日志结构如下,每条日志包含了,当前页面的
页面信息
,所有
事件(动作)
、
所有
曝光信息
以及
错误信息
。除此之外,还包含了一系列
公共信息
,包括设备信息,地理位
置,应用信息等,即下边的
common
字段。
1
)普通页面埋点日志格式
![](https://i-blog.csdnimg.cn/blog_migrate/59de38cbe3f20e8624cb6138f18cda36.png)
![](https://i-blog.csdnimg.cn/blog_migrate/28a7e64adafd2c23567effd93296fe6c.png)
2.启动日志格式
启动日志结构相对简单,主要包含公共信息,启动信息和错误信息。
![](https://i-blog.csdnimg.cn/blog_migrate/21a87efda77fec8f2987a910d8c3ccb7.png)
9.
埋点数据上报时机
埋点数据上报时机包括两种方式。
方式一,在离开该页面时,上传在这个页面产生的所有数据(页面、事件、曝光、错误
等)。优点,批处理,减少了服务器接收数据压力。缺点,不是特别及时。
方式二,每个事件、动作、错误等,产生后,立即发送。优点,响应及时。缺点,对服
务器接收数据压力比较大。
10.服务器准备和jdk准备(省略)
11.模拟数据
1
使用说明
1
)将
application.properties
、
gmall2020-mock-log-2020-05-10.jar
、
path.json
、
logback.xml
上传到
hadoop102
的
/opt/module/applog
目录下
(
1
)创建
applog
路径
[atguigu@hadoop102 module]$ mkdir /opt/module/applog
(
2
)上传文件
2)配置文件
(
1
)
application.properteis
文件
可以根据需求生成对应日期的用户行为日志。
[atguigu@hadoop102 applog]$ vim application.properties
修改如下内容
![](https://i-blog.csdnimg.cn/blog_migrate/5d196084dcc459f4f6db6fece9c26f23.png)
(2)
path.json
,该文件用来配置访问路径
根据需求,可以灵活配置用户点击路径。
![](https://i-blog.csdnimg.cn/blog_migrate/980dae0671c1b4b76ec790a60747769e.png)
3)
logback
配置文件
可配置日志生成路径,修改内容如下
![](https://i-blog.csdnimg.cn/blog_migrate/001847bd48e24540b1b74d96b7a422b1.png)
3)生成日志
(
1
)进入到
/opt/module/applog
路径,执行以下命令
[atguigu@hadoop102 applog]$ java -jar gmall2020-mock-log-2020- 05-10.jar
(
2
)在
/opt/module/applog/log
目录下查看生成日志
[atguigu@hadoop102 log]$ ll
4.
集群日志生成脚本
在
hadoop102
的
/home/atguigu
目录下创建
bin
目录,这样脚本可以在服务器的任何目
录执行。
[atguigu@hadoop102 ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguig
u/.local/bin:
/home/atguigu/bin
1
)在
/home/atguigu/bin
目录下创建脚本
lg.sh
[atguigu@hadoop102 bin]$ vim lg.sh
2
)在脚本中编写如下内容
![](https://i-blog.csdnimg.cn/blog_migrate/9e7cc9c40310704fc2c6f2e28133aa6f.png)
注:
(
1
)
/opt/module/applog/
为
jar
包及配置文件所在路径
(
2
)
/dev/null
代表
linux
的空设备文件,所有往这个文件里面写入的内容都会丢失,俗
称“黑洞”。
标准输入
0
:从键盘获得输入
/proc/self/fd/0
标准输出
1
:输出到屏幕(即控制台)
/proc/self/fd/1
错误输出
2
:输出到屏幕(即控制台)
/proc/self/fd/2
3
)修改脚本执行权限
[atguigu@hadoop102 bin]$ chmod u+x lg.sh
4
)将
jar
包及配置文件上传至
hadoop103
的
/opt/module/applog/
路径
5
)启动脚本
[atguigu@hadoop102 module]$ lg.sh
6
)分别在
hadoop102
、
hadoop103
的
/opt/module/applog/log
目录上查看生成的数据
[atguigu@hadoop102 logs]$ ls
app.2020-06-14.log
[atguigu@hadoop103 logs]$ ls
app.2020-06-14.log