Zipkin 用于分析传统程序的内部结构
Zipkin for profiling the internals of a traditional progamm
我想使用 zipkin 来剖析传统程序的内部结构。
我使用术语 "traditional",因为 AFAIK zipkin 用于在一个请求由 N 个子请求计算的微服务环境中进行跟踪。
我想分析我的 python 程序的性能。
我想跟踪所有 python 方法调用和所有 linux 已完成的系统调用。
如何跟踪 python 方法调用和 linux 系统调用以将跨度放入 zipkin?
即使这不可行,我也很感兴趣如何做到这一点。我想了解 zipkin 的工作原理。
在 zipkin 术语中,您所询问的内容通常称为 "local spans" 或 "local tracing",基本上是一个既没有发起也没有导致远程调用的操作。
我不知道系统调用级别的任何内容,但许多跟踪器支持函数调用的显式检测。
例如,使用py_zipkin
@zipkin_span(service_name='my_service', span_name='some_function')
def some_function(a, b):
return do_stuff(a, b)
除了像这样的显式检测外,还可以将数据导出到 zipkin。例如,可以将在另一个工具中生成的跟踪数据转换为 zipkin's json format.
这可能无法回答您的问题,但希望对您有所帮助。
我想使用 zipkin 来剖析传统程序的内部结构。
我使用术语 "traditional",因为 AFAIK zipkin 用于在一个请求由 N 个子请求计算的微服务环境中进行跟踪。
我想分析我的 python 程序的性能。
我想跟踪所有 python 方法调用和所有 linux 已完成的系统调用。
如何跟踪 python 方法调用和 linux 系统调用以将跨度放入 zipkin?
即使这不可行,我也很感兴趣如何做到这一点。我想了解 zipkin 的工作原理。
在 zipkin 术语中,您所询问的内容通常称为 "local spans" 或 "local tracing",基本上是一个既没有发起也没有导致远程调用的操作。
我不知道系统调用级别的任何内容,但许多跟踪器支持函数调用的显式检测。
例如,使用py_zipkin
@zipkin_span(service_name='my_service', span_name='some_function')
def some_function(a, b):
return do_stuff(a, b)
除了像这样的显式检测外,还可以将数据导出到 zipkin。例如,可以将在另一个工具中生成的跟踪数据转换为 zipkin's json format.
这可能无法回答您的问题,但希望对您有所帮助。