语言无关的跟踪格式

时间:2019-01-23 15:01:23

标签: python trace opentracing jaeger

我正在寻找一种编程语言中性的呼叫跟踪文件格式。

第一步是存储所有方法调用以及运行时执行的每一行。

简化:对我来说,跟踪单个进程,单个线程执行就足够了。没有并行性。

下一步将是跟踪所涉及的http调用(微服务)。

我使用Python开发,但是跟踪文件格式必须与语言无关。

2 个答案:

答案 0 :(得分:2)

您用jaegeropentracing标记了这个问题,恐怕OpenTracing没有标准的线格式。 Jaeger有其自己的格式,但尚未真正记录(至今!)。该区域中最接近标准的是Zipkin的B3。

在OpenTracing和分布式跟踪世界之外,您可以使用某些格式,例如Common Tracing Formatpcap

请注意,在单线程环境中跟踪本地进程调用(例如,进入系统调用或内核事件)与跟踪微服务调用非常不同,这主要是因为您的应用程序需要通过电线将“上下文”传递给下一个服务,以建立呼叫之间的相关性。

答案 1 :(得分:2)

opentracing提供了跟踪标准,但是对语言没有任何限制。任何语言都可以。如果您指的是数据格式,那么最流行的数据格式是JSON,但是在跟踪器系统中,跨接的数量很大,我认为protobuf可能是一个更好的选择。我启动了一个名为nodetraicng的项目,它使用NodeJS实现opentracing:

https://github.com/cheneyweb/nodetracing