我使用New Relic的Rails的,但只需要New Relic的监视我的一个生产环境。不过,我也运行在生产模式下的临时服务器。 New Relic的检测都为我的应用程序的操作督促情况下(因为它应该),但我不希望有支付监控两种情况下,我只想保持眼睛的人。

新遗物接受的环境变量的许可密钥:

license_key: <%= ENV['NEWRELIC_ACCOUNT_KEY'] %>

是否有可能检测环境中的文件(即,配置/环境/ production.rb)的主机名,这样我可以动态地定义该环境变量?

两种环境由相同Git仓库,相同的源代码库部署,所以我真的不能改变它在每个部署的代码 - 这将是最好的,以便能够以某种方式动态地定义环境变量

任何想法将不胜感激!谢谢!

有帮助吗?

解决方案

新遗物红宝石代理将解析它作为YAML之前解析newrelic.yml配置文件作为ERB。因此,你可以做很多巧妙的技巧,如:

production:
  license_key: <%= Socket.gethostname == 'mission-critical.example.com' ? 'PAID_ACCOUNT_LICENSE_KEY' : 'FREE_LITE_ACCOUNT_LICENSE_KEY' %>

此解析所有发生在应用程序启动时间。

如果您在RAILS_ENV运行“在生产模式”,即临时服务器,那么你可以只使用环境部分史蒂夫·格雷厄姆建议。来自“生产”不同

其他提示

你有没有创建分期一个单独的环境?即开发,测试,生产和分期? 见这里指令...

已经这样做了,就可以在config/newrelic.yml该环境指定行为

common: &default_settings
  license_key: 'PASTE_YOUR_KEY_HERE'
  …

development:
  enabled: false
  …

test:
  enabled: false
  …

production:
  enabled: true
  …

staging: 
  enabled: false
  …

等,等

主机名是仅在请求对象中可用的,所以没有,当导轨构建环境是不可用的。

我只是想设置您的分期部署脚本复制到production.rb和staging.rb在“升级”启动的应用程序。另一种方法是不保持newrelic.yml在你的供应链管理,而是将它复制或链接它,从别的地方到当前deploy目录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top