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