2

我们正在尝试在开发服务器上实现 new relic ( http://www.newrelic.com ) 以测试 openerp 的性能。

下面newrelic的安装步骤要求我们修改WSGI应用文件。我是 openerp 的新手,我似乎无法弄清楚这一点。任何帮助将不胜感激。

在同一个 WSGI 应用程序文件中,您需要在实际的 WSGI 应用程序入口点周围添加一个包装器。如果 WSGI 应用程序入口点是在文件本身中声明的函数,那么您可以使用装饰器。

    @newrelic.agent.wsgi_application()
    def application(environ, start_response):
        ...

如果 WSGI 应用程序入口点是从不同模块导入的函数或对象,那么您可以将其包装为预装饰器样式。

    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    application = newrelic.agent.wsgi_application()(application)

然后,您应该重新启动用于重新加载 WSGI 脚本文件或模块的特定 WSGI 托管机制。

4

2 回答 2

2

当我们测试新的遗物时,修补 WSGI 处理程序(其中有几个)需要付出太多努力。但是,使用新的 relic 指令和监控在 gunicorn 下运行服务器,根本不需要更改代码。

于 2012-08-29T18:36:31.677 回答
0

我对 WSGI 一无所知,但这种方法server/openerp/wsgi/core.py看起来很有希望。

def wsgi_xmlrpc_1(environ, start_response):
    """ The main OpenERP WSGI handler."""
    if environ['REQUEST_METHOD'] == 'POST' and environ['PATH_INFO'].startswith(
            XML_RPC_PATH_1):
        length = int(environ['CONTENT_LENGTH'])
        data = environ['wsgi.input'].read(length)

您还可能会发现有关 Gunicorn 的博客文章

于 2012-05-08T18:45:39.710 回答