Тестирование производительности Django + New Relic

У меня есть веб-приложение Django со сложной моделью данных, в котором возникают проблемы с производительностью. Используя New Relic, я почти мгновенно смог определить, в чем проблема. Но есть несколько разных решений, которые я могу попробовать. Что я хотел бы сделать, так это иметь возможность оценивать эффективность различных решений в различных комбинациях.

На мой взгляд, одним из способов сделать это вручную было бы создание модели Django, которая хранит флаги конфигурации за пределами моего файла настроек, чтобы я мог изменить их через администратора вместо повторного развертывания. Затем я мог отслеживать New Relic и записывать показатели в электронную таблицу.

Но я чувствую, что это было бы плохим переосмыслением того, что люди, вероятно, делают все время. Есть ли хорошая методология для этого без целой кучи ручного труда?


person acjay    schedule 21.03.2013    source источник
comment
Я на самом деле тоже ищу что-то подобное. Проголосовал за   -  person PepperoniPizza    schedule 22.03.2013


Ответы (3)


Я не уверен в методологии в целом, но еще один вариант, которым я действительно был доволен, это Tracelytics. .

Кроме того, еще одна вещь, которая поможет с вашим вопросом, - это проект django-waffle, который я никогда не используется, но, похоже, было бы неплохо изменить флаги / настройки от администратора!

person Eric Carmichael    schedule 22.03.2013
comment
Django-waffle определенно кажется полезным компонентом всего этого предприятия. Я полагаю, что мог бы написать простое представление, чтобы сделать HTTP-активируемый контроллер для автоматизации комбинаций и простой скрипт для генерации запросов страниц. Это оставило бы автоматический сбор результатов и сопоставление с настройками, а также правильную интерпретацию этих результатов. - person acjay; 22.03.2013
comment
Чтобы быть более полезным, можете ли вы более конкретно рассказать о проблемах со скоростью? Может быть, снимки экрана/информация из вашего профилирования? Хорошая идея @fmendez - person Eric Carmichael; 27.03.2013

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

Записать развертывание так же просто, как команду curl

curl -H "x-api-key:REPLACE_WITH_YOUR_API_KEY" -d "deployment[app_name]=REPLACE_WITH_YOUR_APP_NAME" https://api.newrelic.com/deployments.xml

Более подробно о развертываниях можно прочитать здесь:

http://docs.newrelic.com/docs/applications-menu/deployments-dashboard

person Carl    schedule 12.06.2014

Помимо Waffle, вы можете изучить другие бэкэнды настроек, такие как Menagerie, который извлекает свои настройки из Zookeeper. , а также обновляет их при изменении.

person mknecht    schedule 15.05.2015