dotcloud.yml ファイルの新しい New Relic 構成変数を使用してセットアップされた Python アプリケーションがあり、正常に動作します。
ただし、テスト/ステージング環境としてサンドボックス インスタンスを実行したいので、ini 構成のさまざまな構成セクションを使用するように newrelic エージェントの環境を設定できるようにしたいと考えています。私の dotcloud.yml は次のように設定されています。
www:
type: python
config:
python_version: 'v2.7'
enable_newrelic: True
environment:
NEW_RELIC_LICENSE_KEY: *****************************************
NEW_RELIC_APP_NAME: Application Name
NEW_RELIC_LOG: /var/log/supervisor/newrelic.log
NEW_RELIC_LOG_LEVEL: info
NEW_RELIC_CONFIG_FILE: /home/dotcloud/current/newrelic.ini
サンボックスが「テスト」として設定され、ライブアプリケーションが「本番」に設定されるように、カスタム環境変数があります
次に、uswsgi.py で次のように呼び出しています。
NEWRELIC_CONFIG = os.environ.get('NEW_RELIC_CONFIG_FILE')
ENVIRONMENT = os.environ.get('MY_ENVIRONMENT', 'test')
newrelic.agent.initialize(NEWRELIC_CONFIG, ENVIRONMENT)
ただし、uwsgi.log ファイルでこれを取得しているため、dotcloud インスタンスはすでに newrelic を有効にしています。
Sun Nov 18 18:50:12 2012 - unable to load app 0 (mountpoint='') (callable not found or import error)
Traceback (most recent call last):
File "/home/dotcloud/current/wsgi.py", line 15, in <module>
newrelic.agent.initialize(NEWRELIC_CONFIG, ENVIRONMENT)
File "/opt/ve/2.7/local/lib/python2.7/site-packages/newrelic-1.8.0.13/newrelic/config.py", line 1414, in initialize
log_file, log_level)
File "/opt/ve/2.7/local/lib/python2.7/site-packages/newrelic-1.8.0.13/newrelic/config.py", line 340, in _load_configuration
'environment "%s".' % (_config_file, _environment))
newrelic.api.exceptions.ConfigurationError: Configuration has already been done against differing configuration file or environment. Prior configuration file used was "/home/dotcloud/current/newrelic.ini" and environment "None".
そのため、uwsgi.py が呼び出される前に newrelic エージェントが初期化されているように見えます。
だから私の質問は:
newrelic 環境を初期化する方法はありますか?