Zipkin 用于分析传统程序的内部结构

Posted

技术标签:

【中文标题】Zipkin 用于分析传统程序的内部结构【英文标题】:Zipkin for profiling the internals of a traditional progamm 【发布时间】:2017-01-06 14:50:58 【问题描述】:

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

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

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

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

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

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

【问题讨论】:

【参考方案1】:

在 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's json format。

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

【讨论】:

以上是关于Zipkin 用于分析传统程序的内部结构的主要内容,如果未能解决你的问题,请参考以下文章

洗衣机的内部结构及图片

ArrayList和LinkedList 内部结构分析

AntDB/PostgreSQL内部原理:表Page结构解析

见微知著 —— Redis 字符串内部结构源码分析

《数据结构》--内部排序算法比较

使用innodb_ruby分析InnoDB内部结构