-
Notifications
You must be signed in to change notification settings - Fork 81
接入埋点
在服务跑起来之后,就可以开始接入埋点了。
这里我们假设使用的是测试环境,flask直接运行。 0.0.0.0:8000 的模式
首先去神策官方下载要接入的SDK 。神策官方手册的每一种接入方式下都有下载地址
我们以web端报js为例,神策提供的官方接入地址是这样的
http://{$service_name}.datasink.sensorsdata.cn/sa?project={$project_name}&token={$project_token}
project_name是购买神策时,神策提供的项目名。按照正常的服务流程,神策提供的两个项目名分别是
default 《-用于测试
production 《-用于生产
token是云端版才有的,由神策发放。
鬼策的报法与神策官方有所不同
同样一个项目 http://localhost:8000/sa.gif?project={$project_name}&remark={remark_name}
其中 localhost:8000对应的是刚刚运行的服务
接口名的sa改为sa.gif,这样的请求在跨域时,兼容性更好。
project名是在项目初始化时,输入的项目名。
remark是标签名,建议生产环境报online,测试环境报beta,开发环境报dev+开发的名字。
这个是与神策最大的不同。神策使用项目来区分不同的环境。鬼策支持同一个项目报在一个项目的不同标记里,也支持不同项目分开报。remark就算不传,也没有影响。
对于从神策换到鬼策的用户,只需要运维调一下域名指向即可,上报端任何修改都不需要。
神策官方使用的是kudu+impala的方式,横向展表不能太多列,为了性能,把每个字段都展成一列了,一列就是一个独立的存储,且加列之后很难删除。所以测试环境和生产环境分开,能保障脏数据不进生产环境。鬼策使用的是tidb,更侧重通用性和灵活性,所有字段以json形式存储在alljson字段中,不存在横向扩展的问题,传错数据删除行即可。因此不需要分开项目,只需要打上对应的标记即可。合并统计时也容易,就算犯错,也就是重新update一下标签的问题,不需要跨库诺数据,灵活性更好。当然,副作用也比较明显,就是不通用字段提取数据的时候,是需要json扫表的,性能会受影响。尤其扫描日期范围大的时候,跟神策的性能差距指数级放大。
埋点校验可以直接查看数据库,或者使用校验接口。
"埋点校验接口" http://localhost:8000/ghost_check 必须使用POST方法请求,GET请求会被忽略
使用post方式传参,POSTMAN直接传就行,返回的是json
password <--请求时必须携带密码,没有密码请求会被忽略。密码是configs/admin.py 里配置的密码
project <-- 请求时必须携带项目名,不然会被忽略
remark <-- 识别标记,测试的时候使用什么标记,就用什么标记,如 dev_开发人员名字_开发分支
event <-- 埋点的事件名,不填则为不限
distinct_id <-- distinct_id
date <-- 上报的日期,不填则为当日
hour <-- 上报的小时,不填则为当时
order <-- 按照时间正序:asc 按照时间倒叙 desc
start <-- 返回结果从第几条显示,不填则从0开始显示
limit <-- 返回结果数量限制,不填则默认返回10条,最大不超过200条