17 | 网络优化(下):大数据下网络该如何监控?
张绍文
该思维导图由 AI 生成,仅供参考
通过上一期的学习,我们对如何打造一个高质量的网络已经有了一个整体的认识。但是这就足够了吗?回想一下,一个网络请求从手机到后台服务器,会涉及基站、光纤、路由器这些硬件设施,也会跟运营商和服务器机房有关。
不论是基站故障、光纤被挖断、运营商挟持,还是我们的机房、CDN 服务商出现故障,都有可能会引起用户网络出现问题。你有没有感觉线上经常突发各种千奇百怪的网络问题,很多公司的运维人员每天过得胆战心惊、疲于奔命。
“善良”的故障过了一段时间之后莫名其妙就好了,“顽固”的故障难以定位也难以解决。这些故障究竟是如何产生的?为什么突然就恢复了?它们影响了多少用户、哪些用户?想要解决这些问题离不开高质量的网络,而高质量的网络又离不开强大的监控。今天我们就一起来看看网络该如何监控吧。
移动端监控
对于移动端来说,我们可能会有各种各样的网络请求。即使使用了 OkHttp 网络库,也可能会有一些开发人员或者第三方组件使用了系统的网络库。那应该如何统一的监控客户端的所有的网络请求呢?
1. 如何监控网络
第一种方法:插桩。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了在大数据环境下进行网络监控的重要性和挑战。作者首先从移动端监控的角度介绍了插桩、Native Hook和统一网络库等三种监控方法,强调了实时性和复杂性对监控的影响。其次,文章讨论了流量监控的方法,包括使用TrafficStats类获取网络流量信息和通过解析proc文件获取网络相关信息的可能性。此外,还提到了对网络信号强度、电平强度等信息的探讨,以及手机厂商在底层获取信息的方式和如何判断WiFi稳定性的问题。整体而言,本文通过客户端和接入层监控的角度,详细介绍了监控报警的分层和监控方法的重要性。文章最后强调了监控在性能优化中的重要性,并鼓励读者从更高的角度思考问题。文章内容丰富,对网络运维人员和技术开发人员具有一定的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》,新⼈⾸单¥59
《Android 开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(12)
- 最新
- 精选
- csdpz我司的app在2018年有一阵子有用户持续反馈网络卡顿。终于花了点力气完善了监控。因为主要是反馈的socket那块的业务,所以对socket请求收发流程分为7个阶段进行了监控,分别是:请求调用,请求入队列,请求开始发送,请求发送成功,收到响应,响应入队列,响应数据解析分发。 当然除了客户端监控数据外,还和服务器数据整合了,能更加准确看到卡顿的占比。 客户端用的是生产者消费者加阻塞队列的模式。遇到了Tcp队头阻塞的问题。一旦进个电梯或者地下室,出现了弱网情况,请求开始发送和请求发送成功的时间差就会急剧放大,而这两个时间段之间仅仅只有一行out.write(data)。前面一个没发完,队列里的都被堵住了。 后来,准备尝试Nio的方式,把请求发送的时间给压下去,但后来想想数据好看了,并不解决实际问题,发不出去还是发不出去,于是作罢。 也想问问各位大佬,有没有好的建议?
作者回复: 弱网络的时候会尽量保证信令网络有可能成功
2019-01-254 - Jerry银银请教一个问题,对于大公司,可以自己搞个监控系统。可是对于中小型的公司,自己搞监控系统,应该不太现实, 毕竟成本巨大。 然后,我们就想着,接入一些第三方的监控平台。 不知道,你这边有推荐的?
作者回复: 一般都是一些大公司的出品比较有保障一些
2019-08-012 - Yjnull想请问网络诊断是怎样去做,有没有什么关键词我去搜索下😢
作者回复: 网络诊断一般会做几个事情: 1. 连通性诊断,分别是连接的每一个步骤 2. 问题诊断,类似ping,traceroute等操作
2019-06-211 - 奚岩公司内网服务用的购买的 https 在使用这些服务时经常会出现 timeout,但是正式环境不会,这种如何来监控解决。
作者回复: 网络监控我们会有全链路的监控,从请求发起的整个过程。具体的指标可以有类似秒开率,超时率这些
2019-02-191 - 哈珀朋友老哥是不是参加了Bugly项目
作者回复: 没有啊
2019-01-24 - zzb226520在okhttp中统计建立连接耗时,SSL握手耗时,然后为了确定统计正确,用了电脑上wireshark进行子相应过程的耗时比较。 发现,okhttp中的方法耗时比wireshark统计的耗时大很多,比如okhttp中对SSL握手方法socket.startHandSharke()的耗时可能180ms,但是wireshak显示这一步只有40-50ms。 有人做过类似统计吗?为什么跟电脑抓包对比耗时统计数据会差这么多?难道startHandSharke()不只做是SSL的握手的事,还有别的事在耗时?2019-01-2516
- EchoSomeTH这个Hook真棒!调用栈,网络请的相关参数都ALOG出来了2019-07-252
- 恒由于最近这几年都是在做跟网络相关的工作,基本上遇到的问题绍文老师都已经提到了。比如DNS劫持,超时,服务器宕机、假网、白名单等网络问题。其中让我印象最为深刻的是公司内部的wifi上网认证,没有通过认证是无法访问内网和外网。 最后解决这类问题时,我们会主动用浏览器打开认证页面让用户登录。2019-01-281
- 稻子🛋2019-01-241
- 微尘过了两年 demo 搞起来,用了半天时间2022-09-01归属地:北京
收起评论