graph LR
A[用户] --> B[api1/bar]
B --> H[grpc-server]
B --> C[api2/bar]
C --> D[api3/bar]
D --> E[bar]
E --> F[bar2]
F --> G[bar3]
- 用户 请求 api1(echo server) 服务的 api1/bar
- api1 调用 Grpc 服务
- api1 调用 api2 (gin server) 服务的 api2/bar
- api2 调用 api3 (echo server )服务的 api3/bar
- api3 调用 内部 调用方法 bar->bar2->bar3
- 下载jaeger,我使用的是 jaeger-all-in-one
- 启动 jaeger ~/tool/jaeger-1.31.0-linux-amd64/jaeger-all-in-one
- 默认查看面板 地址 http://localhost:16686/
- tracer Batcher的地址,下面代码会体现: http://localhost:14268/api/traces
- 示例文件:moda_tracing下 有四个目录,分别是 api1_http,api2_http,api3_http,grpc 分别对应三个api服务 一个grpc服务
- 分别启动三个服务,进入目录 go run ./ -c ./conf.toml 即可启动服务
进入moda_tracing目录,执行 make deploy 会同时启动 jaeger,api1,api2,api3,grpc 服务,并且能互通
- 调用api1: curl localhost:8081/api1/bar
- 等待调用成功
- 打开 jaeger 面板,查看链路关系图,http://localhost:16686/