南强小屋 Design By 杰米
声明:请事先到官网下载echarts,另外本文引用了adminlte模板构建前台页面
views:
<!-- /.row -->
<div class="row">
<div class="col-xs-12">
<!-- interactive chart -->
<div class="box box-primary">
<div class="box-header with-border">
<i class="fa fa-bar-chart-o"></i>
<h3 class="box-title">网络趋势</h3>
<div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i>
</button>
<button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
</div>
</div>
<div class="box-body">
<div class="row">
<div class="col-md-9">
</div>
<div class="col-md-3">
<form action="" method="post" id="net_range">
<div class="box-tools">
<div class="form-group" >
<select onchange="submitForm_net();" class="form-control select2" style="width: 100%;" name="select_net">
<span class="glyphicon glyphicon-search form-control-feedback"></span>
<option selected="selected">{{ net_range_default }}</option>
<option>0.5小时</option>
<option>1小时</option>
<option>1天 </option>
<option>7天 </option>
<option>30天 </option>
</select>
</div>
<!-- /.form-group -->
</div>
<!-- /.col -->
</form>
</div>
<!-- /.row -->
</div>
<div class="net" id="net-grow-chart" style="height: 300px;"></div>
</div>
<!-- /.box-body-->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
选择框 :
//表单提交
function submitForm_net(){
var form_net = document.getElementById("net_range");
form_net.submit();
}
ECAHRTS:
// #################### 【网络流量趋势】图形 ####################
var myChart_net_grow = echarts.init(document.getElementById('net-grow-chart'));
option_net_grow = {
title: {
text: '网络流量',
subtext: ''
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
legend: {
data:['接收流量(kbps)','发送流量(kbps)']
},
toolbox: {
show: true,
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
zlevel: 1,
data: [{% for i in netgrow_list %}'{{ i.chk_time | date:"m-d H:i:s" }}',{% endfor %}]
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value}'
},
axisPointer: {
snap: true
},
max:100,
min:0
},
series: [
{
name:'接收流量(kbps)',
type:'line',
smooth: true,
data: [{% for i in netgrow_list %}{{ i.recv_kbps }},{% endfor %}]
},
{
name:'发送流量(kbps)',
type:'line',
smooth: true,
data: [{% for i in netgrow_list %}{{ i.send_kbps }},{% endfor %}]
}
]
};
myChart_net_grow.showLoading(); //显示loading
setInterval(function () {
myChart_net_grow.hideLoading(); //显示完成后不显示loading
myChart_net_grow.setOption(option_net_grow, true);
},500);
VIEWS:
@login_required(login_url='/login')
def linux_monitor(request):
messageinfo_list = models.TabAlarmInfo.objects.all()
tagsdefault = request.GET.get('tagsdefault')
if not tagsdefault:
tagsdefault = models.TabLinuxServers.objects.order_by('tags')[0].tags
cpu_range_defualt = request.GET.get('cpu_range_default')
if not cpu_range_defualt:
cpu_range_defualt = '1小时'.decode("utf-8")
mem_range_default = request.GET.get('mem_range_default')
if not mem_range_default:
mem_range_default = '1小时'.decode("utf-8")
net_range_default = request.GET.get('net_range_default')
if not net_range_default:
net_range_default = '1小时'.decode("utf-8")
hostinfo = models.TabLinuxServers.objects.all().order_by('tags')
net_begin_time = tools.range(net_range_default)
cpu_begin_time = tools.range(cpu_range_defualt)
mem_begin_time = tools.range(mem_range_default)
end_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
netgrow = models.OsInfoHis.objects.filter(tags=tagsdefault, recv_kbps__isnull=False).filter(
chk_time__gt=net_begin_time, chk_time__lt=end_time).order_by('-chk_time')
netgrow_list = list(netgrow)
netgrow_list.reverse()
cpugrow = models.OsInfoHis.objects.filter(tags=tagsdefault, cpu_used__isnull=False).filter(
chk_time__gt=cpu_begin_time, chk_time__lt=end_time).order_by('-chk_time')
cpugrow_list = list(cpugrow)
cpugrow_list.reverse()
memgrow = models.OsInfoHis.objects.filter(tags=tagsdefault, mem_used__isnull=False).filter(
chk_time__gt=mem_begin_time, chk_time__lt=end_time).order_by('-chk_time')
memgrow_list = list(memgrow)
memgrow_list.reverse()
diskinfos = models.OsFilesystem.objects.filter(tags=tagsdefault)
try:
osinfo = models.OsInfo.objects.get(tags=tagsdefault)
except models.OsInfo.DoesNotExist:
osinfo = models.OsInfoHis.objects.filter(tags=tagsdefault,cpu_used__isnull=False).order_by('-chk_time')[0]
if request.method == 'POST':
if request.POST.has_key('select_tags') or request.POST.has_key('select_cpu')or request.POST.has_key('select_mem') or request.POST.has_key('select_net'):
if request.POST.has_key('select_tags'):
tagsdefault = request.POST.get('select_tags', None).encode("utf-8")
elif request.POST.has_key('select_net'):
net_range_defualt = request.POST.get('select_net',None)
elif request.POST.has_key('select_cpu'):
cpu_range_defualt = request.POST.get('select_cpu',None)
elif request.POST.has_key('select_mem'):
mem_range_default = request.POST.get('select_mem', None)
return HttpResponseRedirect('/linux_monitor"text-align: center">
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米
暂无django+echart绘制曲线图的方法示例的评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。