Skip to content

简介

OpenTrace 是一个基于 eBPF 的可扩展 Linux 内核可观测平台,提供网络诊断、CPU 性能剖析、IO 诊断等核心能力,支持命令行与 MCP 服务两种调用方式,具备可扩展的应用层协议解析框架,允许用户自定义开发协议解析器。

核心功能

skb 丢包追踪

追踪内核网络栈中的 skb 丢包事件,支持按协议、地址、端口等条件过滤:

bash
sudo opentrace-cli trace skbdrop -f "tcp port 80"

CPU 性能剖析

基于 perf event 的 CPU 采样,支持内核栈和用户栈的符号解析:

bash
sudo opentrace-cli perf profile --pid 1234

应用层协议解析

可插拔的协议解析框架,内置 HTTP/1.x 和 HTTP/2 支持,易于扩展自定义协议。

MCP 服务

支持通过 MCP (Model Context Protocol) 服务调用,便于集成到 AI 工具链:

bash
sudo opentrace-mcp

技术架构

┌─────────────────────────────────────────────────────────────────────────┐
│                           用户入口层                                      │
│                                                                         │
│  ┌──────────────┐  ┌─────────────────┐  ┌──────────────────────────┐   │
│  │ opentrace-cli │  │  opentrace-mcp  │  │     opentrace-agent      │   │
│  │  (命令行工具)  │  │  ┌──────┐       │  │  ┌────────┐ ┌────────┐ │   │
│  │              │  │  │ MCP  │       │  │  │Manager │ │  API   │ │   │
│  │              │  │  │(数据)│       │  │  │(Exporter│ │(REST)  │ │   │
│  └──────┬───────┘  │  └──┬───┘       │  │  │ 生命周期)│ │(axum)  │ │   │
│         │          └─────┼───────────┘  │  └────┬────┘ └────┬───┘ │   │
└─────────┼────────────────┼──────────────┼───────┼───────────┼─────┘   │
          │                │              │       │           │         │
          ▼                ▼              ▼       ▼           ▼         │
┌─────────────────────────────────────────────────────────────────────────┐
│                        opentrace-kit                                    │
│           通用 HTTP Server (axum/TLS/Auth/Health)                       │
└─────────────────────────────────────────────────────────────────────────┘
          │                │              │
          ▼                ▼              ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                            核心能力层                                     │
│                            opentrace-bpf                                 │
│    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐             │
│    │  Collector   │    │  Sink        │    │  Formatter   │             │
│    │  (eBPF采集)   │    │  (数据导出)  │    │  (格式化)    │             │
│    └──────────────┘    └──────────────┘    └──────────────┘             │
└─────────────────────────────────────────────────────────────────────────┘
组件作用
opentrace-cli命令行工具,直接调用 opentrace-bpf
opentrace-mcpMCP 服务,通过 opentrace-kit 提供 HTTP 服务
opentrace-agentAgent 服务(Prometheus 指标 + REST API)
opentrace-kit通用 HTTP 服务器框架,为 mcp/agent 提供基础设施
opentrace-server管理服务器(占位,待实现)
Collector用户态 eBPF 程序,负责挂载探针、采集内核数据
Sink数据导出器,将采集的数据发送到目标(终端/通道等)
Formatter数据格式化器,将 Event 格式化为可读字符串
Protocol应用层协议解析器,将原始字节解析为结构化帧
Symbolizer符号解析(内核/用户态/Go/Java)

下一步

基于 Apache-2.0 许可发布