Gospy

Gospy

🚀 Go 进程 inspector

Go 进程 inspector 是一个强大的工具,用于检查和分析运行中的 Go 进程。它能提供 goroutine 状态、内存统计信息和二进制信息,帮助开发者深入了解进程运行情况。

🚀 快速开始

你可以通过以下命令进行安装:

go install github.com/monsterxx03/gospy@latest

CLI 接口使用示例

# 交互式终端 UI
sudo gospy top --pid <进程 ID>

# HTTP API 服务器
sudo gospy serve --port 8974

# 获取进程摘要
sudo gospy summary --pid <进程 ID>

# 在 JSON 格式下获取进程摘要
sudo gospy summary --pid <进程 ID> --json

摘要命令选项说明

  • --pid/-p - 目标进程 ID(必需)
  • --bin/-b - 可执行文件路径(可选)
  • --json/-j - 以 JSON 格式输出结果

API 端点使用

  • GET /goroutines?pid= - 列出所有 goroutine
  • GET /memstats?pid= - 获取内存统计信息
  • GET /runtime?pid= - 获取运行时版本信息

MCP 服务器使用

MCP 服务器提供了一个 SSE(Server-Sent Events)端点。要启用:

>>> sudo gospy serve --enable-mcp --port 8974

启动 API 服务器,监听端口 8974
端点:
GET /runtime?pid=     - 获取运行时信息
GET /goroutines?pid= - 获取 goroutine 列表
GET /memstats?pid=   - 获取内存统计
GET /mcp/sse   - MCP SSE 端点

可用的 MCP 工具:

  • goroutines - 转储 Go 进程中的 goroutine
  • gomemstats - 转储内存统计信息
  • goruntime - 获取运行时信息
  • pgrep - 根据进程名称查找 PID

配置在光标中

终端 UI 控制说明

  • q - 退出
  • r - 刷新数据
  • s - 暂停/恢复 top 视图
  • / - 搜索/过滤 goroutine

终端 UI 截图展示

✨ 主要特性

  • 查看详细的 goroutine 信息(状态、调度信息)
  • 分析进程内存统计
  • 支持跨平台(Linux 和 macOS)
  • 终端 UI 提供交互式检查
  • HTTP API 实现程序化访问(sse 端点用于 MCP 服务器)

📦 安装指南

通过以下命令可以完成安装:

go install github.com/monsterxx03/gospy@latest

如果你想从源代码构建,可按以下步骤操作:

git clone https://github.com/monsterxx03/gospy.git
cd gospy
make

💻 使用示例

基础用法

# 交互式终端 UI
sudo gospy top --pid <进程 ID>

高级用法

# 以 JSON 格式获取进程摘要
sudo gospy summary --pid <进程 ID> --json

🔧 技术细节

要求

  • Go 1.20+ 版本
  • Linux 或 macOS(仅限 Apple Silicon)
  • 根权限(读取进程内存所需)

根权限说明

gospy 需要根权限来:

  • 读取进程内存 (/proc/ /mem on Linux)
  • 访问 macOS 的 Mach API

使用 sudo 运行:

sudo gospy top --pid <进程 ID>

对于开发/调试,可能需要:

  1. 先构建二进制文件:make
  2. 使用 sudo 运行:sudo ./gospy [命令]

📄 许可证

本项目采用 MIT 许可证,有关详细信息,请参阅 LICENSE 文件。

致谢

版本 0.7.0 完全从头开始重写,并由 aider 完成,编写了 >90% 的代码。其他协助来自:

  • DeepSeek(R1 + V3 模型)- AI 编码助手

总 AI 计算成本:~$2 美元

  • 0 关注
  • 0 收藏,26 浏览
  • system 提出于 2025-10-06 06:36

相似服务问题

相关AI产品