3

我想使用 zipkin 来分析传统程序的内部结构。

我使用术语“传统”,因为 AFAIK zipkin 用于在微服务环境中进行跟踪,其中一个请求由 N 个子请求计算。

我想分析我的python程序的性能。

我想跟踪所有 python 方法调用和所有完成的 linux 系统调用。

如何跟踪 python 方法调用和 linux 系统调用以将 spans 放入 zipkin?

即使这不可行,我也很有趣如何做到这一点。我想了解 zipkin 的工作原理。

4

1 回答 1

5

在 zipkin 术语中,您所问的通常称为“本地跨度”或“本地跟踪”,基本上是一种既不发起也不导致远程调用的操作。

我不知道系统调用级别的任何事情,但许多跟踪器支持函数调用的显式检测。

例如,使用py_zipkin @zipkin_span(service_name='my_service', span_name='some_function') def some_function(a, b): return do_stuff(a, b)

除了像这样的显式检测之外,还可以将数据导出到 zipkin。例如,可以将在另一种工具中生成的跟踪数据转换为zipkin 的 json 格式

这可能无法回答您的问题,但我希望它有所帮助。

于 2017-01-13T06:52:38.090 回答