监控网站服务质量出图学习后续篇

    前面我们已经学习过了,如何收集网站服务质量的一些相关数据,然后通过入库出图,开始打算是用rrdtool做画图,但是经过一段时间的研究,发现echarts出图合理和美观,下面贴出我实时收集到的数据和出图展示部分:

1、数据收集,并且格式化形成字典:

    

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python
# -*- coding: utf-8 -*-  
import  os,sys,json  
import  time  
import  sys  
import  pycurl 
class  Test:
     def  __init__( self ):
         self .contents  =  ''
     def  callback( self ,buf):
         self .contents  =  self .contents  +  buf
def  test_gzip(input_url):
     data  =  {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     =  Test() 
     =  pycurl.Curl()  
     c.setopt(pycurl.WRITEFUNCTION,t.callback)
     c.setopt(pycurl.ENCODING,  'gzip' )
     c.setopt(pycurl.URL,input_url) 
     c.perform()    
     NAMELOOKUPTIME  =   c.getinfo(c.NAMELOOKUP_TIME)  
     CONNECTTIME  =   c.getinfo(c.CONNECT_TIME) 
     PRETRANSFERTIME  =    c.getinfo(c.PRETRANSFER_TIME)         
     STARTTRANSFERTIME  =  c.getinfo(c.STARTTRANSFER_TIME)   
     TOTALTIME  =  c.getinfo(c.TOTAL_TIME)
     HTTPCODE  =   c.getinfo(c.HTTP_CODE)  
     SIZEDOWNLOAD  =   c.getinfo(c.SIZE_DOWNLOAD)  
     HEADERSIZE  =  c.getinfo(c.HEADER_SIZE)   
     SPEEDDOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD) 
     data[ "HTTPCODE" ] =  HTTPCODE
1
2
3
4
5
6
7
8
9
10
11
12
  data[ "NAMELOOKUPTIME" ] = "%.2f" % (NAMELOOKUPTIME * 1000 )  
      data[ "CONNECTTIME" ] = "%.2f" % (CONNECTTIME * 1000
      data[ "PRETRANSFERTIME" ] = "%.2f" % (PRETRANSFERTIME * 1000 )  
      data[ "STARTTRANSFERTIME" ] = "%.2f" % (STARTTRANSFERTIME * 1000 )
      data[ "TOTALTIME" ] = "%.2f" % (TOTALTIME * 1000 )
      data[ "SIZEDOWNLOAD" ] = "%d" % (SIZEDOWNLOAD)  
      data[ "HEADERSIZE" = "%d" % (HEADERSIZE)  
      data[ "SPEEDDOWNLOAD" ] = "%d" % (SPEEDDOWNLOAD)
      return  data  
if  __name__  = =  '__main__' :
     input_url  =  sys.argv[ 1 ]
     print  test_gzip(input_url)

2、后端处理数据,格式化输出:

1
2
3
4
5
6
7
8
9
10
11
def  pycurl(request):
         cmd  =  "python  %s/backend/pcurl.py www.shikee.com"  % ( '/yizhan/oms/app01' )
         data  =  os.popen(cmd).read()
         data = eval (data)    #这个函数害苦我了,开始怎么设置都不对,调用eval之后搞定
         NAMELOOKUPTIME = float (data[ 'NAMELOOKUPTIME' ])
         CONNECTTIME = float (data[ 'CONNECTTIME' ])
         PRETRANSFERTIME = float (data[ 'PRETRANSFERTIME' ])
         STARTTRANSFERTIME = float (data[ 'STARTTRANSFERTIME' ])
         TOTALTIME = float (data[ 'TOTALTIME' ])
         SPEEDDOWNLOAD = float (data[ 'SPEEDDOWNLOAD' ])
         return  render_to_response( 'pycurl.html' ,{ 'NAMELOOKUPTIME' :NAMELOOKUPTIME, 'CONNECTTIME' :CONNECTTIME, 'PRETRANSFERTIME' :PRETRANSFERTIME, 'STARTTRANSFERTIME' :STARTTRANSFERTIME, 'TOTALTIME' :TOTALTIME, 'SPEEDDOWNLOAD' :SPEEDDOWNLOAD})

3、出图的小代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var myChart  =  ec.init(document.getElementById( 'main' )); 
                 
                 var option  =  {
                     tooltip: {
                         show: true
                     },
                     legend: {
                         data:[ 'www.shikee.com' ]
                     },
                     xAxis : [
                         {
                             type  'category' ,
                             data : [ "DNS解析时间" , "建立连接时间" , "重定向消耗时间" , "传输结束时间" , "传输结束时间" ]
                         }
                     ],
                     yAxis : [
                         {
                             type  'value'
                         }
                     ],
                     series : [

                        {

                            "name":"服务质量图",

                            "type":"bar",

                            "data":[`NAMELOOKUPTIME`,`CONNECTTIME`,`PRETRANSFERTIME`,`STARTTRANSFERTIME`,`TOTALTIME`]

                        }

                    ]

                };

4、出的效果图:

wKiom1T3rTGx75VnAAEMLtnVfAY008.jpg

今天的效果展示暂时就到这里了










本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1617461,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值