Пример трассировки openstack и osprofiler с помощью zipkin

все

Я пытаюсь использовать Zipkin для отслеживания сервисов в OpenStack. Я знаю, что для меня это огромный проект. Поэтому мне интересно, есть ли библиотека с открытым исходным кодом для Zipkin, отслеживающая OpenStack.

Я думаю, что искал это раньше, и если мой разум не обманывает меня, для этого есть одна презентация (только кусочки). Однако найти не могу. Кто-нибудь может с этим помочь?

Я знаю, что существует библиотека osprofiler для трассировки OpenStack, а пример API мне кажется непонятным. Не могли бы вы дать мне более подробный или даже полный пример, например, Zipkin https://github.com/openzipkin/pyramid_zipkin-example

Я не хочу сказать, что это бесполезно. Кажется, мне все еще нужно найти точку запроса RESTful в OpenStack, например, создание экземпляра может запустить одну службу для запроса нейтрона для сети, и мне, возможно, придется найти код внешнего интерфейса и добавить код трассировки. Если вы используете py_zipkin, я могу добавить перед ним декоратор @zipkin_span (некоторые параметры). Проблема в том, что мне сложно найти интерфейс таких сервисов, как Nova, Neutron, Cinder и так далее.

Похоже, osprofiler делает то же самое. Мое понимание, скорее всего, неверно, и я ценю, кто может с этим помочь.

Кстати, я не собираюсь отслеживать такой большой проект, как OpenStack. Я собираюсь отследить RESTful-подобную или RPC-систему с помощью Zipkin, чтобы собрать информацию для анализа. К сожалению, я нашел проект с открытым исходным кодом среднего размера. Поэтому я выбираю OpenStack. Если бы вы могли предоставить мне что-нибудь еще, это было бы очень полезно. :)

Большое тебе спасибо.


person Yuan    schedule 11.09.2017    source источник


Ответы (1)


Лучший способ отслеживать проект OpenStack - использовать библиотеку Osprofiler. Если вы просто хотите понять рабочий процесс или просто знать о типах вызовов, выполняемых внутри OpenStack, тогда Osprofiler - лучший и самый простой способ получить трассировку. Теперь Osprofiler является принятым проектом OpenStack и официальным проектом для отслеживания OpenStack.

Вместо того, чтобы проходить весь код и добавлять точки инструментария рядом с HTTP-запросами или вызовами RPC, osprofiler уже интегрирован во все основные проекты OpenStack (Nova, Neutron, Keystone, Glance и т. Д.). Вам просто нужно включить osprofiler в файлах конфигурации каждого проекта в OpenStack, чтобы отслеживать этот конкретный проект.

Вы можете перейти по этой ссылке - https://docs.openstack.org/osprofiler/latest/

Включение Osprofiler в конфигурационные файлы можно сделать, добавив следующие строки в конец конфигурационного файла (nova.conf или нейтрон.conf):

[profiler]
enabled = True
trace_sqlalchemy = True
hmac_keys = SECRET_KEY
connection_string = messaging://

Параметр connection_string указывает коллектор (где хранится информация трассировки). По умолчанию используется облакомер. Фактически вы можете перенаправить информацию трассировки другим сборщикам, таким как Elasticsearch, изменив параметр connection_string в файле conf на сервер elasticsearch.

Это, безусловно, самый простой способ получить трассировку в OpenStack с минимальными усилиями.

person phanipawan    schedule 05.11.2017
comment
Спасибо за инструкции. Собственно, я уже сделал это, но столкнулся с другими проблемами. Я пытаюсь решить эти проблемы. - person Yuan; 06.11.2017