相关文章推荐
温柔的上铺  ·  [Pyplot] ...·  10 月前    · 
有情有义的葡萄酒  ·  Structured ...·  1 年前    · 
讲道义的山羊  ·  sql - how to run ...·  1 年前    · 

通过nodejs 监听到cpu的使用率和内存使用率。
在vue项目中使用socket.io包获取监听的数据

nodejs后台部分

  1. 安装 npm install os-utils
  2. 引入包,监听的端口为 1111
  3. 使用io.sockets监听事件。注意:socket是连接那次的,绑定的监听事件也要写在这个上面。
  4. 然后通过os-utils提供的工具,获取相应的数据
  5. 其中on是监听事件,emit是发送事件(emit里面的事件,是让前端去监听的)
  6. start()方法可以在前端调接口再启动
    代码如下:
var os = require("os");
var io = require("socket.io").listen("1111");
var osUtils = require("os-utils");
var interval = -1;
var currCPU = 0;
io.sockets.on('connection', socket=> {//连接事件
  socket.emit("connected", "连接成功")
  console.log("连接成功")
  socket.on("disconnect",()=>{
    console.log("disconnect")
  socket.on('endConnection', function (data) {
    console.log("endConnection")
    console.log(data)
    socket.emit("unConnection", "服务器端已停止")
    clearInterval(interval)
    interval = -1;
function start(){
  updateCPU();
  if (interval < 0) {
    interval = setInterval(function () {
      var freeMem = os.freemem()/1024/1024/1024;
      var totalMem = os.totalmem()/1024/1024/1024;
      var data = {
        cpuUsage: ( currCPU * 100.0 ).toFixed(2) + "%",
        freeMem: freeMem.toFixed(2) + "G",
        totalMem: totalMem.toFixed(2) + "G",
        usedMem: (totalMem - freeMem).toFixed(2) + "G",
        MemUsage: ( (totalMem - freeMem)/totalMem * 100.0 ).toFixed(2) + "%",
      io.sockets.emit("systemUpdate",data)
      console.log(data)
    }, 1000);//每隔1s取系统数据
function updateCPU() {
  setTimeout(function () {
    osUtils.cpuUsage(function (value) {
      currCPU = value;
      updateCPU();
  }, 0);
//start() // 直接运行  
module.exports = {
  start

提供接口调用的写法供参考

var systemInfo = require('../public/javascripts/systemInfo');
router.get('/start', function(req, res, next) {
  systemInfo.start()
  const data = {
    code: 20000,
    desc: "success"
  res.send(data)

前端vue部分代码
vue.config.js中引入下面代码 ,需要先npm安装vue-socket.io

import VueSocketIO from 'vue-socket.io'
Vue.use(
  new VueSocketIO({
    debug: false,
    connection: 'http://localhost:1111'

使用socketio的vue文件

<template>
  <div class="co">
    <div class="systemInfo" :style="{height:height,width:width}" />
    <el-button @click="startConnection">连接</el-button>
    <el-button @click="endConnection">断开连接</el-button>
</template>
<script>
import { start } from '@/api/systemInfo'
export default {
  props: {
    width: {
      type: String,
      default: '100%'
    height: {
      type: String,
      default: '300px'
  data() {
    return {
      chart: null
  mounted() {
    // this.startConnection()
  sockets: {
    connected(data) {
      if (data) {
        console.log('连接成功', data)
    systemUpdate(data) {
      console.log(data)
    unConnection(data) {
      console.log(data)
      this.$socket.close()
  methods: {
    // 开启连接
    startConnection() {
      start()
      this.$socket.connect()
    endConnection() {
      this.$socket.emit('endConnection', '断开连接')
</script>

前端取到的数据,效果如下:
在这里插入图片描述

通过nodejs 监听到cpu的使用率和内存使用率。在vue项目中使用socket.io包获取监听的数据nodejs后台部分安装 npm install os-utils引入包,监听的端口为 1111使用io.sockets监听事件。注意:socket是连接那次的,绑定的监听事件也要写在这个上面。然后通过os-utils提供的工具,获取相应的数据其中on是监听事件,emit是发送事... var nei = 100*(osutils.totalmem()-osutils.freemem())/osutils.totalmem(); Log.instance.info("内存使用情况%="+nei); cpuStat.usagePerce...
获取系统cpu、gpu和内存使用情况 const nodeCMD = require('node-cmd'); const os = require('os-utils'); const serverInfo = { cpuUsage: 0, gpuUsage: 0, freeMem: 0, totalMem: 0 * 获取系统内存情况 function getMem() { serverInfo.freeMem = os.freemem() serverInfo.to
由于Node.js是异步的和非阻塞的,它确实没有利用太多的CPU 通过跟踪CPU负载和使用情况,你可以发现哪些进程是CPU密集型的。然后,你就可以通过创建子进程或分叉来解决任何潜在的风险,以减少瓶颈 using System.Diagnostics; //第一步,创建性能监视器对象: PerformanceCounter _oPerformanceCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); //第二步,获取CPU使用情况:  float _nVal = _oPerfo
WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在WebSocket API中,浏览器和服务器只需要要做一个握手(handshaking)的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 WebSocket是一个通信的协议,分为服务器和客户端。服务器放在后台,保持与客户端的长连接,完成双方通信的任务。客户端一般都是实现在支持HTML5浏览器核心中,通过提供JavascriptAPI使用网页可以建立websocket连接。Java实现的案例,请参考:Java现实WebSocket 为什么用Nodejs? 1. 事件驱动,
1、新建demo.js,输入const os = require('os'); console.log('你的剩余内存/M'+os.freemem()/1024/1024); console.log('你的CPU'+os.arch());2、命令行输入:>>node demo.js >>你的剩余内存1455.751168 >你的CPUx643、更多使用请看文档(http://nodejs.cn/a
https://www.jianshu.com/p/6123d48e8d20 https://blog.csdn.net/xiaodi520520/article/details/90302260(庚中express) 因为学习的视频课 质量太低 音频和视频居然都对不上~ 51上的78块钱的课 让人无语 说了也不改 参考了 这俩篇文章 首先socket.io 实现双向通信 仿照做... var seconds = seconds|0; var day = (seconds/(3600*24))|0; var hours = ((seconds-day*3600)/3600)|0; var minutes = ((...
https://blog.csdn.net/shiyu1157758655/article/details/103577107 在之前的监控基础上,又新加了主机监控,并且优化了agent采集器,目前agent 可以自动发现所在主机的mysql 和oracle实例信息,并且自动加入到监控列表中。 下面详细说一下主机模块: 该模块可以对主机列表、监控阈值、告警通知进行管理配置 该模块可以查看相应的主机信息,包括监控性能图。如下图所示: