用echarts撸了个Nginx连接数监控

本文介绍了一种通过ECharts实现实时动态监控Nginx连接数的方法,并提供了完整的前端和后端代码实现。

几个月前OA系统反应超慢,流程打开和提交都要等上10几秒,经过一段时间的数据库优化和session共享式web集群的应用,终于,不再每天被领导谈话了。
系统稳定后为了监控Nginx的连接数,就开启了Nginx的status模块,但是,每次访问都得自己刷新页面获取数据,刚开始为了应急就写了静态页面定时刷新,当时的效果是这样的:
这里写图片描述
这里用JS写的定时刷新,每隔3秒刷新一次,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Nginx 连接数</title>
</head>
<body>
<iframe src="http://ip/status"></iframe>

<script>
    window.setInterval("refresh()",3000);
    function refresh() {
    
    
        self.location.reload();
    }
</script>
</body>
</html>

后来看这个页面越看越不爽,看不爽怎么办,那就做个看得爽的。这就是后面做出来的效果:
这里写图片描述
每隔5秒定时获取status的数据,这里筛选掉数据只保留了Active connections,只显示当前2个小时内的数据,历史数据可做持久化操作(本来想做的,算了下要存储的数据量1天17280条,1个月接近52万,由于用的Oracle数据库还得建个范围分区表,还要定时维护,想想就麻烦…)。

下面贴一下代码:后台获取数据用的httpclient写的方法,前台展示用的echarts
前台页面的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Nginx状态</title>

    <script src="../js/echarts.min.js"></script>
    <script src="../js/jquery.min.js"></script>
</head>
<body>
<div id="main" style="width: 100%;height:800px;"></div>
<script>
    var myChart = echarts.init(document.getElementById('main'));
    //用ajax获取数据
    function getData() {
    
    
        var url = "http://ip/status";
        var htmlobj = $.ajax({url: "ajaxAction.jsp?action=nginxNums",data:{url:url},dataType:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值