Есть ли безопасный для производства способ измерения времени, проведенного в Production w / Python? - PullRequest
4 голосов
/ 11 ноября 2010

Я хочу иметь возможность обрабатывать приложения Python так, чтобы я знал:

  • Время создания страницы.
  • Процент времени, проведенного во внешних запросах (вызовы mysql, api).
  • Количество запросов mysql, какими были запросы MySQL.

Я хочу получить эти данные с производства (не в режиме офлайн-профилирования) - потому что время, проведенное в разных местах, будет разным под нагрузкой.

В PHP я могу сделать это с помощью XHProf или Instrumentation-for-php.В Ruby on Rails / .NET / Java я могу сделать это с помощью New Relic.

Есть ли такой пакет, рекомендуемый для Python или django?

Ответы [ 2 ]

1 голос
/ 28 октября 2011

В New Relic теперь есть пакет для Python, включая Django через mod_wsgi.

https://support.newrelic.com/help/kb/python

1 голос
/ 11 ноября 2010

Да, это вполне возможно. Например. используйте некоторый магический переключатель в URL, например «? profile-me», который запускает профилирование в промежуточном программном обеспечении Django.

В Интернете есть несколько фрагментов, таких как этот: http://djangosnippets.org/snippets/70/ или такие модули, как этот: http://code.google.com/p/django-profiling/ - но я не использовал ни одного из них, поэтому не могу ничего рекомендовать ,

В любом случае, подход, который они используют, похож на то, что я делаю - то есть использую модуль профилирования Python Hotshot в промежуточном программном обеспечении, которое оборачивает ваш взгляд. Для части MySQL вы можете просто использовать connection.queries форма Django.

Приятной особенностью Hotshot является то, что ее вывод можно просмотреть с помощью Kcachegrind, как здесь: http://www.rkblog.rk.edu.pl/w/p/django-profiling-hotshot-and-kcachegrind/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...