监控平台的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. Trie字典树详解

    今天上午省选字符串......只会KMP.连hash都不会的我被大佬虐惨了......于是我要发奋图强学习字符串,学习字符串当然就要从Trie树这种可爱的数据结构开始啦!!! 一.什么是Trie树?? ...

  2. P2933 [USACO09JAN]气象测量The Baric Bovine

    传送门 挺显然的 $dp$ ,然鹅一开始想的是 $dfs$ 乱剪剪枝搞了 $70$ 分... 设 $f[i][j]$ 表示切了 $i$ 次,当前切的位置为 $j$ 的最小误差 那么转移显然枚举上一个切 ...

  3. Sobel硬件实现的硬件代码分析(三)

    #include "xaxivdma.h" #include "xaxivdma_i.h" #include "xhls_sobel.h" ...

  4. ElasticSearch 7.x 默认不在支持指定索引类型

    原文:ElasticSearch 7.x 默认不在支持指定索引类型 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://bl ...

  5. PC端实现浏览器点击分享到QQ好友,空间,微信,微博等

    网上现在比较流行的是JIaThis,但是测试的时候,不能分享给QQ好友,一直卡在输入验证码,以下代码亲测有效,可直接使用 <%@ page language="java" c ...

  6. win32 socket编程(五)——客户端实例(TCP)

    一.客户端操作流程 1.1 加载套接字库(WSAStartup()) 1.2创建套接字(socket()). 1.3向服务器发出连接请求(connect()). 对于客户端来说,它不需要绑定,可以直接 ...

  7. k3 cloud中获取年月日

    日期类型字段元素.Date.Year(获取年) 日期类型字段元素.Date.Month(获取月)日期类型字段元素.Date.Day(获取天)

  8. wordpress系统网站访问慢的解决方案

    从2013年5月底开始,google在中国基本处于无法访问状态,谷歌官网 域名,香港域名均无法访问,就连之前的IP访问方法也都失效,而Google Adsense打不开,恐怕做谷歌联盟的站长也要倒霉了 ...

  9. Java架构师需要掌握的技术栈

  10. 使用BaGet来管理内部Nuget包

    有的时候,我们想要制作一些nuget包,供自己内部调用,不想公开出去,那么就需要一个能够集中管理nuget包的服务了,今天我来给大家介绍一款轻便好用的包管理服务-----BaGet 下载并部署BaGe ...