djangosampler є додаток Django, що дозволяє брати відсоток від ваших запитів (SQL, Mongo, і т.д.) і переглядати ті, які займають найбільше часу. Запити згруповані за якою вони походять від вашого коду.
Установка
Встановіть:
Python 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
Django Sampler має архітектуру плагінів, щоб дозволити вам контролювати, скільки даних ви хочете бути зібрані.
У вашому settings.py додати наступне:
DJANGO_SAMPLER_PLUGINS = (
І NBSP; 'djangosampler.plugins.sql.Sql',
І NBSP; # Плагіни застосовуються в тому ж порядку, як в цьому списку
)
Наведений вище приклад буде додати модуль SQL.
Доступні плагіни та їх налаштування описані в розділі Модулі нижче.
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
Плагіни
Список доступних плагінів наступним чином. Ви можете написати свій власний плагін, і це описано в розділі "Написання ваших власних плагінів».
Django 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
- Django
Коментар не знайдено