一、功能说明
·原生层网络监控是基于 NSURLSession 通过 hook 对网络请求进行的一种监控能力,包括状态跟踪、响应处理、错误捕获等。
·大模型 SSE 监控是通过扩展 NSURLSession 的代理方法及数据流任务配置,实现对 SSE(Server-Sent Events)的持续事件流监控,包括实时数据接收。
·默认拨测监控是基于 NSURLSession 进行网络请求后,根据不同的网络状态,包括但不限于慢错条件后而触发拨测功能的监控。
二、代码示例
以原生网络监控设置接口为例,在进行 QAPM 的 SDK 初始化 时加入如下代码。
/*** 网络监控功能的相关接口设置*///设置域名黑名单,以下域名将不会被监控[[QAPMConfig getInstance] addHttpBlackDomain:@[@"www.qq.com"]];//设置域名白名单,只有白名单中的域名才会被监控[[QAPMConfig getInstance] addHttpWhiteDomain:@[@"www.baidu.com"]];//设置响应 header 黑名单,在黑名单中的 header key 将不会采集上报[[QAPMConfig getInstance] addHttpBlackDomain:@[@"authorization"]];/*** SSE大模型监控的相关接口设置*/// 设置当前大模型名称[[QAPMConfig getInstance] setCurrentLLM:@"hunyuan"];/*** 全链路监控相关接口的设置*/// 设置为 YES 后,将打开全链路监控开关[QAPMConfig getInstance].isOpenTrace = YES;//设置需要注入请求头的请求 url,以下域名将会被注入请求头[QAPMConfig getInstance].injectTraceUrls = @[@"www.qq.com"];//设置不需要注入请求头的请求 url,以下域名将不会被注入请求头[QAPMConfig getInstance].injectTraceIgnoreUrls = @[@"www.baidu.com"]//设置需要注入请求头的请求 RegExp,以下 RegExp 将会被注入请求头[QAPMConfig getInstance].injectTraceUrlsByRegex = @[@"www\\\\.qq\\\\.com"];//设置不需要注入(忽略)请求头的请求 RegExp,以下 RegExp 将不会被注入请求头[QAPMConfig getInstance].injectTraceIgnoreUrlsByRegex = @[@"www\\\\.baidu\\\\.com"];/*** 默认拨测相关接口的设置*///设置为 YES 后,会打开默认拨测功能的开关[QAPMConfig getInstance].isDefaultDialEnable = YES;
三、校验功能是否正常
·检索 Plugin:42。原生网络监控数据聚合上报,每1min上报一次,如打印以下日志,则代表原生网络监控数据上报成功。
·大模型 SSE 监控数据请求一条上报一条,如打印以下日志,则代表大模型 SSE 监控数据上报成功。
"category" : "PERF_NET_SSE"