我正在使用 New Relic for Rails,但只需要 New Relic 来监控我的一个生产环境。但是,我有一个也在生产模式下运行的登台服务器。 New Relic 将两者都检测为我的应用程序的运行产品实例(它应该如此),但我不想在我只想关注一个实例时为监视两个实例付费。
New Relic 接受许可证 key 的环境变量:
license_key: <%= ENV['NEWRELIC_ACCOUNT_KEY'] %>
是否可以检测环境文件(即 config/environments/production.rb)中的主机名,以便我可以动态定义此环境变量?
这两个环境都是从同一个 Git 存储库、同一个源代码库部署的,所以我不能真正在每次部署的代码中更改它——最好能够以某种方式动态定义环境变量。
如有任何想法,我们将不胜感激!谢谢!
最佳答案
New Relic Ruby 代理会将 newrelic.yml
配置文件解析为 ERB,然后再将其解析为 YAML。因此,您可以做很多巧妙的技巧,例如:
production:
license_key: <%= Socket.gethostname == 'mission-critical.example.com' ? 'PAID_ACCOUNT_LICENSE_KEY' : 'FREE_LITE_ACCOUNT_LICENSE_KEY' %>
此解析全部发生在应用程序启动时。
如果您的 RAILS_ENV 不同于“以生产模式”运行的临时服务器中的“生产”,那么您可以按照 Steve Graham 的建议使用环境部分。
关于ruby-on-rails - Rails - 根据主机名为插件提供许可证 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1659361/