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

この機械翻訳は、参考として提供されています。

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

問題を作成する

PythonエージェントとStackato

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

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

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

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

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エージェントの初期化

Python アプリケーションとの 統合の手順に従って、 エントリ ポイントを含む PythonWSGI モジュールに Python エージェントを初期化するコードを手動で含めることもできますが、newrelic-admin スクリプトを使用した簡略化された起動方法も利用できます。

手動で行う場合、このような変更は通常、Python Web アプリケーションが含まれる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スクリプトを使用することもできます。

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

processes:
web: python app.py

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

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

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

同時に、次のコードを使用してstackato.ymlファイルにenvセクションを追加する必要があります。

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.