2017-01-06 30 views
2

Я хочу использовать zipkin для профилирования внутренних компонентов традиционной программы.Zipkin для профилирования внутренних компонентов традиционной прогаммы

Я использую термин «традиционный», поскольку zipkin AFAIK предназначен для отслеживания в среде микросервиса, где один запрос вычисляется по N суб-запросам.

Я хотел бы проанализировать производительность моей программы python.

Я хотел бы проследить все вызовы метода python и все системные вызовы linux, которые выполняются.

Как проследить вызовы метода python и системные вызовы linux, чтобы получить промежутки в zipkin?

Даже если это невозможно, мне интересно, как это можно сделать. Я хотел бы узнать, как работает зипкин.

ответ

4

В zipkin lingo то, о чем вы просите, часто называют «локальными пролетами» или «локальной трассировкой», в основном операцией, которая не возникла и не вызвала удаленный вызов.

Я ничего не знаю о уровне системного вызова, но многие трассировки поддерживают явное управление вызовами функций.

Например, с помощью py_zipkin @zipkin_span(service_name='my_service', span_name='some_function') def some_function(a, b): return do_stuff(a, b)

Помимо явных приборов, как это, можно также экспортировать данные в Цыпкин. Например, можно преобразовать данные трассировки, выполненные в другом инструменте, в zipkin's json format.

Это, вероятно, не отвечает на ваш вопрос, но я надеюсь, что это поможет.