• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、 を参照してください。

問題を作成する

PythonエージェントとStackato

Stackato は ActiveState 社が開発したプライベート PaaS ソリューションです。Pythonエージェントは、以下の手順でStackatoと併用することができます。

ここでは、Stackato VM イメージのバージョン 0.6 以上を使用することを前提に説明しています。古いバージョンのStackato VMイメージを使用している場合は、アップグレードする必要があります。

パッケージのインストール

ActiveState は、 PyPMパッケージ リポジトリで Python エージェント パッケージのコピーをホストします。エージェントの Python パッケージをインストールするには、 requirements.txtファイルの次の行にnewrelicを追加します。

newrelic

次に、Stackato クライアントを使用してupdateコマンドを実行します。

PyPM パッケージリポジトリは毎日更新されています。もし、PyPM パッケージリポジトリから入手できるものよりも新しいバージョンの Python エージェントを使用する必要がある場合は、代わりに pipPyPI からソースパッケージを使用する必要があります。

この場合、PyPM で使用されるrequirements.txtファイルに加えて、pip の入力としてrequirements.pipファイルを作成する必要があります。requirements.pipファイルで、 newrelicパッケージをリストする必要があります。

エージェント構成ファイル

Python agent installation で説明しているように、ローカルシステム上でPython agent configurationを生成し、Stackatoインスタンスにプッシュするディレクトリに追加する必要があります。

エージェントのログファイルの出力先を指定するためのエージェント設定ファイルのオプションが設定されている必要があります。

log_file = stderr

Pythonエージェントの初期化

integration with your Python application の手順に従って、WSGIアプリケーションのエントリーポイントを含むPythonモジュールに、Pythonエージェントを初期化するコードを手動で組み込むこともできますが、 newrelic-admin スクリプトを使用することで、簡単な起動方法も利用できます。

手動で行う場合、このような変更は通常、Pythonウェブアプリケーションを含む wsgi.py ファイルに対して行われます。エージェントの設定ファイルは同じディレクトリにあるので、 wsgi.py ファイルに変更を加えることになります。

import newrelic.agent
config_file = os.path.join(os.path.dirname(__file__), 'newrelic.ini')
newrelic.agent.initialize(config_file)

アプリケーションがインストールされているファイルシステム上のディレクトリは変更される可能性があるため、エージェント設定の場所は、 wsgi.py ファイルの場所を基準にして自動的に計算されます。

エージェントの初期化を手動で実行するコードを追加する代わりに、 newrelic-admin スクリプトを使用する方法があります。

stackato.ymlファイルで、 processesセクションにwebエントリを設定して Web アプリケーションを起動する方法を明示的に定義している場合:

processes:
web: python app.py

webを次のように置き換えます。

processes:
web: newrelic-admin run-program python app.py

つまり、既存のコマンドの前にnewrelic-admin run-programを付けています。

同時に、次のようにenvセクションをstackato.ymlファイルに追加する必要もあります。

env:
NEW_RELIC_CONFIG_FILE: newrelic.ini

webエントリをまだオーバーライドしておらず、代わりに uWSGI を実行している Stackato スタックのデフォルトに依存している場合、プロセスは少し異なります。この場合、次のようにwebエントリをstackato.ymlに追加する必要があります。

processes:
web: newrelic-admin run-program $PROCESSES_WEB

envセクションも必要です。

PROCESSES_WEBが定義されておらず、これが機能しない場合は、古い VM イメージを使用しており、アップグレードする必要があることを示しています。

手動でも自動でも、使用しているPythonウェブフレームワークに必要であれば、WSGIアプリケーションエントリーポイントオブジェクトも適切にラップする必要があります。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.