pyagent run
WSGI サーバーの呼び出し方法を制御できる場合は、pyagent run を使用してアプリケーションをインストルメント化できます。このコマンドで、Python エージェント対応の WSGI サーバを実行します。コマンドを指定して実行するためのプロセス ランチャまたはマネージャを使用する場合は、一般的にこの方法が可能です。たとえば、Supervisor、uWSGI without Emperor、init.d スクリプトなどで管理されるフレームワークがあります。
pyagent run コマンドを使用するには、既存のアプリケーションの実行コマンドの前に pyagent run コマンドを追加して、「エージェントの設定」で説明されている AppDynamics 構成ファイルをパラメータとして渡します。
いかなる場合も PYTHONPATH を上書きしないでください。上書きすると、pyagent run コマンドがエージェントをロードしなくなります。PYTHONPATH に追加する必要がある場合は、pythonpath 構成変数を使用します。たとえば、次のコマンドを使用すると、上書きではなく、/foo と /bar を PYTHONPATH に追加します。
PYTHONPATH への正しい追加方法pythonpath = /foo
pythonpath = /barPYTHONPATH に値を追加しないでください。これは、PYTHONPATH への誤った追加方法です。env = PYTHONPATH=/foo:/bar supervisorctlの使用
supervisorctl を使用する場合は、Supervisor 構成を更新した後で supervisorctl reload コマンドを使用して Python エージェントをロードする必要があります。supervisorctl restart コマンドを使用した場合、Supervisor はその構成ファイルを再読み込みしません。
エージェントが読み込まれたことを確認するには、Pythonエージェントログファイルを検索します。デフォルトの場所は、/tmp/appd/logs/<app_name>-<node_name>.log です。たとえば、エージェント構成ファイルに指定したアプリケーション名が myapp でノード名が mynode であり、ログファイルの場所を変更していない場合は、ログファイルは /tmp/appd/logs/myapp-mynode になります。
ログファイルが存在する場合は、エージェントがロードされています。ログファイルが存在しない場合はエージェントは読み込まれていません。この場合、supervisorctl reload を使用して Supervisor 構成を再読み込みしてください。
DjangoおよびFlask
- ご使用のフレームワークが Django または Flask の場合は、
pyagent runを実行コマンドの先頭に追加してください。たとえば、現在の run コマンドが次のようである場合:gunicorn -w 8 -b '0.0.0.0:9000' example.app:application - ASGI コードベースを unicorn サーバーで実行する場合は、run コマンドの前に
pyagent runを追加します。たとえば、現在の run コマンドが次のようである場合:uvicorn --port 9090 --reload --log-level trace mysite.asgi:application
- gnuicorn
pyagent run -c <path_to_appdynamics_config_file> -- gunicorn -w 8 -b '0.0.0.0:9000' example.app:application- uvicorn
pyagent run -c <path_to_appdynamics_config_file> -- uvicorn --port 9090 --reload --log-level trace mysite.asgi:application
その他のPure Python WSGIベースのフレームワーク
- AppDynamics 構成ファイルで、WSGI アプリケーションを指定するには、APPD_WSGI_MODULE ディレクティブを設定して、アプリケーションモジュールを指すようにします。「Python エージェント設定」を参照してください。
- 実行コマンドの先頭に
pyagent runを追加します。 - AppDynamicsが生成したアプリケーションを実行。
gunicorn -w 8 -b '0.0.0.0:9000' example.app:applicationpyagent run -c /path/to/appdynamics.cfg -- gunicorn -w 8 -b '0.0.0.0:9000'
appdynamics.scripts.wsgi:application