parca 是基于pprof+ebpf 实现的持续profile 工具,开发基于golang,使用了不少protocol buffers 比如协议定义
rpc 服务契约等,以下是一些整理学习
protocol buffers 版本以及依赖管理工具
protocol buffers 是很不错,但是版本管理以及lint 是一个问题,所以parca 基于了buf 进行管理
参考使用
- 项目结构
标准的buf.yaml
包定义
包引用
- 代码生成以及依赖
标准的buf.gen.yaml,为了管理依赖使用了buf.work.yaml 标准玩法
说明
基于buf 进行protocol buffers 的管理是一个不错的选择,但是也不是最好的选择,比如对于java 直接使用自带的plugin 似乎是好的选择(可以结合一些lint 工具)
对于golang 使用buf 是比较方便的,可以减少不少使用原生protoc gen 的问题(路径,依赖。。。。)
参考资料
https://github.com/bufbuild/buf
https://github.com/parca-dev/parca-agent
https://github.com/parca-dev/parca