登录 注册

gopsutil

去点 Star
其他 gogolangsystem-information
11,941
Stars
1,694
Forks
206
Watchers
230
Open Issues
NOASSERTION
许可证
Go
语言
2014-04-18
创建时间
2026-11-12
最近更新

项目能做什么

Go 语言实现的系统监控与进程管理库(Go 版 psutil)。
来源:AI 基于仓库事实生成 · 内容以仓库实际 README 为准

使用说明 查看原始 README 原仓库文档

中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# gopsutil: psutil for Go

[![Test](https://github.com/shirou/gopsutil/actions/workflows/test.yml/badge.svg)](https://github.com/shirou/gopsutil/actions/workflows/test.yml) [![Go Reference](https://pkg.go.dev/badge/github.com/shirou/gopsutil/v4.svg)](https://pkg.go.dev/github.com/shirou/gopsutil/v4) [![Calendar Versioning](https://img.shields.io/badge/calver-vMAJOR.YY.MM-22bfda.svg)](https://calver.org/)

This is a port of psutil (https://github.com/giampaolo/psutil). The
challenge is porting all psutil functions on some architectures.

## migration

### v4 migration

There are some breaking changes. Please see [v4 release note](https://github.com/shirou/gopsutil/releases/tag/v4.24.5).

## Tag semantics

gopsutil tag policy is almost same as Semantic Versioning, but
automatically increases like [Ubuntu versioning](https://calver.org/).

For example, v4.24.04 means

- v4: major version
- 24: release year, 2024
- 04: release month

gopsutil aims to keep backwards compatibility until major version change.

Tagged at every end of month, but if there are only a few commits, it
can be skipped.

## Available Architectures

- FreeBSD i386/amd64/arm
- Linux i386/amd64/arm(raspberry pi)
- Windows i386/amd64/arm/arm64
- Darwin amd64/arm64
- OpenBSD i386/amd64/armv7/arm64/riscv64 (Thank you @mpfz0r!)
- Solaris amd64 (developed and tested on SmartOS/Illumos, Thank you @jen20!)

These have partial support:

- CPU on DragonFly BSD (#893, Thank you @gballet!)
- host on Linux RISC-V (#896, Thank you @tklauser!)

All works are implemented without cgo by porting C structs to Go structs.

## Usage

```go
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)
}
```

The output is below.

    Total: 3179569152, Free:284233728, UsedPercent:84.508194%
    {"total":3179569152,"available":492572672,"used":2895335424,"usedPercent":84.50819439828305, (snip...)}

You can set alternative locations for various system directories by using the following environment variables:

- /proc: `HOST_PROC`
- /sys: `HOST_SYS`
- /etc: `HOST_ETC`
- /var: `HOST_VAR`
- /run: `HOST_RUN`
- /dev: `HOST_DEV`
- /: `HOST_ROOT`
- /proc/N/mountinfo: `HOST_PROC_MOUNTINFO`

### Adding settings using `context` (from v3.23.6)

As of v3.23.6, it is now possible to pass a path location using `context`: import `"github.com/shirou/gopsutil/v3/common"` and pass a context with `common.EnvMap` set to `common.EnvKey`, and the location will be used within each function.

```
	ctx := context.WithValue(context.Background(), 
		common.EnvKey, common.EnvMap{common.HostProcEnvKey: "/myproc"},
	)
	v, err := mem.VirtualMemoryWithContext(ctx)
```

First priority is given to the value set in `context`, then the value from the environment variable, and
阅读完整原文

项目深度分析 AI 生成

极简跨平台边缘/独立主机监控系统(轻量级 SaaS)

产品构想利用 gopsutil 无 cgo 依赖的特性,构建仅几 MB 大小的单文件监控 Agent,采集多架构节点(如 Raspberry Pi, Windows Server, Linux VPS)指标并上报给极简看板。
核心功能单二进制采集探针、低 CPU/内存占用、系统资源(CPU/内存/磁盘/进程)大盘、邮件/WebHook 异常告警、多平台支持(包含 ARM/Windows)。
目标用户中小企业站长、独立开发者、轻量级边缘节点运维团队。
难度/周期中等 · 1-2 个月 · 成本:极低(云服务器与时序存储成本)
收费模式Freemium 模式(免费支持 3-5 台节点,超出节点按月/年订阅计费)。
竞争风险面对 Node Exporter/Datadog 等成熟方案竞争激烈,功能深度不足可能难留存用户。
依据 已验证事实

跨平台主机合规与进程安全审计探针(企业安全工具)

产品构想基于 gopsutil 深度提取系统运行环境、开机时间、敏感目录挂载与异常进程特征,输出符合安全合规要求的审计报告工具。
核心功能未知进程监测、系统资产快照比对、平台专有指标提取(基于 Ex struct)、基线安全巡检与导出报表。
目标用户需要过安全合规(如 SOC2, ISO27001)的中小型出海企业、混合平台(Windows/Linux 混部)内网 IT 运维。
难度/周期中等 · 2-3 个月 · 成本:低(开发环境与跨平台测试机器)
收费模式企业买断授权或年付按被纳管主机数量授权许可。
竞争风险安全专业壁垒较高,需要对主机入侵防御和合规标准有较多业务认知(推测)。
依据 尚需验证的假设

私有化轻量级 APM / 性能剖析分析探针 SDK(面向内网开发)

产品构想为内网微服务或嵌入式/边缘 Go 服务提供内置开箱即用的系统状态暴露 SDK 与开箱即用小组件,无需安装庞大的外部 Agent 即可嵌入业务服务中输出系统瓶颈分析。
核心功能非侵入式 Go SDK、动态自适应 Proc 路径注入(基于 Context/EnvMap 特性)、低资源消耗告警触发器。
目标用户受限网络/内网开发团队、Go 微服务开发团队、无 root 权限的应用运维人员。
难度/周期较低 · 2-4 周 · 成本:极低
收费模式核心开源 + 付费技术支持服务,或提供商业化分析 UI 面板组件。
竞争风险开源替代方案极多(如 Prometheus client_golang),纯 SDK 类产品收费阻力大。
依据 数据支持的判断
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心

竞品与相似项目 GitHub Search 真实检索

项目中文简介Stars语言
avelino/awesome-go 中文介绍暂未生成
A curated list of awesome Go frameworks, libraries and softw
193,476 Go
golang/go 中文介绍暂未生成
The Go programming language
139,864 Go
krahets/hello-algo 中文介绍暂未生成
《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語,提供 Python
132,262 Python
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。

项目优势与风险

技术成熟度创建于 2014-04-18,近 30 天仍在推送,发布过 51 个 Release
社区活跃Star 11,941 / Fork 1,694 / Issue 230(数据支持,可自行核实)
许可证NOASSERTION
主要风险上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价

安装与使用

此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。