高并发系统设计学习笔记(二十九) 用户的使用体验如何监控

目录

一、搭建APM系统

二、需要监控用户的哪些信息


一、搭建APM系统

APM 应用性能管理 Application Performance Management. 对应用各个层面做全方位的监测,期望及时发现可能存在的问题,并加以解决,从而提升系统的性能和可用性

首先,在数据采集方面,我们可以采用类似Agent的方式,在客户端上植入SDK,由SDK负责采集信息,并且经过采样之后,通过一个固定的接口定期发送给服务端。SDK将这几部分数据转换成JSON格式后,就可以发送给APM通道服务了 

  • 系统部分:包括数据协议的版本号,以及下面提到的消息头、端消息体、业务消息体的长度;
  • 消息头:主要包括应用的标识(appkey),消息生成的时间戳,消息的签名以及消息体加密的秘钥;
  • 端消息体:主要存储客户端的一些相关信息,主要有客户端版本号、SDK版本号、IDFA、IDFV、IMEI、机器型号、渠道号、运营商、网络类型、操作系统类型、国家、地区、经纬度等等。由于这些信息有些比较敏感,所以我们一般会对信息加密;
  • 业务消息体:也就是真正要采集的数据,这些数据也需要加密

加密的方法是这样的: 我们首先会分配给这个应用一对RSA公钥和私钥,然后SDK在启动的时候,先请求一个策略服务,获取RSA公钥。在加密时,客户端会随机生成一个对称加密的秘钥Key,端消息体和业务消息体都会使用这个秘钥来加密。那么数据发到APM通道服务后,要如何解密呢?客户端会使用RSA的公钥对秘钥加密,存储在消息头里面(也就是上面提到的,消息体加密秘钥),然后APM通道服务使用RSA秘钥解密得到秘钥,就可以解密得到端消息体和业务消息体的内容了.

最后,我们把消息头、端消息体、业务消息体还有消息头中的时间戳组装起来,用MD5生成摘要后,存储在消息头中(也就是消息的签名)。这样,APM通道服务在接收到消息后,可以使用同样的算法生成摘要,并且与发送过来的摘要比对,以防止消息被篡改


二、需要监控用户的哪些信息

一次请求过程中经历的一系列过程的时间,其中主要包括下面几项

  • 等待时间:异步调用时,请求会首先缓存在本地的队列里面,由专门的I/O线程负责,那么在I/O线程真正处理请求之前,会有一个等待的时间。
  • DNS时间:域名解析时间。
  • 握手时间:TCP三次握手的时间。
  • SSL时间:如果服务是HTTPS服务,那么就会有一个SSL认证的时间。
  • 发送时间:请求包被发送出去的时间。
  • 首包时间:服务端处理后,客户端收到第一个响应包的时间。
  • 包接收时间:我们接收到所有数据的时间

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值