ruby-on-rails - Rails - 根据主机名为插件提供许可证 key

标签 ruby-on-rails ruby-on-rails-plugins newrelic

我正在使用 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/

相关文章:

ruby-on-rails - 如何在 ActiveRecord 中为每个唯一列值获取 2 条或更多记录?

ruby-on-rails - ActiveAdmin - 索引为网格 - 多个字段

ruby-on-rails - 如何输出到网站而不是控制台以在 Rails 中进行调试?

ruby-on-rails - Rails i18n - 无法更改错误格式

azure - 从 Github 和 VS.NET 将新的 Relic 检测站点部署到 Azure 时出错

postgresql - Heroku 上慢得离谱的 SQL 查询

ruby-on-rails - restful_authentication 没有出现

ruby-on-rails - 使用 Rails 导入 gmail/yahoo/hotmail/aol 地址簿

ruby-on-rails - 按地理位置排序 Solr/sunspot 搜索结果

android - Android Studio 中的新 Relic - newrelic.properties - 变体