Zebra业务回顾
zebra业务回顾
zebra项目最开始阶段会对日志文件进行分析统计,针对apptype,userip等20个字段做了统计,然后把最后的结果落地到数据库里。这张表相当于总表(f_http_app_host)
在企业里做到这步并没有结束,因为后续还要做数据分析,可能会针对此表进行多个维度的查询和统计,比如:
1.应用欢迎度
2.各网站表现
3.小区Http上网能力
4.小区上网洗好
所以我们可以根据以上四个维度,建立对应的表,并从f_http_app_host 取出对应的数据,然后做统计,最后交给前端做数据可视化的工作。比如下图是针对应用受欢迎程度的数据可视化图:
下图展示了前10名最受欢迎应用,是根据每个应用产生的总量来统计的(一般来说,流量越大,用户越多)
一、应用欢迎度表说明
建表语句:
create table D_H_HTTP_APPTYPE(
hourid datetime, apptype int, appsubtype int, attempts bigint, accepts bigint, succratio double, trafficul bigint, trafficdl bigint, totaltraffic bigint, retranul bigint, retrandl bigint, retrantraffic bigint, failcount bigint, transdelay bigint
);
业务说明
2016年10月25日 20:10
数据以| 分割后,每个数据的含义(仅展示项目里用到的字段数据)
应用大类App Type
应用小类App sub-type
DPI设备子业务识别能力要求(部分)
业务字段处理逻辑
HttpAppHost hah = new HttpAppHost();
hah.setReportTime(reportTime);
//上网小区的id
hah.setCellid(data[16]);
//应用类hah.setAppType(Integer.parseInt(data[22]));
//应用子类hah.setAppSubtype(Integer.parseInt(data[23]));
// 用 户 ip hah.setUserIP(data[26]);
// 用 户 port hah.setUserPort(Integer.parseInt(data[28]));
//访问的服务ip
hah.setAppServerIP(data[30]);
// 访 问 的 服 务 port hah.setAppServerPort(Integer.parseInt(data[32]));
//域名hah.setHost(data[58]);
int appTypeCode = Integer.parseInt(data[18]);
String transStatus = data[54];
int appTypeCode = Integer.parseInt(data[18]);
String transStatus = data[54];
//业务逻辑处理
if (hah.getCellid() == null || hah.getCellid().equals("")) {
hah.setCellid("000000000");
}
if (appTypeCode == 103) {
hah.setAttempts(1);
}
if (appTypeCode == 103
&&