parca 是基于pprof+ebpf 实现的持续profile 工具,开发基于golang,使用了不少protocol buffers 比如协议定义
rpc 服务契约等,以下是一些整理学习

protocol buffers 版本以及依赖管理工具

protocol buffers 是很不错,但是版本管理以及lint 是一个问题,所以parca 基于了buf 进行管理

参考使用

  • 项目结构

标准的buf.yaml

parca 项目protocol buffers 管理学习_项目结构

 

 

包定义

parca 项目protocol buffers 管理学习_github_02

 

 

包引用

parca 项目protocol buffers 管理学习_golang_03

 

 

  • 代码生成以及依赖

标准的buf.gen.yaml,为了管理依赖使用了buf.work.yaml 标准玩法

parca 项目protocol buffers 管理学习_golang_04

 

 

说明

基于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​