为每个请求设置NewRelic应用程序名称

时间:2013-12-11 00:24:32

标签: python django newrelic

我想将django应用程序中的一些特定视图分解为单独的NewRelic应用程序。 NewRelic python docs表示我可以设置request.environ['newrelic.app_name'],它将使用我的新值而不是默认值,但它似乎不起作用。

例如。在我的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(...)

1 个答案:

答案 0 :(得分:0)

您可以在mod_wsgi中拆分这些视图,但必须在服务器级别而不是Django中完成。请改用Apache配置中的SetEnv指令。由于您要根据请求更改app_name,因此您需要使用Location指令来标识应重命名的URL。

例如:

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