据我所知,USWGI应用程序配置中的eval语句无法正常/执行,但我无法弄清楚如何测试它。
我实际上尝试使用app.ini
文件中的以下内容设置Newrelic的应用程序监控(使用application mounting method作为Django应用程序):
[uwsgi]
chdir = /home/app-user/myapp/bin
wsgi-file = django.wsgi
socket = 127.0.0.1:3031
pythonpath = /home/app-user/myapp/src
logto = /var/log/uwsgi/app/myapp.log
enable-threads = true
single-interpreter = true
eval = import newrelic.agent, django.wsgi; newrelic.agent.initialize('/path/to/newrelic.ini'); application = newrelic.agent.wsgi_application()(django.wsgi.application)
我的newrelic.ini
conf:
log_file = /tmp/newrelic-python-agent.log
重新启动并向应用程序发出一些请求(按照常规启动并运行)后,甚至没有创建newrelic log_file,并且 uwsgi app log 或 django log ,所以我不知道如何判断eval中发生了什么。
我已经尝试在eval中直接输入不正确的语法,但uwsgi仍然成功重启。
有没有办法验证uwsgi进程执行的eval语句中的内容?
答案 0 :(得分:1)
我迟到了,但你的问题是你有wsgi-file
选项让eval
无效。 (同样适用于module
选项 - 这就是我的情况。)
因此,要使uWSGI使用中间件包装任何WSGI应用程序,您只需删除有问题的选项。即:
; DON'T USE THIS: wsgi-file=myproject/wsgi.py
; NEITHER THIS: module=myproject.wsgi
eval=import myproject.wsgi, myfancymw; application = myfancymw.wrap(myproject.wsgi.application)
答案 1 :(得分:-1)
听起来这里有很多事情发生。您可能希望在
处打开带有newrelic的票证https://support.newrelic.com这样他们就可以调查您的设置中发生了什么。