The configuration docs clearly state:
The newrelic-admin program you run must be coming from the same Python installation or virtual environment as your application is using. You cannot mix programs/components from different Python installations. If this is done, the agent will not run correctly.)
it’s just when I read those back in November I didn’t understand well what Virtual Environments are in Python. Now I understand a little bit more, but it’s still feels of magic though I know it’s a SMOP behind the scenes.
Anyway, since we we’re using Supervisor we’d been starting up the processes like this:
[program:awesomeo-5000] user=ubuntu command=/usr/local/bin/newrelic-admin run-program /usr/local/bin/awesomeo --model 5000 directory=/opt/awesomeo environment= ... CACHE_SERVER="", NEW_RELIC_CONFIG_FILE="/opt/awesomeo/newrelic.ini"
but since the program we’re running had its own virtual environment
newrelic-admin would silently fail. Our program would start up just fine, but
no monitoring data would be sent. And, frustratingly, no logging data would be
written out – even with this in the INI:
[newrelic] ... log_file = /tmp/newrelic-agent.log log_level = debug
Re-installing the program with:
$ source venv/bin/activate $ pip install -I newrelic
or the Ansible play:
- name: lightbox API | force newrelic package into virtualenv pip: name=newrelic virtualenv=/venv virtualenv_site_packages=yes extra_args='-I' state=present sudo: False
will put it in your venv even if it’s installed locally.
I ran across this word in a student essay today. It’s a neat word, and I hadn’t seen how Google treats such terms, which I think is both useful and informative:
…though the pronunciation icon didn’t work for me. (shrug)