如何实现一个IOS网络监控组件

2018-12-11  本文已影响16人  yijian2595

此文由作者朱志强授权网易云社区发布。

Mobile Application Monitor IOS组件设计技术分享

背景

应用程序性能管理Application Performance Management(APM)是近年来比较火的互联网产业, Mobile Application Monitor(MAM)是其核心功能之一。 APM主要指对企业的关键业务应用进行监测、优化,它可以提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本(TCO)。 一个企业的关键业务应用的性能强大,可以提高竞争力,并取得商业成功,因此,加强应用性能管理可以产生巨大商业利益。 目前成熟的产品有:
AppDynamics NewRelic.png Tingyun.png

目标

设计模型

处理数据分4步:
数据收集,数据组装,数据持久化,数据发送
线程模型:
数据收集负责初始化MAMDataBuilder,在持久化层队列完成数据组装和数据库插入操作。
满足发送数据条件时,首先持久化层队列从数据库查找数据,然后在发送层队列中发送数据,发送结束后在持久化层队列删除该条数据,再处理下一个数据。
下图使用图形演示了程序执行过程,灰色矩形代表API接口
PosterPostRule.png

本文主要针对常用网络技术的拦截技术做全面细致的讲解和分析。

数据收集Hooker

针对IOS主要的网络技术:NSURLConnection和CFNetwork的HTTP请求做数据收集

NSURLConnection的hook

对Objective-C对象发送消息的拦截

CFNetwork的hook

对C函数调用的拦截

更多网易技术、产品、运营经验分享请访问网易云社区

相关文章:
【推荐】 MongoDB之我是怎么成为Primary节点的

上一篇 下一篇

猜你喜欢

热点阅读