كيفية اختبار بيان تقييم بايثون في تكوين ini لتطبيق UWSGI؟
سؤال
بقدر ما أستطيع أن أقول، بيان التقييم الخاص بي ضمن تكوين تطبيق USWGI لا يعمل/ينفذ، لكن لا يمكنني معرفة كيفية اختبار ذلك.
- نظام التشغيل: دبيان جنو/لينكس 7.1 (أزيز)
- أووسجي: 1.2.3-ديبيان
- بايثون: 2.7
أنا في الواقع أحاول إعداد مراقبة تطبيق Newrelic باستخدام ما يلي في ملفي app.ini
الملف (باستخدام طريقة تركيب التطبيق لتطبيق جانغو):
[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
أسيوط:
log_file = /tmp/newrelic-python-agent.log
بعد إعادة التشغيل وتقديم بعض الطلبات إلى التطبيق (الذي يعمل كالمعتاد)، لم يتم حتى إنشاء ملف السجل الجديد، ولا يوجد شيء في سجل تطبيق uwsgi أو ال سجل جانغو, ، لذلك لا أعرف كيف أخبرك بما يحدث في التقييم.
لقد حاولت وضع أشياء غير صحيحة من الناحية النحوية في التقييم، ولكن لا تزال إعادة تشغيل uwsgi ناجحة.
هل هناك طريقة للتحقق من صحة ما هو موجود في بيان التقييم كما تم تنفيذه بواسطة عملية uwsgi؟
المحلول
لقد تأخرت على الحفلة، لكن مشكلتك كانت أنك حضرت 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)
نصائح أخرى
يبدو أن هناك الكثير يحدث هنا.قد ترغب في فتح تذكرة مع newrelic في
https://support.newrelic.com حتى يتمكنوا من التحقيق في ما يحدث في الإعداد الخاص بك.