golang 每日一庫之 gopsutil

shirou/gopsutil 是一個用 Go 語言實現的跨平臺系統信息採集庫,其設計靈感來源於 Python 的 psutil。它爲開發者提供了一套統一、簡潔的 API,用於獲取底層操作系統的各項指標數據,如 CPU、內存、磁盤、網絡、主機信息以及進程狀態等。下面我們將從多個方面詳細介紹這個庫的功能、設計特點、使用示例以及應用場景。

  1. 庫簡介

  1. 主要功能模塊

2.1 CPU 模塊

此外,結合 load 子包,還能獲取系統負載信息,如過去 1、5、15 分鐘的平均負載。

2.2 內存模塊

2.3 磁盤模塊

2.4 主機信息模塊

2.5 網絡模塊

2.6 進程模塊

2.7 Windows 服務模塊

  1. 設計特點與優勢

  1. 使用示例

以下是一個簡單的示例,展示如何使用 gopsutil 獲取內存信息:

package main
import (
    "fmt"
    "github.com/shirou/gopsutil/v4/mem"
)
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)
}

類似地,各子包(如 cpu、disk、host、net、process 等)均有詳細的示例代碼,幫助開發者快速上手使用這些 API 採集系統數據。

  1. 典型應用場景

  1. 結尾

shirou/gopsutil 作爲一個高效、跨平臺且易用的系統監控庫,大大簡化了 Go 語言開發者在系統信息採集方面的工作。

其模塊化的設計、統一的 API 接口和無 cgo 實現使得它不僅適用於單機監控,也非常適合構建分佈式監控和運維繫統。

無論是用於服務器性能監控、告警系統還是分佈式系統的性能調優,gopsutil 都能提供詳盡且可靠的數據支持,爲開發者和運維工程師帶來極大的便利。

標題:golang 每日一庫之 gopsutil
作者:mooncakeee
地址:http://blog.dd95828.com/articles/2025/03/19/1742364474636.html
聯繫:scotttu@163.com

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/01qrzZrz3HDNgNf_XTjMTQ