Инструкция по установке 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
Давай последовательно.
1. сгенерил newrelic.ini:
newrelic-admin generate-config bbf3ab09ff newrelic.ini
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)
[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)
newrelic-admin validate-config newrelic.ini
, то все норм - запросы проходят в тестовый проект. Вот конфиг для запуска 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"