DrMartiner
@DrMartiner
Full-Stack WEB Developer on Django & AngualrJS

Использование New Relic в Django проектах?

Всем здравия!

Кто использовал New Relic в Django проектах, расскажите, пожалуйста, про то как его использовать =) (по шагам)

Новому пользователю при регистрации дается Gold режим на 14 дней, но воспользоваться им не получается (в панеле не появляется никаких данных). Потратил пару вечеров на прикручивание: нашел эту либу +доки на сайте New Relic

PS: поднимал на Python 2.7, virtualenv, Django 1.5.5, Ubuntu 12.04. Проект запускается на связке Nginx & uWSGI
  • Вопрос задан
  • 4666 просмотров
Пригласить эксперта
Ответы на вопрос 3
inlanger
@inlanger
Django программист

Инструкция по установке Python агента - https://docs.newrelic.com/docs/python/python-agent-installation

Инструкция по настройке его на uwsgi - https://docs.newrelic.com/docs/python/python-agent-and-uwsgi

Просто перед командой запуска uwsgi добавляете "newrelic-admin run-program" и указываете путь к настройкам:

NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program uwsgi --socket /tmp/uwsgi.sock --single-interpreter --enable-threads wsgi.py

Ответ написан
DrMartiner
@DrMartiner Автор вопроса
Full-Stack WEB Developer on Django & AngualrJS

Давай последовательно.

1. сгенерил newrelic.ini:

newrelic-admin generate-config bbf3ab09ff newrelic.ini

2. модифицировал project/wsgi.py:
import os
newrelic.agent.initialize('/home/username/path/to/myproject/newrelic.ini')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings") 
from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application()
application = newrelic.agent.wsgi_application()(application)

3. добавил в /etc/uwsgi/apps-available/myapp.ini последнюю строку
[uwsgi]
workers = 2
processes = 2
autoload = true

env = DJANGO_SETTINGS_MODULE=project.settings
module = project.wsgi

log-date = true

chdir = /home/www/%n/
virtualenv = /home/www/%n/.env/
pythonpath = /home/www/%n/

harakiri = 30
no-orphans = true
reload-mercy = 8
max-requests = 5000

eval = import newrelic.agent, wsgi; application = newrelic.agent.wsgi_application()(wsgi.application)


И... ...ничего не получилось :(
В чем может быть проблема? Быть может, нужно запустить отдельный uWSGI сервис?

PS: если выполнить newrelic-admin validate-config newrelic.ini, то все норм - запросы проходят в тестовый проект.

Ответ написан
Комментировать
MikeVL
@MikeVL

Вот конфиг для запуска Django проекта с New Relic через supervisor:

[program:django]
user = www-data
command = newrelic-admin run-program /usr/local/bin/uwsgi
  --module 'project.wsgi:application'
  --socket /tmp/%(program_name)s_%(process_num)02d.sock
  --processes 1
  --threads 6
  --single-interpreter
  --enable-threads
  --vacuum
  --need-app
  --log-x-forwarded-for
  --buffer-size 32768
  --post-buffering 65536
  --disable-logging

environment =
  NEW_RELIC_CONFIG_FILE="/etc/project/newrelic.ini",
  DJANGO_SETTINGS_MODULE="project.settings"

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы