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

简介:

    前面我们已经学习过了,如何收集网站服务质量的一些相关数据,然后通过入库出图,开始打算是用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
0
234
分享
相关文章
提升前端性能体验的黄金法则
在如今互联网蓬勃发展的时代,用户对网页的性能要求越来越高。本文将介绍前端开发中的一些独特性能优化技巧,帮助开发人员提升用户体验、加速页面加载速度,以及减少资源消耗。
运用 D 语言优化公司电脑屏幕监控的性能表现
本文介绍了如何使用D语言优化公司电脑屏幕监控系统的性能,涵盖数据采集、传输及存储处理三个关键环节,通过具体代码示例展示了D语言在提高监控效率和稳定性方面的优势,以满足企业的管理和安全需求。
47 20
一手训练,多手应用:国防科大提出灵巧手抓取策略迁移新方案
【10月更文挑战第24天】国防科技大学研究人员提出了一种新颖的机器人抓取方法,通过学习统一的策略模型,实现不同灵巧夹具之间的策略迁移。该方法分为两个阶段:与夹具无关的策略模型预测关键点位移,与夹具相关的适配模型将位移转换为关节调整。实验结果显示,该方法在抓取成功率、稳定性和速度方面显著优于基线方法。论文地址:https://arxiv.org/abs/2404.09150
44 1
【性能奇迹】Wicket应用的极速重生:揭秘那些让开发者心跳加速的调优秘技!
【8月更文挑战第31天】在软件开发中,性能优化是确保应用快速响应和高效运行的关键。本书《性能调优:Apache Wicket应用的速度提升秘籍》详细介绍了如何优化Apache Wicket应用,包括代码优化、资源管理、数据库查询优化、缓存策略及服务器配置等方面。通过减少不必要的组件渲染、优化SQL查询、使用缓存和调整服务器设置等方法,本书帮助开发者显著提升Wicket应用的性能,确保其在高并发和数据密集型场景下的稳定性和响应速度。
52 0
Prometheus 监控系统常见技术问题大曝光!解决之道让你意想不到!
【8月更文挑战第5天】Prometheus是一款强大的监控工具,但在应用中常遇技术难题。案例一中,因配置错误导致CPU使用率数据不准,调整`metrics_path`可解决。案例二涉及告警规则不触发,修正表达式即可。案例三关于数据存储溢出,设置保留策略如`30d`能缓解。案例四是监控指标丢失,增强网络稳定性和添加重试机制有助于恢复。面对这些问题,细致排查与合理配置是关键。
462 0
告别重复率烦恼:论文润色降重助手帮你搞定降重!
告别重复率烦恼:论文润色降重助手帮你搞定降重!
65 0
100W用户、8000W流量在线贺卡应用架构如何优化?
100W用户、8000W流量在线贺卡应用架构如何优化?
游戏指标专业术语
游戏指标专业术语
122 0
利用可视化分析算法解析电脑屏幕监控软件性能瓶颈
想要通过可视化分析算法优化电脑屏幕监控软件性能嘛,有点复杂但还是挺关键的。提高软件的效率、减少资源占用,并提供更好的用户体验。以下是一些步骤,可以通过可视化分析算法帮助您优化电脑屏幕监控软件的性能——
179 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等