一、OpenTracing
官网地址:https://opentracing.io/
OpenTracing是CNCF(Cloud Native Computing Foundation projects)的项目,它是一个与厂商无关的API,并提供了一种规范,可以帮助开发人员轻松的在他们的代码上集成tracing。官方提供了Go, JavaScript, Java, Python, Ruby, PHP, Objective-C, C++, C#等语言的支持。它是开发的不属于任何一家公司。事实上有很多公司正在支持OpenTracing,例如:Zipkin和Jaeger都遵循OpenTracing协议。
2016年11月的时候CNCF技术委员会投票接受OpenTracing作为Hosted项目,这是CNCF的第三个项目,第一个是Kubernetes,第二个是Prometheus,可见CNCF对OpenTracing背后可观察性的重视。
OpenTracing希望围绕什么是Tracing以及如何和我们的应用程序集成形成一种通用语言。OpenTracing中的trace是一个有向无环图,其引用如下:
[Span A] ←←←(the root span)
|
+------+------+
| |
[Span B] [Span C] ←←←(Span C is a `ChildOf` Span A)
| |
[Span D] +---+-------+
| |
[Span E] [Span F] >>> [Span G] >>> [Span H]
↑
↑
↑
(Span G `FollowsFrom` Span F)
二、OpenCensus
官网地址:https://opencensus.io/
OpenCensus是Google开源的,作为最早提出Tracing概念的公司,OpenCensus也是Google Dapper的社区版本。
OpenSensus是允许你采集应用程序Metrics和分布式Traces,并且支持各种语言的库,比如:Go, Java, C#, Node.js, C++, Ruby, Erlang/Elixir, Python, Scala and PHP。支持将