当前位置: 首页 > article >正文

网络管理 详细讲解

讲一下之前获取CPU的,其余的原理和这个一样

python代码

@app.route('/cpu/')
def cpu_used():
    cpuoid=ObjectType(ObjectIdentity(myOIDs['cpu_loads']))
    ret = getTableRows((cpuoid,))
    cpuload=0
    for i in ret:
        cpuload += i[0]
    print(cpuload)
    return {'cpu':cpuload}
  var dom = document.getElementById('cpuChart');
                            var myChart = echarts.init(dom, null, {
                              renderer: 'canvas',
                              useDirtyRect: false
                            });
                            var app = {};
                            
                            var option;
                        
                            option = {
                          series: [
                            {
                              type: 'gauge',
                              axisLine: {
                                lineStyle: {
                                  width: 30,
                                  color: [
                                    [0.3, '#67e0e3'],
                                    [0.7, '#37a2da'],
                                    [1, '#fd666d']
                                  ]
                                }
                              },
                              pointer: {
                                itemStyle: {
                                  color: 'auto'
                                }
                              },
                              axisTick: {
                                distance: -30,
                                length: 8,
                                lineStyle: {
                                  color: '#fff',
                                  width: 2
                                }
                              },
                              splitLine: {
                                distance: -30,
                                length: 30,
                                lineStyle: {
                                  color: '#fff',
                                  width: 4
                                }
                              },
                              axisLabel: {
                                color: 'inherit',
                                distance: 40,
                                fontSize: 20
                              },
                              detail: {
                                valueAnimation: true,
                                formatter: '{value}%',
                                color: 'inherit'
                              },
                              data: [
                                {
                                  value: 70
                                }
                              ]
                            }
                          ]
                        };
                        var myurcpu = "http://" + window.location.host+"/cpu/";
                        setInterval(()=>{
                        fetch(myurcpu).then(res=>{
                            return res.json()
                        }).then((json)=>{
                            option.series[0].data[0].value = json.cpu;
                            myChart.setOption(option);
                        })
                        },1000)
                        
                            if (option && typeof option === 'object') {
                              myChart.setOption(option);
                            }
                        
                            window.addEventListener('resize', myChart.resize);

一.路由 

python首先定义一个路由

  

这个参数 cpu 一定是和html代码里面的参数一致

 访问这个网址的时候 python就会执行这个路由下面的函数(cpu_used())并返回这样的数据

 {'cpu':cpuload}

二.python代码

首先  ObjectType 和 ObjectIdentity 不用管  固定格式 用就完了(详细讲解在最后 不看也可以 看也没用) 里面的参数是OID ,全局字典myOIDs里面有

这个OID在MIB里面这里

值是

 

可以看出来有很多值(说明 :

. 1.3.6.1.2.1.25.3.3.1.2  这里我后面没加索引,所以函数会读所有的值

) 

执行完 cpuoid=ObjectType(ObjectIdentity(myOIDs['cpu_loads']))  之后

cpuoid   里面就是

然后

ret = getTableRows((cpuoid,))

就是获取.5 .6 .7 .8 .9  --- .20  对应的所有的值,这里有个逗号是因为这个的参数要求是元组,加一个逗号代表是元组,不然会被按运算符()处理

这样 ret里面就是这边所有的值

cpuload=0
for i in ret:
    cpuload += i[0]
print(cpuload)
return {'cpu':cpuload}

上面代码就是遍历ret 一个一个加起来就是CPU使用率了

三.html代码

首先

 定义一个div元素用来存放图表

然后就是js代码

首先通过id获取到上面的div元素,id  一定要对应起来  是cpuChart

然后就是初始化配置

里面的data就是一会我们动态获取参数后 填充的地方

最后就是获取数据

刚才也说了,这里的cpu一定要和python定义的路由一样

你可以在网址后面自己实验,加一个CPU看一下是什么结果

 

是这样的

程序也是这样获取的

所以

option.series[0].data[0].value = json.cpu;

就是把后端返回的cpu  渲染到页面上

四.ObjectIdentity,ObjectType

  1. ObjectIdentity 的作用

    • ObjectIdentity 是 pysnmp 库中用于表示 SNMP 中 MIB 对象标识符 的类。
    • 它将接收一个点分十进制格式的字符串(如 1.3.6.1.2.1.25.3.3.1.2)或者 MIB 模块和名称(如 "SNMPv2-MIB", "sysDescr", 0"),并生成对应的 SNMP 查询标识。
  2. ObjectType 的作用

    • ObjectType 接收一个 ObjectIdentity 实例,进一步包装成一个 完整的 SNMP 查询对象
    • ObjectType 主要用于发起 SNMP 请求,并在请求结果中标识数据。
    • 初始化后,cpuoid 将是一个封装了特定 OID(myOIDs['cpu_loads'])的对象,随后会在查询中被使用。

http://www.kler.cn/a/449960.html

相关文章:

  • 【ROS2】坐标TF变换工具-tf2_ros
  • Java设计模式 —— 【结构型模式】外观模式详解
  • 制造研发企业与IPD管理体系
  • 【信号滤波 (上)】傅里叶变换和滤波算法去除ADC采样中的噪声(Matlab/C++)
  • OpenHarmony的分布式服务框架介绍与实现解析
  • 华院计算参与项目再次被《新闻联播》报道
  • 网络安全(一)主动攻击之DNS基础和ettercap实现DNS流量劫持
  • BOE(京东方)“向新2025”年终媒体智享会落地成都 持续创新引领产业步入高价值增长新纪元
  • MongoDB教程001:基本常用命令(数据库操作和集合操作)
  • 跨模态知识迁移:基于预训练语言模型的时序数据建模
  • WebRTC服务质量(08)- 重传机制(05) RTX机制
  • js按首字母分组和排序
  • 【华为OD-E卷-箱子之字形摆放 100分(python、java、c++、js、c)】
  • c# 后台任务自动执行
  • springboot476基于vue篮球联盟管理系统(论文+源码)_kaic
  • 【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的?
  • 验证码机制
  • C/C++基础知识复习(43)
  • 库卡机器人维修A5轴力矩过大报警故障
  • vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,
  • skyler实战渗透笔记(十)—IMF
  • python学opencv|读取图像(十七)认识alpha通道
  • 计算机基础复习12.23
  • TSN(时间敏感网络)介绍
  • 【微服务】SpringBoot 整合Redis实现延时任务处理使用详解
  • 重温设计模式--代理模式