首页 > TAG信息列表 > parca
parca && pyroscope 对比
简单对比下parca 以及pyroscope,两个都是持续profile 平台工具 技术核心 parca 利用了ebpf进行agent 的push 处理,当然也支持基于google 的pprof,parca 核心就利用了pprof pyroscope 属于自己定义的格式, 语言支持 pyroscope 当前支持的语言还是比较多的,基本主要的都可以 parcaparca 对于frostdb 的使用简单说明
parca 使用badger 存储元数据,使用frostdb 列存,存储采样数据 简单集成使用说明 frostdb 官方文档提供了一些简单的集成demo,值得学习参考 参考代码pkg/parca/parca.go ,pkg/scrape/manager.go,pkg/scrape/scrape.go 如果需要开启持久化的就需要使用对象存储了,frostdb 支持对象存储进fgprof golang profiler 支持on cpu 以及off cpu
fgprof 是相比golang 默认pprof 方便的工具,可以用来方便的分析on cpu 以及off cpu ,相比官方的提升不少 说明 没有银弹,fgprof 也有缺点的: 不支持c 函数,当前实现依赖go 的调度器,一些数据可能不准确,parca 也依赖了此包 具体是在parca server 中 参考处理 internalMux.Hparca-agent 数据处理一些简单说明
parca-agent 在parca 中属于一个比较重要的组件 parca-agent 参考处理 包含的步骤 目标发现,发现运行的cgroups 使用bpf 程序每10s进行一些原始栈数据的采样 转换原始栈数据为pprof 格式的profile 如果需要记性处理(比如可能会提取debug 符号信息) 发送数据到parca server(包含parca-agent 安全问题
parca-agent 运行在root 账户,或者需要cap 能力(CAP_SYS_ADMIN ),同时官方为了安全对于执行文件进行了签名同时对于依赖以及代码使用了安全工具进行处理,对于bpf 的处理基于了libbpf 包,不依赖clang 以及llvm 说明 ebpf 是很不错的,但是ebpf 运行本身就需要很大的权限,很多时候是会有安全