opentracing

https://github.com/opentracing/opentracing-go



Logging,Metrics 和 Tracing 有各自专注的部分。



Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。 Metrics - 用于记录可聚合的数据。例如,队列的当前深度可被定义为一个度量值,在元素入队或出队时被更新;HTTP 请求个数可被定义为一个计数器,新请求到来时进行累加。 Tracing - 用于记录请求范围内的信息。例如,一次远程方法调用的执行过程和耗时。它是我们排查系统性能问题的利器。

Dapper(Google) : 各 tracer 的基础
StackDriver Trace (Google)
Zipkin(twitter)
Appdash(golang)
鹰眼(taobao)
谛听(盘古,阿里云云产品使用的Trace系统)
云图(蚂蚁Trace系统)
sTrace(神马)
X-ray(aws)



https://zhuanlan.zhihu.com/p/34318538



https://medium.com/opentracing/towards-turnkey-distributed-tracing-5f4297d1736



https://wu-sheng.gitbooks.io/opentracing-io/content/



https://opentracing-contrib.github.io/opentracing-specification-zh/



https://cloud.google.com/architecture/using-distributed-tracing-to-observe-microservice-latency-with-opencensus-and-stackdriver-trace?hl=zh-cn



OpenCensus



https://opencensus.io/
OpenCensus 有如下一些主要特点:



用于处理 metric 和 trace 的标准通信协议和一致的API
https://cloud.tencent.com/developer/article/1034946



OpenCensus和OpenTracing最大的不同在于除了Tracing外,它还把Metrics也包括进来,这样也可以在OpenCensus上做基础的指标监控;还一点不同是OpenCensus并不是单纯的规范制定,他还把包括数据采集的Agent、Collector一股脑都搞了。OpenCensus也有众多的追随者,最近最大的新闻就是微软也宣布加入,OpenCensus可谓是如虎添翼。



OpenTelemetry的发起者都是OpenTracing和OpenCensus的人,所以项目的第一宗旨就是:兼容OpenTracing和OpenCensus。对于使用OpenTracing或OpenCensus的应用不需要重新改动就可以接入OpenTelemetry。



https://zhuanlan.zhihu.com/p/74930691



https://stanxing.hedwig.pub/i/liao-liao-fen-bu-shi-lian-lu-zhui-zong-he-ke-guan-cha-xing
https://github.com/golang/go/blob/master/src/runtime/trace.go



https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example/



https://eddycjy.com/posts/go/tools/2019-07-12-go-tool-trace/



https://blog.csdn.net/u013474436/article/details/105232768



http://mmcloughlin.com/posts/your-pprof-is-showing



https://studygolang.com/articles/12639?fr=sidebar



https://zhuanlan.zhihu.com/p/322483477



Cache Go dependencies If your project uses Go Modules to install Go dependencies, the following example defines cache in a go-cache template, that any job can extend. Go modules are installed in ${GOPATH}/pkg/mod/ and are cached for all of the go projects:



https://github.com/gopherchina/conference



https://rakyll.org/profiler-labels/


Category golang