网络监控小结

摘要

记录一下近期添加的网络监控。

背景

近期,从产品体验上看,有些业务场景的等待时间有点长,应该可以继续优化;于是开始分析整体耗时,包括处理逻辑与网络耗时,业务逻辑分析略过,与今天主题没关系,这个网络耗时就复杂一点,因为整个网络层是好几层封装在一起的,需要了解各个层的耗时情况,我总不能一个个地方去打信息,再查看信息的时间差,不否认,这是一个方法,但它不是“省油的灯”,原因各位自己YY,这时我得想一个方法,用来监控网络层。

思路

为了满足自己的好奇心,我重新回顾了一下封装的网络层的架构:

1)对外一个代理层

2)中间有控制层(一个或多个)

3)最内部是网络协议层

对于应用层来说,关心的是请求到回调的时长, 而网络模块内部的时间除了核心的网络通讯时间外,还有多个控制层的耗时。

我的思路:对于同一个请求,模块内的请求包可以贯穿整个流程,可以在各个节点上打上时间戳,最终在代码层回调前可得到各个环节的时间点,也就可以得到每层的耗时时长(见下图)。

应用层关心的时长为 du = T6 - T1

网络层调用流程图

延伸

用这种方式可以监测网络层的健康程度,统计网络通讯耗时等

这个想法本来只是个人需求,上线后,数据一出来,不仅给客户端提供了帮助,服务器也需要利用这些数据做相应监控;
之后又在这一想法的基础之后增加了一些细分的监控。

小结

以上是我的一个小小经历,也许方法不是最好的,但是对我是适用的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,008评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,859评论 2 59
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,547评论 8 265
  • 蛊 百合花 最世俗的表达 穿越百年山谷 洁白犹初 妖冶如蛊 一剑千年 穿心成雕塑 惑 薰衣草 重逢久别的殇 摇曳世...
    福娃蜜妈阅读 341评论 13 16
  • 扪心自问,曾经真的是得过且过吧……不想努力,害怕努力没有收获;不想尝试自己不敢的事,害怕动作滑稽会被嘲笑;不想改变...
    南又城阅读 230评论 0 0