我正在尝试安装New Relic,但它说我需要对Procfile
进行更改。我似乎无法在我的应用程序的本地副本的根目录中找到它。我正在使用Django。
由于
答案 0 :(得分:0)
Heroku上的这个页面提供了有关procfile的更多信息: https://devcenter.heroku.com/articles/procfile
您不必有一个部署到Heroku,但您可以手动创建一个以更好地控制Heroku如何运行您的应用程序。根据以上链接的摘录:
部署以Heroku支持的大多数语言编写的应用程序不需要Procfile。平台自动检测语言,并创建默认Web进程类型以引导应用程序服务器。
建议您创建一个显式的Procfile,以便更好地控制和灵活应用。
要让Heroku使用您的Procfile,请将Procfile添加到应用程序的根目录,推送到Heroku:
$ git add .
$ git commit -m "Procfile"
$ git push heroku
...
-----> Procfile declares process types: web, worker
Compiled slug size is 10.4MB
-----> Launching... done
http://strong-stone-297.herokuapp.com deployed to Heroku
To git@heroku.com:strong-stone-297.git
* [new branch] master -> master
答案 1 :(得分:0)
对于New Relic支持,你必须明确地告诉Heroku在New Relic中运行一个gunicorn实例。所以你的Procfile
看起来像这样:
newrelic-admin run-program gunicorn --workers 4 --worker-class gevent --timeout 60 mysite.wsgi
您可以通过在Heroku环境变量中有条件地查找New Relic许可证而无需更改Procfile
来打开或关闭此功能:
Procfile:
web: bash scripts/heroku_run
scripts/heroku_run:
#!/bin/bash
run_command="gunicorn --workers 4 --worker-class gevent --timeout 60 mysite.wsgi"
# Run through New Relic monitoring if add-on installed
if [[ $NEW_RELIC_LICENSE_KEY != '' ]]; then
newrelic-admin run-program $run_command
else
$run_command
fi