这个项目能做什么

Parca Agent 是一款基于 eBPF 构建的常驻采样性能分析器。它以低开销采集原始性能分析数据,每秒约 19 次观测用户态和内核态堆栈跟踪,并基于提取的数据构建 pprof 格式的性能分析文件。采集到的数据可通过本地 HTTP 端点查看,也可发送至 Parca 服务器进行查询和长期分析。 要求:Linux 内核 5.3+ 并支持 BTF。该 agent 必须以 root 身份或具备 CAP_SYS_ADMIN 权限运行;项目文档中说明了安全注意事项和漏洞报告流程。 语言支持广泛且仍在演进,包括 C、C++、Go(提供扩展支持)、Rust、.NET、Deno、Erlang、Java、Julia、Node.js、Wasmtime、PHP 8+、Ruby 和 Python。目前提供 On-CPU 性能分析,网络使用和内存分配功能标注为计划中。goroutine 等运行时特定信息需要显式插桩。 配置可通过命令行标志或通过 --config-path 指定的 YAML 文件提供;标志优先于文件中的值。文档中列出的选项涵盖日志记录、HTTP 地址、性能分析频率与持续时间、概率性性能分析、元数据标签、本地与远程存储、debuginfo 处理、OTLP 导出、eBPF 缓冲区与 map 调优、离线模式以及 CUDA 启动插桩。 性能分析数据始终携带 node、comm、cpu、thread_id 和 thread_name 等标签,并支持可选的外部标签。Prometheus 风格的重标记可附加大量发现元数据,包括进程详情、系统内核信息,以及 Kubernetes、Docker、containerd 和 LXC 容器属性。文档提供了两个示例配置:一个将 Kubernetes 元数据提升到 agent 自身的标签名称下,另一个使用 OpenTelemetry 语义约定名称为 OTLP 导出使用。 用户态代码采用 Apache 2 许可证;内核态 eBPF 性能分析器采用 GPLv2。项目致谢 Inspektor Gadget 作为灵感来源。