近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
我们日常进行项目开发时有时需要将服务器的一些基础资源信息进行展示出来,在使用Golang时如何来进行快速获取这些信息呢?本节我们就分享这样一个组件gopsutil,它可以很轻松的获取到我们需要的硬件配置信息、主机信息、docker信息、网络信息、防火墙信息等。以下就是使用它的简单案例:
package main
import (
"fmt"
"github.com/shirou/gopsutil/v3/mem"
// "github.com/shirou/gopsutil/mem" // to use v2
)
func main() {
v, _ := mem.VirtualMemory()
// almost every return value is a struct
fmt.Printf("Total: %v, Free:%v, UsedPercent:%f%%\n", v.Total, v.Free, v.UsedPercent)
// convert to JSON. String() is also implemented
fmt.Println(v)
}
支持的信息获取如下:
更多配置信息可以查看gopsutil上面提供的README,有很详细的标记其具体支持的信息获取情况。
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。