Skip to content

mitojs/node

work in progress 🚧

正在开发中,感兴趣可以加入我们 飞书群

MitoJS Node(README 由 AI 生成)

一个强大的 Node.js 性能监控和调试工具套件,提供实时性能分析、内存监控和代码调试功能。

🚀 特性

  • 性能分析: CPU 性能分析、堆快照、内存使用监控
  • 实时监控: 实时 CPU 使用率监控
  • 代码调试: 支持在目标进程中运行代码
  • 跨平台: 支持 macOS、Linux、Windows
  • CLI 工具: 提供命令行界面,易于集成到开发流程
  • Rust 代理: 高性能的 Rust 代理程序,提供稳定的数据处理能力

📦 包结构

本项目采用 monorepo 架构,包含以下核心包:

  • @mitojs/node: Node.js SDK,提供性能监控的核心功能
  • @mitojs/node-cli: 命令行工具,提供交互式的调试和监控界面
  • agent: Rust 编写的高性能代理程序,负责数据处理和 IPC 通信

🛠 安装(开发中)

使用 npm

npm install @mitojs/node @mitojs/node-cli

使用 pnpm

pnpm add @mitojs/node @mitojs/node-cli

使用 yarn

yarn add @mitojs/node @mitojs/node-cli

🚀 快速开始

1. 在你的 Node.js 应用中集成 SDK

// 在应用入口文件中引入
import '@mitojs/node'

// 或者手动初始化
import { init } from '@mitojs/node'

async function startApp() {
  await init()
  // 你的应用代码
}

startApp()

2. 使用 CLI 工具监控应用

# 获取进程的 CPU 性能分析(10秒)
mito-node cpuprofile -p <pid> -d 10000

# 获取堆快照
mito-node heapsnapshot -p <pid> -d ./snapshots

# 实时监控 CPU 使用率
mito-node monitor-cpu -p <pid>

# 获取内存信息
mito-node memory -p <pid>

# 在目标进程中运行代码
mito-node run-code -p <pid> -c "console.log('Hello from target process')"

# 从文件运行代码
mito-node run-code -p <pid> -f ./debug-script.js

📋 CLI 命令详解

命令 描述 选项
cpuprofile 获取 CPU 性能分析文件 -d, --duration <ms> 分析持续时间(默认10000ms)
heapsnapshot 获取堆快照 -d, --dir <dir> 保存目录(默认当前目录)
memory 获取内存使用信息
monitor-cpu 实时监控 CPU 使用率
run-code 在目标进程中执行代码 -c, --code <code> 代码字符串
-f, --file <file> 代码文件
start-inspect 开始调试目标进程
stop-inspect 停止调试目标进程
report 生成进程报告 -d, --dir <dir> 保存目录(默认当前目录)

🏗 开发

环境要求

  • Node.js >= 20
  • pnpm >= 10
  • Rust (用于构建 agent)

安装依赖

pnpm install

构建项目

# 构建所有包
pnpm build

# 仅构建 TypeScript
pnpm esm

# 仅构建 Rust agent
pnpm build:rust

开发模式

# 监听模式构建
pnpm watch:esm

# 启动 React 19 示例应用
pnpm web:dev

运行测试

pnpm test

🏛 架构

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Node.js App   │    │   CLI Tool      │    │   Rust Agent    │
│                 │    │                 │    │                 │
│  @mitojs/node   │◄──►│@mitojs/node-cli │◄──►│   IPC + HTTP    │
│                 │    │                 │    │                 │
│   SDK集成       │    │   命令行界面    │    │   数据处理      │
└─────────────────┘    └─────────────────┘    └─────────────────┘

核心组件

  1. Node.js SDK (@mitojs/node)

    • 自动初始化 Rust 代理
    • 提供性能监控 API
    • 跨平台二进制文件管理
  2. CLI 工具 (@mitojs/node-cli)

    • 基于 Commander.js 的命令行界面
    • 使用 Ink + React 的交互式 UI
    • WebSocket 通信支持
  3. Rust 代理 (agent)

    • 高性能数据处理
    • IPC 进程间通信
    • HTTP 服务器
    • 跨平台编译支持

🤝 贡献

欢迎贡献代码!请查看 CONTRIBUTING.md 了解详细信息。

📄 许可证

MIT License - 查看 LICENSE 文件了解详细信息。

About

A Lite SDK And Cli For Monitoring Node.js, Sidercar Agent Write By Rust(Work In Progress)

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •