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 または /barPYTHONPATH に追加します。

PYTHONPATH への正しい追加方法は以下のとおりです。
pythonpath = /foo
pythonpath = /bar
PYTHONPATH次の構文を使用して 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ベースのフレームワーク

DjangoまたはFlaskではないWSGIベースのフレームワークをご使用の場合は、以下のようにします。
  1. AppDynamics 構成ファイルで、WSGI アプリケーションを指定するには、APPD_WSGI_MODULE ディレクティブを設定して、アプリケーションモジュールを指すようにします。「Python エージェント設定」を参照してください。
  2. 実行コマンドの先頭に pyagent run を追加。
  3. AppDynamicsが生成したアプリケーションを実行。
たとえば、実行コマンドが次のような場合、
gunicorn -w 8 -b '0.0.0.0:9000' example.app:application
以下の2つのコマンドと置き換えます。
pyagent run -c /path/to/appdynamics.cfg -- gunicorn -w 8 -b '0.0.0.0:9000'
appdynamics.scripts.wsgi:application