Come testare un'istruzione EVAL PYTHON in INI CONFIG DI APPLICAZIONE UWSGI?
Domanda
Per quanto posso dire, la mia istruzione EVAL all'interno di un'applicazione di un USWGI non funziona / eseguendo, ma non riesco a capire come testare questo.
- .
- OS: Debian GNU / Linux 7.1 (Wheezy)
- UWSGI: 1.2.3-debian
-
Python: 2.7
Sto effettivamente cercando di configurare il monitoraggio dell'applicazione di NewRelic con il seguente nel mio file app.ini
(usando il Metodo di montaggio dell'applicazione per un'app 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)
.
My newrelic.ini
Conf:
log_file = /tmp/newrelic-python-agent.log
.
Dopo aver riavviato e apportare alcune richieste all'app (che è attiva e funzionante secondo il consueto) il newrelic log_file non è nemmeno stato creato e non c'è nulla nel USWSGI APP Log o Django Log , quindi non so come dire cosa sta succedendo in Eval.
Ho provato a mettere roba sintatticamente errata nella valutazione, ma gli UWSGI si riavviano ancora con successo.
C'è un modo per convalidare ciò che è nella dichiarazione EVAL come eseguita dal processo UWSGI?
Soluzione
Sono in ritardo per la festa, ma il tuo problema è stato che hai avuto un'opzione wsgi-file
che ha reso eval
inutile.(Lo stesso vale per l'opzione module
- Questo è il caso che ho avuto.)
Quindi, per rendere UWSGI avvolgere qualsiasi applicazione WSGI con un middleware, hai appena dovuto rimuovere le opzioni offensive.I.e.:
; 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)
. Altri suggerimenti
Sembra che ci sia molto in corso qui.Potresti voler aprire un biglietto con Newrelic a
https://support.newrelic.com in modo che possano indagare su ciò che sta accadendo nella tua configurazione.