上一篇着重介绍OpenTracing spec相关内容.本章通过一些实例介绍OpenTracing.
说明
参考https://github.com/yurishkuro/opentracing-tutorial/tree/master/go
注意该代码仓库中引入jaeger-client-go使用的路径是”github.com/uber/jaeger-client-go/config”,而jaeger已经托管到了jaegertracing仓库,下载之后修改目录名或者修改import导入路径名均可
使用Jaeger作为后端,首先启动一个Jaeger的docker镜像
1 | docker run \ |
通过浏览器访问http://localhost:16686 查看
示例1
为代码库中lesson2.单体程序
1 | go run hello.go ke.com |
1 | func main() { |
看看UI显示:
左侧检索方式解释如下(具体值参考代码):
- Service:本例中为hello-world
- Operation:本例中为say-hello,printHello,formatString
- Tags:写法为本例中为hello-to=ke.com
1
https.status_code=200 error=true
- Lookback:回溯时间 Min Duration:最短执行时长 Max Duration:最长执行时长 Limit Resuls:显示条数
- 执行时间轴
- 每个operation具体的logs field以及执行时间
示例2
为lesson4,调用http请求,为微服务模式.如下执行
1 | go run hello.go ke.com baggage |
代码如下:
1 | func main() { |
看一下其中一个http服务:
1 | func main() { |
具体示意图可自行实验查看