1

我已经为 Heroku 上的 Rails 应用程序设置了 NewRelic。我注意到 NewRelic 正在根据 rails 环境定义确定应用程序名称。这是通过 newrelic.yml 配置文件中的 app_name 变量来调节的。但是,我在不同的 Heroku 应用程序上运行相同的 rails 环境,每个应用程序都用于不同的开发测试或登台目的。所以我们完全希望所有这些应用程序(尽管使用相同的 rails 环境)向同一个 NewRelic '应用程序'报告。这在 NewRelic 中根本没有任何价值——相反,每个 Heroku 应用程序在 NewRelic 中应该是它自己的“应用程序”,否则我们只会为所有这些应用程序获得一个无用的聚合,每个应用程序运行不同的源版本,具有不同的负载或测试模拟。

配置这种分离的最直接和最可靠的方法应该是什么?

谢谢!

PS 当然,对于我们的生产环境,我们确实希望将所有测功机报告为一个 NewRelic 应用程序。只是不适用于不同的登台/测试环境。

4

1 回答 1

6

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

例如,您可以创建一个名为 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 中的每个应用程序都是唯一的。

于 2013-08-26T18:30:42.170 回答