我正在尝试安装 New Relic,但它说我需要对Procfile
. 不过,我似乎无法在我的应用程序的本地副本的根目录中找到它。我正在使用 Django。
谢谢
Heroku 上的此页面提供了有关 procfile 的更多信息: https ://devcenter.heroku.com/articles/procfile
您不必将一个部署到 Heroku,但您可以手动创建一个以更好地控制 Heroku 如何运行您的应用程序。根据上面链接的摘录:
不需要 Procfile 来部署以 Heroku 支持的大多数语言编写的应用程序。该平台会自动检测语言,并创建默认的 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
对于 New Relic 支持,您必须明确告诉 Heroku 在 New Relic 中运行 gunicorn 实例。所以你Procfile
看起来像这样:
newrelic-admin run-program gunicorn --workers 4 --worker-class gevent --timeout 60 mysite.wsgi
Procfile
您可以通过有条件地在 Heroku 环境变量中查找您的 New Relic 许可证来打开或关闭此功能,而无需更改您的:
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