parca && pyroscope 对比

简单对比下parca 以及pyroscope,两个都是持续profile 平台工具

技术核心

  • parca 
    利用了ebpf进行agent 的push 处理,当然也支持基于google 的pprof,parca 核心就利用了pprof
  • pyroscope 
    属于自己定义的格式,

语言支持

  • pyroscope 
    当前支持的语言还是比较多的,基本主要的都可以
  • parca 
    目前主要是golang,c,c++,java jing尽管支持,但是不是很理想,因为jit 语言的特性,同时对于脚本语言支持也有限,主要是利用的技术栈太偏底层 
    但是脚本语言又具有特殊性

数据存储

  • pyroscope 
    包含了内置的server以及cloud,同时也类似prometheus 支持remote write
  • parca 
    包含了元数据存储,以及profiler 存储,目前来说看着只能单机,不能远程存储,但是可以通过远端server模式,但是不是很方便,可以自己扩展

查询处理

  • pyroscope 
    包含了flameql,自己的查询语言,类似prometheus
  • parca 
    类似prometheus,因为团队人就来自proemtheus 的开发人员

灵活性

使用上大家类似,但是parca 好多prometheus 玩法的影子,包含了pull 以及push 模式的集成

系统部署

从目前两个产品来说大家都是基本数据单体模式,对于server 还都没有ha 以及存储分离的模式,但是pyroscope 支持了一种remote write 类似可以实现一种
分离的模式,当让理论上parca 也是可以支持的,但是目前parca 依赖的frostdb (一个嵌入式的列式存储),如果parca后期暴露frostdb 为一个通用的存储服务
分离就比较好搞了

说明

以上是通过学习对比的分析,实际上parca以及pyroscope源码还都是值得学习的,都是很不错的持续profile 平台工具,对于分析实际问题还是比较有用的

参考资料

https://pyroscope.io/
https://www.parca.dev/docs/overview

posted on 2022-09-14 13:24  荣锋亮  阅读(390)  评论(0编辑  收藏  举报

导航