为相同的rails环境分离新的应用程序名称

时间:2013-08-24 17:59:24

标签: heroku newrelic

我在Heroku上为rails应用程序设置了NewRelic。 我注意到NewRelic正在从rails环境定义中确定应用程序名称。这是通过newrelic.yml配置文件中的app_name变量调解的。但是,我在不同的Heroku应用程序上运行相同的rails环境,每个应用程序用于不同的开发测试或暂存目的。因此,我们完全希望所有这些应用程序(尽管使用相同的rails环境)报告回相同的NewRelic“应用程序”。在NewRelic中根本不会提供任何价值 - 相反,每个Heroku应用程序应该是NewRelic中自己的'应用程序',否则我们只会为所有那些运行不同负载或测试的应用程序源代码的应用程序获得一个无用的聚合模拟。

配置分离的最直接,最可靠的方法是什么?

谢谢!

P.S。当然,对于我们的生产环境,我们希望将所有dynos报告为一个NewRelic应用程序。只是不适合不同的登台/测试环境。

1 个答案:

答案 0 :(得分:6)

您可以为每个不同的登台和测试环境创建一个新的环境变量,然后将该环境变量拉入newrelic.yml登台和测试环境中的app_name。

例如,您可以创建一个名为SPECIFIC_APP的环境变量,并通过在相应的应用程序中运行这些命令,将其设置为其中一个应用程序的“staging_one”和另一个应用程序的“staging_two”:

heroku config:set SPECIFIC_APP=staging_one

heroku config:set SPECIFIC_APP=staging_two

然后,您可以为每个SPECIFIC_APP环境修改New Relic app_name,如下所示:

staging:
  <<: *default_settings
  monitor_mode: true
  app_name: <%= ENV["NEW_RELIC_APP_NAME"] %> <%= ENV["SPECIFIC_APP"] %>

您可以为每个测试应用做同样的事情,在newrelic.yml结束时将其他特定于应用的环境变量附加到“测试”环境。

这样,根据每个应用程序的SPECIFIC_APP环境变量的设置,登台和测试RAILS_ENV中的每个应用程序都是唯一的。

相关问题