监控有两个方向,一个方向是服务端监控,一个方向是客户端监控的上报。
服务端的监控一般会有两种方向,一种是机器和进程本身的一种情况,它可能会涉及到硬件指标,线程数等,再就是从流量和请求方面去做监控,一般会有QPS、带宽、响应时间、成功率等
客户端的监控就比较多,因为客户端本身的信息是比较多的。请求和流量维度上报,成功率和响应时间(卡顿率),这相当于是网络层的一个监控。从业务层来看,可以有一些业务层的监控,比如说订单失败、业务请求异常等。第三部分是人工监控,我们的app里一般都会有用户反馈这样的一个模块,这个模块也可以视作灰度时的一个反馈。
客户端在做监控的时候,实际上是可以将这些监控信息以数据的形式上报到数据中心,经过聚合和运算后,可以形成一个曲线或者监控图,如果对这个监控设置一个阈值,就会形成报警。
举个例子,我现在预期全网的卡顿率是0.1,我认为全网的卡顿率升到0.12的时候就是不可接受的,就可以把这个0.12设置成一个阈值,一旦到达0.12就会触发一个监控。不同的时间段可以设置不同的阈值,比如说,在晚高峰和午高峰的时候,这个卡顿率是会上升的,监控的阈值就不可能是一个固定的值,它可能是一条曲线。