日志处理实战:一个外卖网站解决方案(持续更新中)

背景

“我要点外卖“是一个平台型电商网站,用户、餐厅、配送员等。用户可以在网页、App、微信、支付宝等进行下单点菜;商家拿到订单后开始加工,并自动通知周围的快递员;快递员将外卖送到用户手中。

日志处理实战:一个外卖网站解决方案(持续更新中)

在运营的过程中,发现了如下的问题:

  1. 获取用户难,投放一笔不小的广告费对到渠道(网页、微信推送),收货了一些用户,但无法评判各渠道的效果
  2. 用户经常抱怨送货慢,但慢在什么环节,接单、配送、加工?如何优化?
  3. 用户运营,经常搞一些优惠活动
  4. 调度问题,如何帮助商家在高峰时提前备货?如何调度更多的快递员到指定区域?

我们希望通过该网站的案例,教会大家如何通过日志进行商业运营与决策。

挑战是什么?

  1. 日志散落在外部

    1. 多渠道:例如广告商、地推等
    2. 多终端:网页版、公众账号、手机、浏览器等
    3. 异构网络:VPC、用户自建IDC,ECS等
  2. 各业务系统标准不统一,需要分别对几个平台

第一步是什么?日志收集统一

我们需要把散落在外部、内部日志收集起来,统一进行管理。在过去这块需要大量的工作,现在可以通过日志服务统一完成接入。

  • 通过WebTracking解决推广页面H5埋点问题
  • 通过移动端SDK解决用户端数据收集问题
  • 微信Web服务器:PHP/Java SDK 写入日志
  • 业务服务器:Logtail收集

日志处理实战:一个外卖网站解决方案(持续更新中)

这里举一些例子:

微信服务端日志

2017-06-20 18:00:00, openID, opt, target, latency, status,location, network

字段 含义
time 用户操作时间段
openID
opt
target url
latency
location 地理位置信息
network 网络类型

可以用PHP SDK 或直接写到服务器硬盘中,通过Logtail收走。

新用户推广日志

2016-06-20 19:00:00 $md5_session, providerID, status

字段 含义
time 时间
$md5_session 用户Session,和注册ID关联
providerID 来源ID
params 其他参数

我们可以把h5页面中埋入providerID, paramsID 等参数,但用户扫描该页面注册时,就知道用户通过特定来源进入

客户端点击日志

2016-06-20 19:00:00 user, read, url, screen, android mi-ui, latency, status

点击日志可以从客户端收集,也能够从服务端收集,对于一些滚屏,退出等事件直接从客户端收集

其他

服务端、业务系统等日志

日志处理实战

运营活动中心

《未完待续》

反欺诈小组

《未完待续》

客服中心

《未完待续》

商业逻辑小组

《未完待续》

算法小组

《未完待续》

商家小组

《未完待续》

运维小组

《未完待续》

上一篇:Citrix4.0与.net FrameWork2.0以上版本冲突解决方案


下一篇:戴文的Linux内核专题:08内核配置(4)