监控平台的js

//datetimepicker的初始化函数(主要是对选择时间的下拉框)
function init_datetimepicker() {
//初始化格式和规则
$('#start').datetimepicker({
autoclose : true, //为true时,选择完下拉框自动关闭
format: 'yyyy-mm-dd hh:ii:ss', //选择完后,在前端展示的样式格式,尽量与后端保持一致
minView: 0, //能选择到的最小单位,0表示可以选择小时、分钟 1只可以选择小时
minuteStep:1 //最小单位的时间间隔步长,1为1秒,
});
//赋值
$('#start').datetimepicker('update', new Date()); //把开始时间更新为当前时间,可自己修改
$('#end').datetimepicker({
autoclose : true,
format: 'yyyy-mm-dd hh:ii:ss',
minView:0, //0表示可以选择小时、分钟 1只可以选择小时
minuteStep:1 //最小单位的时间间隔步长,1为1秒,
});
$('#end').datetimepicker('update', new Date()); //把结束时间更新为当前时间,可自己修改
} //获取ip的list
function get_ip_list() {
var url = host + "/monitor/api/v1/ip/list"
//访问/monitor/api/v1/ip/list获取ip
http(url, {}, 'GET', function(data){
//获取成功则按以下规则处理
console.log(data)
var html = "";
//把每一个ip拿出来,拼接成html,并加到id为ip的元素下面
for (ip in data['data']) {
html += '<option value="' + data['data'][ip] + '">' + data['data'][ip] + '</option>'
}
$('#ip').append(html)
}, function(data){
//失败的执行函数
console.log(data)
})
} //点搜索触发事件
function search() {
var url = host + "/monitor/api/v1/search"
var data = {
'start': $('#start').datetimepicker('getFormattedDate'), //获取格式化后的开始时间
'end': $('#end').datetimepicker('getFormattedDate'), //获取格式化后的结束时间
'ip': $('#ip').val() //获取ip
}
console.log(data)
http(url, data, 'GET', success, fail) //发送GET请求
} //有多少个数就生成多少个点,即x轴,获取到的监控数据在y轴
function range(data){
index = []
for (var i=0; i<=data.length-1; i++) {
index.push(i)
}
return index
} //画图函数,echarts官网提供的模板
function drawLine(id, data, title, subtext) {
var myChart = echarts.init(document.getElementById(id));
option = {
title : {
text: title,
subtext: subtext //子标题
},
tooltip : {
trigger: 'axis'
},
legend: {
data:['意向']
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
xAxis : [
{
type : 'category',
boundaryGap : false,
data : range(data)
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name: title,
type:'line',
smooth:true,
itemStyle: {normal: {areaStyle: {type: 'default'}}},
data: data //画图要用到的数据,对应传进来的data
}
]
};
// 为echarts对象加载数据
myChart.setOption(option);
} //成功拿到数据就渲染到前端
function success(data) {
console.log(data)
//定义数据
cpu = []
memory = []
send = []
receive = []
//分别取数据
for (var i=0; i<data['data'].length; i++) {
cpu.push(data['data'][i]['cpu']['avg'])
memory.push(data['data'][i]['memory']['percent'])
send.push(data['data'][i]['disk']['percent'])
receive.push(data['data'][i]['network']['packets']['sent'])
}
//渲染数据
drawLine('cpu', cpu, "处理器", "处理器使用率")
drawLine('memory', memory, "内存", "内存使用率")
drawLine('net-send', send, "网卡", "网卡发送数据")
drawLine('net-receive', receive, "网卡", "网卡接收数据")
} function fail(data) {
console.log(data)
} $(function() {
init_datetimepicker()
get_ip_list()
$('#search').click(search)
});

测开之路七十一:监控平台之js的更多相关文章

  1. 测开之路七十:监控平台之html

    监控平台的html <!-- 继承base模板 -->{% extends "base.html" %} <!-- 引入bootstrap-datetimepic ...

  2. 测开之路六十一:接口测试平台之interface蓝图

    create的js //添加header的函数function add_header() { // 这里是动态拼接html语句,带着样式,拼凑成页面的 "key [] value []&qu ...

  3. 测开之路七十七:性能测试蓝图之js

    //定义全局的editor = nullvar editor = null; //ace_editor的初始化函数function ace_editor() { var editor = ace.ed ...

  4. 测开之路七十六:性能测试蓝图之html

    <!-- 继承base模板 -->{% extends 'base.html' %} {% block script %} <!-- 从cdn引入ace edter的js --> ...

  5. 测开之路七十三:用kafka实现消息队列之环境搭建

    一:装java环境,确保java能正确调用 kafka下载地址:http://kafka.apache.org/downloads 下载并解压kafka: 新建两个文件夹,用于存放zookeeper和 ...

  6. 测开之路九十一:css常用的选择器

    一:全局选择器:* 二:标签选择器,如给所有p标签加个背景色 三:id选择器:# ,如给id为id_01的元素加一个框 四:类选择器:. 如设置一个类选择器为blue,当有标签引用blue的时候,背景 ...

  7. 测开之路八十一:参数定义之*args和**kwargs

    # *,不定长参数,*args# 定义函数参数def avg(score, *scores):    return (score + sum(scores)) / (len(scores) + 1) ...

  8. 测开之路七十九:python 文件处理和对象的写入读取

    """处理文件:open(文件名, 模式,编码) 'r' 打开阅读(默认)'w' 打开写入,首先截断文件'x' 打开独占创建,如果文件已经存在则失败'a' 打开写入,追加 ...

  9. 测开之路七十八:shell之函数和参数

    函数 function function_name(){    statement1    Statement2    ....    statementn} function_name $var1  ...

随机推荐

  1. spring data solr 搜索关键字高亮显示

    spring data solr 搜索关键字高亮显示 public Map<String, Object> highSearch(Map searchMap) { Map map = ne ...

  2. stl应用

    http://codeforces.com/problemset/problem/1154/E E. Two Teams time limit per test 2 seconds memory li ...

  3. VBA中Let与Set的区别

    Let与Set的区别 1.在“类模块”中 Property Let 语句 在Class块中,是给普通变量进行赋值操作的Property,该种Property将不能在其前面使用Set,因而将不能用户对对 ...

  4. ES6精解:变量的解构赋值

    1.数组的解构赋值 我们知道以前我们给一个变量赋值要这样如下: let a = 1; let b = 2; let c = 3; 但是ES6出来之后,我们可以这样: let [a, b, c] = [ ...

  5. python实现一个简单的网络聊天程序

    一.Linux Socket 1.Linux Socke基本上就是BSD Socket(伯克利套接字) 伯克利套接字的应用编程接口(API)是采用C语言的进程间通信的库,经常用在计算机网络间的通信.B ...

  6. Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

    一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面 ...

  7. JSP学习(5)

    JSP学习(5) 保存用户状态的两大机制 session对象 Cookie Cookie简介 是Web服务器保存在客户端的一系列文本信息 典型应用 判断注册用户是否已经登录 购物车处理 作用 对特定对 ...

  8. BZOJ1135 LYZ(POI2009) Hall定理+线段树

    做这个题之前首先要了解判定二分图有没有完备匹配的Hall定理: 那么根据Hell定理,如果任何一个X子集都能连大于等于|S|的Y子集就可以获得完备匹配,那么就是: 题目变成只要不满足上面这个条件就能得 ...

  9. 记一次 gunicorn 启动 flask 出问题的经历

    出错现象: gunicorn+nginx+flask 部署项目, 部署过程没问题,项目也正常启动了,但是一旦访问接口,就会报错: Traceback (most recent call last): ...

  10. pspice建立仿真模型元件库

    摘自:http://royroyyy.blog.163.com/blog/static/1376506172011026102216175/ PSpice9.2电子元器件模型--由网页下载的model ...