静态资源监控开发流程

目的

  1. 监控网站页面静态资源的加载时间和超时次数(每五分钟);
  2. 分类监控各种静态资源响应时间,比如img、js、css、link等;

目标

  • 选择日期、业务线、pagetype获取静态资源响应数据,展示当天、环比、同比每五分钟加载时间平均值,通过图表的形式展现;
  • 获取当天每五分钟加载失败的次数,通过图表的形式展现;

方案

  • 通过 Resource Timing API 获取静态资源加载时间,通过TJ请求发出;
  • 发出的TJ请求被DMO拦截存入hbase,并提供从hbase取数据的接口;(此处需向DMO部门提供拦截规则,且他们提供的接口只能在生产环境访问,本地无法访问,他们可以按照业务规则将数据聚合)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
示例:
create streaming iis_tj (date,time,s_sitename,s_computername,s_ip,cs_method,cs_uri_stem,cs_uri_query,s_port,cs_username,c_ip,cs_version,cs_user_agent,cs_cookie_,cs_referer,cs_host,sc_status,sc_substatus,sc_win32_status,sc_bytes,cs_bytes,time_taken) seprator as ' ';

insert into
dmo:rt_web_resourcelog

select
'm10' as _,
year(GMT_TIMEZONE,date+' '+time) as year,
month(GMT_TIMEZONE,date+' '+time) as month,
day(GMT_TIMEZONE,date+' '+time) as day,
hour(GMT_TIMEZONE,date+' '+time) as hour,
minute_window(GMT_TIMEZONE,date+' '+time,5) as minute,
map_val(str_to_map(cs_uri_query,'&'),'ch') as appname,
map_val(str_to_map(cs_uri_query,'&'),'pt') as page_type,
map_val(str_to_map(cs_uri_query,'&'),'p75') as re_initiatorType,
sum(map_val(str_to_map(cs_uri_query,'&'),'p73')) as sum_duration
from iis_tj
where "当前五分钟"
group by year,month,day,hour,minute,appname,page_type,re_initiatorType;

  • 在服务器上建立定时任务,每5分钟或者一段时间将hbase的增量数据取出,存储到mongodb;
1
2
3
4
5
6
7
示例:
1.创建定时任务:每一分钟 用户xiang.cheng 会执行 curl http://192.168.20.36:8080/storData 命令
vim /etc/crontab 加入下面的命令
*/1 * * * * xiang.cheng curl http://192.168.20.36:8080/storData
启动定时任务: /sbin/service crond start
关闭定时任务: /sbin/service crond stop
2.编码实现将hbase的数据存储到mongodb的action;
  • java从mongodb中取出数据后使用echarts展示当天、环比、同比和异常次数图表;

参考