djangosampler является приложение Django, что позволяет попробовать процент ваших запросов (SQL, Mongo, и т.д.) и просматривать те, которые занимают больше всего времени. Запросы сгруппированы по которой они произошли от вашего кода.
Установка
Установка:
питон setup.py установить
Настройка:
- Добавить djangosampler ваших INSTALLED_APPS
- Добавьте таблицы (manage.py SyncDB или manage.py мигрировать, если вы используете Юг)
- Добавить мнения:
& NBSP; urlpatterns + = узоры ('',
& NBSP; (г '^ сэмплер /', включают в себя ("djangosampler.urls ')),
& NBSP;)
- Набор DJANGO_SAMPLER_FREQ в значение, отличное от 0
- Установить DJANGO_SAMPLER_PLUGINS в списке плагинов. Для отбора проб только SQL разумный умолчанию:
& NBSP; DJANGO_SAMPLER_PLUGINS = (
& NBSP; 'djangosampler.plugins.sql.Sql ",
& NBSP; # Плагины применяются в том же порядке, как в этом списке
& NBSP;)
- Есть несколько плагинов, доступных и стоит читать через них, чтобы получить больше пользы из этого инструмента.
- Если вы используете выборку, основанную затрат затем установите DJANGO_SAMPLER_BASE_TIME в ожидаемой продолжительности нормального запроса в секундах. По умолчанию этот параметр установлен на 5 мс.
Просмотр результатов
Дав сэмплер работать какое-то время вы будете иметь возможность просматривать запросы (сгруппированы по их происхождению) в URL настроенного.
Конфигурация
DJANGO_SAMPLER_PLUGINS
Джанго пробоотборник имеет архитектуру плагинов, чтобы позволить вам контролировать, сколько данных вы хотите, чтобы быть собраны.
В вашем settings.py добавить следующее:
DJANGO_SAMPLER_PLUGINS = (
& NBSP; 'djangosampler.plugins.sql.Sql ",
& NBSP; # Плагины применяются в том же порядке, как в этом списке
)
В приведенном выше примере будет добавить модуль SQL.
Доступные плагины и их настройки описаны в разделе Plugins ниже.
DJANGO_SAMPLER_FREQ
DJANGO_SAMPLER_FREQ настраивает процент запросов, которые будут записаны. Он должен быть между 0,0 и 1,0.
Если это не установлен, то нет плагины не будут установлены, и ваш код будет работать в обычном режиме.
DJANGO_SAMPLER_USE_COST
DJANGO_SAMPLER_USE_COST позволит выборку на основе затрат. Это вызывает вопросы, которые работают в течение длительного времени, чтобы отведать чаще, чем короткие вопросы.
Вероятность того, что запрос пробы умножается на общее время выполнения запроса. Если запрос занимает 2 секунды, то это будет в два раза чаще отведать в запросе, который принимает 1 секунда.
Стоимость запроса регулируется для учета это следующим образом:
Стоимость = макс (1,0, время * DJANGO_SAMPLER_FREQ) / DJANGO_SAMPLER_FREQ
Плагины
Список доступных плагинов следующим образом. Вы можете написать свой собственный плагин, и это описано в разделе "Написание свои собственные плагины".
Джанго SQL
Плагин класс: djangosampler.plugins.sql.Sql
Плагин SQL сэмплер будет отведать процент запросов SQL, которые происходят в вашем приложении. Образцы будут сгруппированы по запросов и трассировки стека будет записано, чтобы найти, где запросы происходящих.
Запросы Django
Плагин класс: djangosampler.plugins.request.Request
Плагин запрос устанавливает Middleware, который будет попробовать на время, необходимое запросами.
Пример кода
Это не строго плагин. Это менеджер контекста, что позволит вам отмечать блоки кода и образец, как долго блоки предпринять, чтобы бежать. Например.:
от djangosampler.sampler выборки импорта
с отбором проб («my_code ',' some_fn '):
& NBSP; do_something_slow ()
Сельдерей
Плагин класс: djangosampler.plugins.celery_task.Celery
Плагин Сельдерей Сельдерей использует сигналы, чтобы попробовать время, необходимое для выполнения задачи.
MongoDB
Плагин класс: djangosampler.plugins.mongo.Mongo
Плагин MongoDB будет попробовать процент Монго команды (запросы, вставки и т.д.), которые происходят в вашем приложении. Образцы будут сгруппированы по команде и стек следы будут записаны, чтобы найти, где запросы происходящих
Требования :.
- Python
- Джанго
Комментарии не найдены