zoukankan      html  css  js  c++  java
  • 如何获得视频直播点播服务器EasyDSS项目中的存储使用情况?

    我们的流媒体服务器EasyNVR、EasyDSS等都是分为直播版和录像版的,就拿EasyDSS来说,直播版也就是服务器本身不带云端存储功能,不需要额外的空间进行视频的录像,而录像版就是能够将直播的视频流实时存储录像。

    对于录像版的流媒体服务器EasyDSS来说,运维人员需要时刻关注着服务器的存储情况,以免出现空间过小导致无法进行视频存储、或者视频存储录像不完整的情况。

    在我们新版EasyDSS的首页,放置了很多关于服务器运行情况的模块,这些模块都是可以调用接口展示的,可以方便运维人员的信息获取。其中也包括了服务器存储情况的模块。

    对于代码层次的话需要调用psutil(进程和系统实用程序),这是一个跨平台的库,用于检索正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。之后将返回的数据进行封装,传到前端去渲染。

    代码如下,大家可以自行参考下:

    func (r *ConfigRouter) stateStore(c *gin.Context) {
       var diskData []*UsageStat
       parts, _ := disk.Partitions(true)
       for _, part := range parts {
          if usage, err := disk.Usage(part.Mountpoint); err == nil {
             us := &UsageStat{}
             us.Unit = "G"
             us.Name = usage.Path
             us.Size = fmt.Sprintf("%.2f", float64(usage.Total)/1024/1024/1024)
             us.FreeSpace = fmt.Sprintf("%.2f", float64(usage.Free)/1024/1024/1024)
             us.Used = fmt.Sprintf("%.2f", float64(usage.Used)/1024/1024/1024)
             us.Percent = fmt.Sprintf("%.2f", float64(usage.UsedPercent))
             if usage.Total != 0 {
                diskData = append(diskData, us)
             }
          }
       }
       c.AbortWithStatusJSON(http.StatusOK, diskData)
    }
    

    调用成功后,首页界面就会显示如下图的使用情况,数据清晰:

  • 相关阅读:
    关于自己主动化部署
    浅析概率中的频率学派观点和贝叶斯学派观点
    使用javascript实现浏览器全屏
    扩展BootstrapTable的treegrid功能
    jQuery Validate验证框架详解
    将数据库返回的ResultSett转换成List装Map形式的方法(ResultSetToList)
    在maven项目结构下对于Resources目录下文件的存取
    原生sql的各种问题
    nutz 自定义sql的使用
    (转)微服务架构 互联网保险O2O平台微服务架构设计
  • 原文地址:https://www.cnblogs.com/easydss/p/13353396.html
Copyright © 2011-2022 走看看