Skip to main content

Bugly流量监控使用教程(Android)

一、功能背景

流量监控的核心功能在于它能够实时监控应用程序的数据使用情况。通过实时监控,可以随时了解应用的数据消耗情况,及时发现流量使用异常等问题。这有助于用户避免超出数据计划或产生额外费用。此外,流量监控还能帮助用户优化应用程序的功耗,减少不必要的数据请求,提供更高效的用户体验,并延长设备的电池寿命。流量监控还具备下钻到域名级别的能力,用户可以了解哪些域名或服务消耗了大量的流量,从而采取相应的措施来优化数据传输。

二、SDK接入

流量监控的使用需要接入 4.4.1.6 之后的版本,其接入的方式与其他例如卡顿、Java内存泄漏等功能没有太大的差异,Bugly的各项监控功能一般采用客户端和后台配置共同控制的方式,也就是说客户端必须要调用如下的RMonitor.startMonitor语句,同时后台设置采样率值,这个功能才会真正开启。

2.1、专业版接入方式

在客户端,专业版SDK需要在初始化的时候执行以下语句,同时在后台配置开启流量监控功能,才会真正开启.

 buglyBuilder.addMonitor(BuglyMonitorName.TRAFFIC);
buglyBuilder.addMonitor(BuglyMonitorName.TRAFFIC_DETAIL);

Bugly.init(application, buglyBuilder);

2.2、开启成功日志

12-20 16:13:27.470 21408 21449 I TrafficMonitor: traffic monitor start

2.3、上报日志

1、10分钟流量上报日志(每10分钟上报一次)
04-22 01:04:26.665 17704 17758 D RMonitor_report_Json: url: ********************** eventName: traffic_detail, client_identify: ****6415c412a9ed43cd0f43d601****

2、进程流量指标上报日志(重启进程5分钟后上报)
04-22 01:04:26.665 17704 17758 D RMonitor_report_Json: url: ********************* eventName: traffic, client_identify: *****415c412a9ed43cd0f43*****

2.4、自定义场景流量上报接口

CustomTrafficStatistic.getInstance().addHttpToQueue(SocketInfo socketInfo);

socketInfo还有很多其他字段,统计流量只需要给以下字段来赋值,其他成员变量可以暂时忽略。

class SocketInfo {
receivedBytes; // 收到多少字节
sendBytes; // 发送了多少字节
networkType; // 网络类型,WiFi流量填1, 5G流量填2, 无网络情况填3
frontState; // 前后台状态,前台填1,后台填2
host; // 域名,例如www.baidu.com
startTimeStamp; // 网络请求开始时间戳,精确到ms
......
}

三、功能使用

3.1、指标分析

1、指标分析包含三个Tab,单次进程流量,10分钟流量以及自定义场景流量。

单次进程流量:描述的是一个进程在一次运行中所消耗的所有流量。

10分钟流量:描述的是命中采样的设备,在10分钟的监控周期内所消耗的所有流量。

自定义场景流量:描述的是业务关注的场景下,单次进程流量或者10分钟流量。

流量监控

2、三个Tab的指标都包含趋势分析、统计分布和流量归因。

1)无论单次进程流量,还是十分钟流量,一次上报算作一次样本。

2)上报量表示的就是样本量。如下图所示,上报量为37,表示共有37个上报。平均值和P25等分位值是基于这些上报样本计算。 流量监控

3、统计分布展示了这些样本在指定维度的分布情况。

1)例如,按APP版本分布,可以看到1.0.0版本上报的样本最多,占比28.04%。

2)点击查看更多后,可以看到上报明细。

流量监控 流量监控

4、流量归因当前支持域名,URL以及网络库。 流量监控

3.2、异常分析

1、在统计周期内,如果流量消耗超出配置的阈值,即判定会发生异常。

1)检测到异常后,会采集详细的连接明细,上报后台。用户可以配置自己的异常检测阈值。

配置配置字段名意义
总流量过大total_limit_in_megabyte10分钟消耗的流量超过配置的流量异常阈值
后台流量过大backend_limit_in_megabyte 在后台场景10分钟消耗的流量超过配置的后台异常流量阈值
移动流量过大mobile_limit_in_megabyte10分钟消耗的移动流量超过配置的移动异常流量阈值
自定义场景流量过大custom_limit_in_megabyte业务定义的自定义场景,流量消耗是否超过定义的阈值

2、异常分析页,展示异常的指标及趋势。

1)异常指标中,分子即异常的上报个例。分母则是,十分种流量的上报样本量。 2)当前定义的异常都是基于10分钟流量统计的结果。

流量监控

指标说明
异常次数筛选条件下的流量异常的上报量
异常率筛选条件下的流量异常的上报量/筛选条件下采样总的上报量 (10min, 只支持时间范围+app版本)
影响用户数筛选条件下的流量异常影响用户数
影响用户率筛选条件下的流量异常影响用户数/筛选条件下采样总的上报用户数 (10min)
影响设备数筛选条件下的流量异常影响设备数
影响设备率筛选条件下的流量异常影响设备数/筛选条件下采样总的上报设备数 (10min)

流量监控

3、选择筛选条件后,用户可以查看满足条件的异常个例。

1)用户可以根据异常流量,或者采集时间等维度对异常个例进行排序,以找到期望的个例进行分析。

2)点击异常个例,即可进入异常个例详情,查看连接明细。

3)个例详情的连接明细,详细展示这次统计周期内,所监控到的每一个连接的流量消耗明细。 流量监控 流量监控 流量监控

3.3、流量归因

1、无论是指标分析,还是异常分析都包含流量归因。 流量监控 流量监控

2、流量归因目标是针对消耗的流量进行归因分析。目前只支持根据域名,URL以及网络库进行归因。 流量监控

3、当前对于URL的归因,除自定义场景外的,也暂时只支持到域名级别。

4、异常个例的流量归因中,还可以点击某种归因,查看所有满足归因条件的异常个例。 流量监控

四、配置指南

1)在设置/SDK配置中,开启流量监控。

2)traffic,指单次进程流量,可以配置设备采样率。

3)traffic_detail,指十分钟流量,可以配置设备采样率,以及异常流量的阈值。

4)这些流量阈值的单位是MB。

5)建议在接入阶段,两项的设备采样率(sample_ratio)都设置为1.0,即全采样。

配置配置字段名意义
总流量过大total_limit_in_megabyte10分钟消耗的流量超过配置的流量异常阈值。
后台流量过大backend_limit_in_megabyte在后台场景10分钟消耗的流量超过配置的后台异常流量阈值。
移动流量过大mobile_limit_in_megabyte10分钟消耗的移动流量超过配置的移动异常流量阈值。
自定义场景流量过大custom_limit_in_megabyte业务定义的自定义场景,流量消耗是否超过定义的阈值。

流量监控