一、OpenTracing 数据模型
1.Trace:一条调用链。
2.Span:可以理解成一条调用链的一个环节。一条 Trace可以被认为是一个由多个 Span 组成的DAG图。
1)Tag:标签集
2)Log:日志集
3)References:Span与Span之间的关系。OpenTracing目前定义了两种关系:ChildOf(父子) 和 FollowsFrom(跟随)
4)SpanContext:Span上下文对象,主要保存了traceId spanId等,用来跨进程边界传输。不同进程间可以利用SpanContext建立References关系。
(下个服务拿到traceId就可以知道自己改归属于哪个调用链, 拿到spanId就知道自己的父span是谁 )
二、API使用
1.Jaegertracing是OpenTracing的一个实现。Java sdk: https://github.com/jaegertracing/jaeger-client-java 。
代码示例如下: