2013-12-11 2 views
0

Я хотел бы разбить некоторые конкретные виды из приложения django в отдельное приложение NewRelic. NewRelic python docs подразумевает, что я могу установить request.environ['newrelic.app_name'], и он будет использовать мое новое значение вместо стандартного, но оно не работает.Установить имя приложения NewRelic по запросу

например. в моем WSGI файле:

from django.core.handlers.wsgi import WSGIHandler 
import newrelic.agent 

application = WSGIHandler() 
newrelic.agent.initialize('/path/to/newrelic.ini') # defines app_name='1st_app' 
application = newrelic.agent.wsgi_application()(application) 

на мой взгляд Django:

def some_view(request, *args, **kwargs): 
    request.environ['newrelic.app_name'] = '2nd_app' 
    ... 
    return HttpResponse(...) 

ответ

0

Вы можете разделить эти взгляды в mod_wsgi, но это должно быть сделано на уровне сервера, а не с Django. Вместо этого используйте директиву SetEnv в своей конфигурации Apache. Поскольку вы хотите изменить имя app_name на основе запроса, вам нужно будет использовать директиву Location, чтобы определить, какой URL-адрес нужно переименовать.

Например:

<Location /some/url> 
SetEnv newrelic.app_name 2nd_app 
</Location> 
+0

Так что должно быть сделано, прежде чем * * запрос получает где-нибудь рядом с сервером приложений, а не во время обработки? #FeatureSuggestion – rcoup

Смежные вопросы