# ketones **Repository Path**: openkylin/ketones ## Basic Information - **Project Name**: ketones - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 7 - **Created**: 2023-05-17 - **Last Updated**: 2025-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ketones **内核 eBPF 追踪与可观测性原生引擎套件** 现代化高性能 eBPF 工具包,提供 186 个监控和可观测性工具,专为 Linux 系统设计。 Ketones 作为 BCC 的简化替代方案,提供增强的内核可观测性能力,针对生产环境优化。 [![构建状态](https://img.shields.io/badge/build-passing-brightgreen)](#) [![平台](https://img.shields.io/badge/platform-Linux-blue)](#) [![架构](https://img.shields.io/badge/arch-x86__64%20%7C%20ARM64%20%7C%20LoongArch-orange)](#) [![许可证](https://img.shields.io/badge/license-LGPL--3+-green)](#) ## 🚀 核心特性 - **186 个工具**:130 个二进制工具 + 56 个软链接别名 - **零编译依赖**:为容器环境提供预编译二进制文件 - **现代构建系统**:简化的 `APPS += tool-name` 架构 - **BCC 替代**:功能增强的直接替代方案 - **多架构支持**:支持 x86_64、ARM64 和 LoongArch - **容器就绪**:为容器化部署优化 ## 📊 工具分类 ### 网络监控 ```bash tcpconnect, tcpaccept, tcplife, tcpdrop, tcpretrans, tcpstates tcplinks, tcpmemory, tcpsubnet, tcptracer, tcpcong, tcpsynbl ``` ### 文件系统分析 ```bash fslatency → ext4latency, btrfslatency, xfslatency, nfslatency... fsslower → ext4slower, btrfsslower, xfsslower, nfsslower... fsdist → ext4dist, btrfsdist, xfsdist, nfsdist... ``` ### 性能分析 ```bash profile, cpudist, cpufreq, offcputime, funclatency, funccount runqlen, runqslower, biolatency, biopattern, biostacks ``` ### 应用程序追踪 ```bash ucalls → javacalls, pythoncalls, rubycalls, perlcalls... uflow → javaflow, pythonflow, rubyflow, perlflow... ugc → javagc, pythongc, rubygc, nodegc... ``` ### 系统安全 ```bash capable, bindsnoop, sslsniff, ttysnoop, execsnoop, exitsnoop ``` ## 🛠️ 快速开始 ### 系统依赖 **Ubuntu/Debian/openKylin:** ```bash sudo apt install clang llvm make gcc libelf-dev libbpf-dev # 特定工具可选依赖 sudo apt install libncurses-dev libbfd-dev libssl-dev ``` **RHEL/CentOS/Fedora/openEuler:** ```bash sudo yum install clang llvm make gcc elfutils-libelf-devel libbpf-devel sudo yum install ncurses-devel binutils-devel openssl-devel # 可选依赖 ``` ### 构建与安装 ```bash # 克隆仓库 git clone https://gitee.com/openkylin/ketones.git cd ketones # 构建所有工具(支持并行构建) make -j$(nproc) # 安装到系统 sudo make install # 或安装到自定义目录 make install DESTDIR=/opt/ketones ``` ### 构建特定工具 ```bash # 构建单个工具 make retsnoop tcpconnect fslatency # 详细构建输出 make V=1 retsnoop # 清理构建 make clean ``` ## 📖 使用示例 ### 网络监控 ```bash # 监控新建 TCP 连接 sudo tcpconnect # 追踪慢速文件系统操作 sudo ext4slower 10 # 显示 > 10ms 的操作 # 带调用栈的 CPU 性能分析 sudo profile -f 99 30 # 99Hz 采样 30 秒 ``` ### 容器集成 ```bash # Docker 部署 docker run --privileged --pid=host \ -v /lib/modules:/lib/modules:ro \ -v /sys:/sys:ro \ ketones/toolkit tcpconnect # Kubernetes DaemonSet 部署 kubectl apply -f deploy/ketones-daemonset.yaml ``` ## 🏗️ 开发指南 ### 添加新工具 1. **添加到工具列表**(在 `build/tools.mk` 中按字母顺序): ```makefile APPS += my-new-tool ``` 2. **配置特殊需求**(如需要): ```makefile # src/my-new-tool/Makefile EXTRA_LDFLAGS := -lssl SYMLINKS := alias1 alias2 include ../../build/subdir.mk ``` ### 构建系统架构 ``` ketones/ ├── build/ # 现代构建系统 │ ├── README_zh.md # 构建系统文档 │ ├── tools.mk # 工具定义(字母排序) │ ├── rules.mk # 构建规则和模板 │ └── config.mk # 构建配置 ├── src/ # 源代码 │ ├── bin/ # 构建输出 │ ├── include/ # 公共头文件 │ ├── libs/ # 共享库 │ └── / # 各工具目录 └── libbpf/ # 第三方依赖 ``` ## 🔍 工具文档 每个工具都包含详细帮助: ```bash # 工具特定帮助 retsnoop --help tcpconnect --help # 列出所有可用工具 make list # 构建系统帮助 make help ``` ## 🌍 社区与支持 - **文档**: [项目 Wiki](https://gitee.com/openkylin/ketones/wikis) - **问题反馈**: [Gitee Issues](https://gitee.com/openkylin/ketones/issues) - **讨论交流**: [Gitee 讨论区](https://gitee.com/openkylin/ketones/board) - **贡献指南**: 请阅读我们的 [贡献指南](CONTRIBUTING_zh.md) 了解行为准则和提交拉取请求的流程。 ## 📦 发行包 ```bash # 构建 RPM 包 make rpm # 构建 DEB 包 make deb # 创建源码归档 make create-archive ``` ## 🤝 参与贡献 我们欢迎各种形式的贡献: - 🐛 Bug 报告和修复 - ✨ 新工具开发 - 📖 文档改进 - 🧪 测试和验证 - 💡 功能建议 请阅读我们的 [贡献指南](CONTRIBUTING_zh.md) 了解行为准则和提交拉取请求的流程。 ## 📄 版权 ![LGPL v3](https://www.gnu.org/graphics/lgplv3-147x51.png) Copyright (C) 2023-2025 Jackie Liu ## 📄 许可证 本项目采用 LGPL-3+ 许可证 - 详见 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 - 基于优秀的 [libbpf](https://github.com/libbpf/libbpf) 库构建 - 受 [BCC](https://github.com/iovisor/bcc) 项目启发 - 感谢所有[贡献者](https://gitee.com/openkylin/ketones/contributors) --- **Ketones** - 云原生时代的内核 eBPF 追踪与可观测性原生引擎套件。