周六自己在家甚是无聊,看到朋友们在讨论分布式监控分析,要的效果是 阿里测,17ce那种形式的,想查询监控啥的时候,在一个页面上能看到所以监控点提供的数据。比如,我想要查询针对一个url的get,dig数据。在这边直接采用zabbix、nagios的数据不太合理,因为我想要是给客服和客户用的界面。 像zabbix这样,咱们只能是提前先配置好。
以前做过类似的全网监控检测,但是做的有些简陋,但也和这次聊的话题不一样,有兴趣的朋友可以看看以前的我写的关于大屏幕开发的文章。 http://rfyiamcool.blog.51cto.com/1030776/1302398
本来以为不算难的东西,只要我从前端把你要查询的节点数据给后端,然后用table展现不就行了。 自己写demo的时候,遇见了不少的问题。
真正做的时候,我发现浏览器是有线程并发限制的,firefox是6个,chrome也是6个,ie 6/7 是2个吧 。ie8 才是6个。
firefox的修改线程的方式,这里是告诉大家,这东西是可以改的。 但是对于客户来说,你不能老让他改呀。
1
2
3
4
5
6
|
// if network.http.keep-alive is true, and if NOT connecting via a proxy, then pref( "network.http.m camerabagss.us a x-persistent-connections-per-server" , 6 );
// if network.http.keep- camerabagss.us a live is true, camerabagss.us a nd if connecting vi camerabagss.us a camerabagss.us a proxy, then camerabagss.us a // new connection will only be camerabagss.us a ttempted if the number of camerabagss.us a ctive persistent // connections to the proxy is less then m camerabagss.us a x-persistent-connections-per-proxy. pref( "network.http.max-persistent-connections-per-proxy" , 8 );
|
一开始我的做法是、从这个页面确定用户要查询的监控节点。然后each遍历数据,ajax 异步执行。但这个时候,我前面说的线程数超过6个后,后面的任务会堵塞,这个堵塞会总是浏览器的崩溃。
不能让用户改线程数,不改的话,浏览器会卡掉的。不知道用websocket的方式,能不能突破浏览器的限制,以前做websockek都是分段提供的数据,一下子超过6条的堵塞数据,还真没有尝试过。
这个是刚才写的例子,li模拟了100个,结果很很卡。数据的返回是每次6个 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<script type= "text/javascript" >
$(document).ready( function (){
$( "[ id = nima ]" ).click( function (){
$( "[ id =kk] li" ). each ( function (){
// alertify.log($(this).text())
zhi=$( this ).text();
$.ajax({
type: "POST" ,
url: "/queue" ,
data : { 'key' :zhi},
async: true ,
error: function (){
alert( 'nima' );
},
success: function (data,status){
alertify.log(data);
}
});
});
});
});
</script> |
原文:http://rfyiamcool.blog.51cto.com/1030776/1390890
这个时候看了下别人的做过,他们都是把压力放到了后端。也就是说,我从前边发出了一个请求后,我会每隔一段时间去访问后端的接口,然后把数据渲染后页面上,这里会做相应的判断,已经展现的数据,我就不重复展现了,还没有展现的我继续渲染页面。
这个是后端接口返回的json数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
{ "url" : "www.youku.com" , "host" : "www.youku.com" , "srcip" : "" , "tid" : "201404_f5d00f83f4ba8ab6fab0df23fc8823a4" , "pre" : "201404" , "type" : 1 , "taskstatus" : "2" , "teststatus" : 1 , "message" : "" , "num" : "5" , "num2" : "5" ,"
xmlfile ":" "," check_time ":" "," freshdata ":{3:{" linkname ":" "," link ":" "," name ":" 上海市电信 "," isp ":" 电信 "," view ":" 上海市 "," sid ":" 3 "," SrcIP ":{" srcip ":" 101.227 . 10.19 "," ipfrom ":" 上海市 电信 "}," IP ":" 61.172 . 249.96 "," HttpCode ":" 200 "," T
otalTime ":" 0 .011s "," NsLookup ":" 0 .001s "," ConnectTime ":" 0 .001s "," downtime ":" 0 .008s "," FileSize ":" 62 .13KB "," realsize ":" 62 .13KB "," speed ":" 7 .349MB\/s "," HpptHead ":" HTTP\/ 1.0 200 OK\r<br>Expires: Sat, 05 Apr 2014 01 : 26 : 18 GMT\r<br>Cache-Control: max-age= 120 \r<br>L
ast-Modified: Sat, 05 Apr 2014 01 : 23 : 56 GMT\r<br>ETag: \" 4100116602 \"\r<br>Content-Encoding: deflate\r<br>Content-Type: text\/html\r<br>Vary: Accept-Encoding\r<br>Content-Length: 63621 \r<br>Connection: close\r<br> Date : Sat
, 05 Apr 2014 01 : 24 : 18 GMT\r<br>Server: jinjingwww01 "},32:{" linkname ":" "," link ":" "," name ":" 厦门市电信 "," isp ":" 电信 "," view ":" 福建省 "," sid ":" 32 "," SrcIP ":{" srcip ":" 183.61 . 116.212 "," ipfrom ":" 广东省广州市 电信 "}," IP ":" 222.76 . 219.7 "," HttpCode ":" 200 "
, "TotalTime" : "0.096s" , "NsLookup" : "0.001s" , "ConnectTime" : "0.018s" , "downtime" : "0.077s" , "FileSize" : "62.13KB" , "realsize" : "62.13KB" , "speed" : "805.166KB\/s" , "HpptHead" :"HTTP\/ 1.0 200 OK\r<br>Expires: Sat, 05 Apr 2014 01 : 26 : 18 GMT\r<br>Cache-Control: max-age= 120 \
r<br>Last-Modified: Sat, 05 Apr 2014 01 : 23 : 56 GMT\r<br>ETag: \" 1533679214 \"\r<br>Content-Encoding: deflate\r<br>Content-Type: text\/html\r<br>Vary: Accept-Encoding\r<br>Content-Length: 63621 \r<br>Connection: close\r<br> Date : Sat, 05 Apr 2014 01 : 24 : 18 GMT\r<br>Server:
gzwww5 "},665:{" linkname ":" "," link ":" "," name ":" 安徽移动 "," isp ":" 移动 "," view ":" 安徽省 "," sid ":" 665 "," SrcIP ":{" srcip ":" 221.181 . 195.121 "," ipfrom ":" 江苏省常州市 移动 "}," IP ":" 120.209 . 138.81 "," HttpCode ":" 200 "," TotalTime ":" 0 .052s "," NsLookup ":" 0 .001s "," ConnectTime ":" 0 .008s "," d
owntime ":" 0 .043s "," FileSize ":" 62 .13KB "," realsize ":" 62 .13KB "," speed ":" 1 .401MB\/s "," HpptHead ":" HTTP\/ 1.0 200 OK\r<br>Expires: Sat, 05 Apr 2014 01 : 26 : 18 GMT\r<br>Cache-Control: max-age= 120 \r<br>Last-Modified: Sat, 05 Apr 2014 01 : 23 : 56 GMT\r<br>ETag: \" 1952045240 \"\r<br
>Content-Encoding: deflate\r<br>Content-Type: text\/html\r<br>Vary: Accept-Encoding\r<br>Content-Length: 63621 \r<br>Connection: close\r<br> Date : Sat, 05 Apr 2014 01 : 24 : 18 GMT\r<br>Server: nj_mob_www_3 "},250:{" linkname ":" "," link ":" "," name ":" 滁州市双线 "," isp ":" 电信联通 "," view ":" 安徽省 "," sid ":" 250
"," SrcIP ":{" srcip ":" 116.211 . 115.228 "," ipfrom ":" 湖北省 电信 "}," IP ":" 27.54 . 247.9 "," HttpCode ":" 200 "," TotalTime ":" 0 .132s "," NsLookup ":" 0 .072s "," ConnectTime ":" 0 .014s "," downtime ":" 0 .046s "," FileSize ":" 62 .13KB "," realsize ":" 62 .13KB "," speed ":" 1 .327MB\/s "," HpptHead ":" HTTP\/ 1.0 200 OK\r<br>Expires: Sat, 05 A
pr 2014 01 : 26 : 18 GMT\r<br>Cache-Control: max-age= 120 \r<br>Last-Modified: Sat, 05 Apr 2014 01 : 23 : 56 GMT\r<br>ETag: \" 4217557738 \"\r<br>Content-Encoding: deflate\r<br>Content-Type: text\/html\r<br>Vary: Accept-Encoding\r<br>Content-Length: 63621 \r<br>Connection: close\r<br> Date : Sat, 05 Apr 2014 01 : 2
4 : 18 GMT\r<br>Server: whwww5 "},853:{" linkname ":" "," link ":" "," name ":" 东莞市电信 "," isp ":" 电信 "," view ":" 广东省 "," sid ":" 853 "," SrcIP ":{" srcip ":" 183.61 . 116.213 "," ipfrom ":" 广东省广州市 电信 "}," IP ":" 121.12 . 169.41 "," HttpCode ":" 200 "," TotalTime ":" 0 .037s "," NsLookup ":" 0 .003s "," ConnectTime ":" 0 .006s "," downtime ":" 0
.028s "," FileSize ":" 62 .13KB "," realsize ":" 62 .13KB "," speed ":" 2 .187MB\/s "," HpptHead ":" HTTP\/ 1.0 200 OK\r<br>Expires: Sat, 05 Apr 2014 01 : 26 : 18 GMT\r<br>Cache-Control: max-age= 120 \r<br>Last-Modified: Sat, 05 Apr 2014 01 : 23 : 56 GMT\r<br>ETag: \" 1332352621 \"\r<br>Content-Encoding: deflate\r<br>Content-Type:
text\/html\r<br>Vary: Accept-Encoding\r<br>Content-Length: 63621 \r<br>Connection: close\r<br> Date : Sat, 05 Apr 2014 01 : 24 : 18 GMT\r<br>Server: gzwww6"}},
"backdata" :[], "accuracy_backdata" :[], "time_backdata" :[], "speed_backdata" :[], "average_data" :[], "ajax_over" : 0 , "port" : 80 }
|
原文:http://rfyiamcool.blog.51cto.com/1030776/1390890
总觉得用saltstack也是可以试试的,有时间的朋友可以做些测试。 不用太复杂,用他的模块,提供url的参数就可以了。