工具
grpc-tools gRPC 流量调试工具集
Bradley Kemp 编写的一套 gRPC 调试工具,自称相当于 gRPC 版的 Fiddler 或 Charles。grpc-dump 作为本地 HTTP(S) 代理运行,把应用发出的每次 gRPC 与 gRPC-Web 调用记录为 JSON 流,包含服务名、方法名、元数据、可能出现的错误状态,以及每条消息的原始与解析形式;没有 .proto 文件时,它会以启发式方法解码消息。grpc-replay 重新发送记录下的请求并核对服务器响应,grpc-fixture 用保存的转储应答客户端,它们都构建在 grpc-proxy Go 库之上。
- 目标
- 应用 · 协议
- 类别
- 协议分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅对象为 master 分支提交 928b1b9(2023-11-14),也是最后一次推送。最新发行版为 v0.2.6(2020-06-30),master 在其后另有六个提交,主要是依赖升级,另将消息大小上限提高到 64 MB。README 称这些工具仍处于 alpha 阶段,并提醒各版本之间可能有不兼容的改动。
- 可通过作者的 Homebrew tap、发行版压缩包(Linux、macOS 和 Windows 的 amd64 构建)或 go install 安装;go.mod 声明 Go 1.13,并要求 grpc-go v1.26.0、golang/protobuf v1.4.2 和 protoreflect v1.7.0。被测应用需要指向该代理;README 提醒,连接 localhost 的客户端通常会忽略代理设置。system_proxy 选项的说明针对 macOS。
- 要求 TLS 的客户端需要信任为被拦截域名准备的证书;README 推荐用 mkcert 生成证书,并安装在用户自己的机器上。提供 .proto 根目录或描述符后可以精确解码,而不必依赖启发式解码。集成测试使用一个小型 test.proto 以及项目自己录制的转储和 fixture 文件;仓库附带 CircleCI 配置。
- 采用 MIT 许可证。转储包含完整的消息内容和元数据,其中也包括请求头里的凭据,因此应作为敏感数据处理。本条目只涉及检查用户自己的应用和服务;本次审阅未运行任何程序。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- grpc-dump/README.md GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- grpc-proxy/README.md GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- grpc-replay/README.md GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- grpc-fixture/README.md GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- CHANGELOG.md GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- go.mod GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- .goreleaser.yml GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- LICENSE GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- integration_test GitHub · bradleyjkemp/grpc-tools · 修订 928b1b9
- https://github.com/bradleyjkemp/grpc-tools/releases/tag/v0.2.6