- PVSM.RU - https://www.pvsm.ru -
Примечание переводчика:
Тихо и незаметно вышла pynba [1]. Странно, что на хабре об этом еще не писали :)
Pynba — это WSGI прослойка для pinba [2]. С ее помощью вы можете собирать статистику / производить мониторинг сервера, используя интерфейс MySQL для чтения данных.
Она аккумулирует данные от Python процессов, отправляет их по UDP прототоколу и показывает статистику в красивом человекопонятном виде простых отчетов. Так же она предоставляет доступ только для чтения к сырым данным, что позволяет, например, создавать более детализированные отчеты.
Пользователи так же могут проводить измерения работы важных участков кода, используя таймеры с произвольными метками.
Потому что Pinba — это круто!
В IsCool Entertainment [3] мы уже используем Pinba для мониторинга наших PHP приложений.
Библиотека требует Pinba [2], Protobuf [4] и Werkzeug [5].
Сам процесс установки требует наличие setuptools [6].
Если его нет, пожалуйста, установите его.
Если вы используете официальную версию, просто сделайте:
$ pip install iscool_e.pynba
Если же вы предпочитаете текущую (разрабатываемую) версию, то
$ git clone https://github.com/IsCoolEntertainment/pynba.git
$ python setup.py install
Скажите, где ваша главная WSGI программа:
def app(environ, start_response):
...
Импортируйте декоратор pynba и задекорируйте им главное приложение WSGI.
from iscool_e.pynba import monitor
@monitor(('127.0.0.1', 30002))
def app(environ, start_response):
...
Каждый раз, когда ваша программа будет запукаться, будет отправлен UDP поток.
В конечном счете вы можете использовать таймеры для измерения особо значимых участков вашего кода. Для этого просто импортируйте pynba proxy и используйте его для создания новых таймеров:
from iscool_e.pynba import pynba
timer = pynba.timer(foo="bar")
timer.start()
...
timer.stop()
pynba.document_size = [YOUR VALUE]
pynba.memory_peak = [YOUR VALUE]
pynba.timer(foo='bar', baz=['seq1', 'seq2'], qux={'map1': 'val1'})
породит 4 значения для трех меток в базе Pinba:
('foo', 'bar'),
('baz', 'seq1'),
('baz', 'seq2'),
('qux.map1', 'val1')
Пакет распространяется под MIT Licence. Пожалуйста прочтите LICENSE [7] для полного описания.
Автор: dovg
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/10457
Ссылки в тексте:
[1] pynba: https://github.com/IsCoolEntertainment/pynba
[2] pinba: http://pinba.org/
[3] IsCool Entertainment: http://www.iscoolentertainment.com/en/
[4] Protobuf: http://code.google.com/p/protobuf/
[5] Werkzeug: http://werkzeug.pocoo.org/
[6] setuptools: http://pypi.python.org/pypi/setuptools/
[7] LICENSE: https://raw.github.com/IsCoolEntertainment/pynba/master/LICENSE
Нажмите здесь для печати.