質問

私はRailsのための新しいレリックを使用して、唯一の私の1つの製造環境を監視するために、新しいレリックが必要です。しかし、私はまた、プロダクションモードで実行ステージングサーバーを持っています。 (それが必要として)新しいレリックが自分のアプリケーションの動作のprodインスタンスとしての両方を検出したが、私は一つだけに目を維持したいときに、私は2つのインスタンスを監視するために支払うことをしたくない。

新しいRelicのは、ライセンスキーの環境変数を受け入れ

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

私は動的にこの環境変数を定義することができるように環境ファイル(すなわち、設定/環境/ production.rb)でホスト名を検出することは可能ですか?

両方の環境は同じGitのリポジトリ、同じソースコードベースから展開されているので、私は本当に、各展開のためのコードでそれを変更することはできません - 。それは、動的に何らかの形で環境変数を定義することができるように最善でしょう。

任意の考えをいただければ幸いです!ありがとう!

役に立ちましたか?

解決

新しいRelicのRubyのエージェントは、YAMLとしてそれを解析する前にERBとしてnewrelic.yml・コンフィギュレーション・ファイルを解析します。

:そのため、次のようなきちんとしたトリックの多くを行うことができます
production:
  license_key: <%= Socket.gethostname == 'mission-critical.example.com' ? 'PAID_ACCOUNT_LICENSE_KEY' : 'FREE_LITE_ACCOUNT_LICENSE_KEY' %>

この解析は、すべてのアプリの起動時に起こります。

あなたのRAILS_ENVは、「プロダクションモードで」実行されるステージングサーバーの「生産」から異なっていた場合は、スティーブ・グラハムが示唆するように、

、そしてあなただけの環境のセクションを使用することができます。

他のヒント

あなたはステージング用に別の環境を作成したことがありますか?すなわち、開発、テスト、生産、およびステージング? 手順については、こちらをを参照してください...

1はconfig/newrelic.ymlにその環境のための動作を指定することができ、ことを行ってた。

common: &default_settings
  license_key: 'PASTE_YOUR_KEY_HERE'
  …

development:
  enabled: false
  …

test:
  enabled: false
  …

production:
  enabled: true
  …

staging: 
  enabled: false
  …

などなど。

ホスト名は、リクエストオブジェクトでのみ利用可能ですので、レールが環境を構築する場合いいえ、それは利用できません。

私はちょうどstaging.rbと「ステージング」でアプリを起動するproduction.rbをコピーするには、ステージングデプロイスクリプトを設定します。別の技術は、あなたのSCMでnewrelic.ymlを維持し、代わりにそれをコピーし、またはどこか他の場所から現在のdeployディレクトリに、それをリンクしないことであろう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top