Deploy the Dynamic Languages Proxy

The Dynamic Languages Proxy acts as a communication gateway between the Python Agent running in the application process and the AppDynamics Controller.

You can use one of two available options to deploy the Dynamic Languages Proxy, either the:

  • Sidecar Container (recommended): This option follows the best practice of one process per container. The Dynamic Language Proxy runs in a sidecar container separate from the application container, or
  • Application Container: This option uses the default configuration to run the proxy in the same container as the application.

サイドカーコンテナへのダイナミック言語プロキシの展開

AppDynamics では、コンテナごとに 1 つのプロセスを維持するというベストプラクティスに従うことを推奨しています。
  1. サイドカーコンテナを使用してダイナミック言語プロキシを実行するには、Python アプリケーションの起動時に --use-manual-proxy パラメータを追加します。
    pyagent run --use-manual-proxy python ./app.py
    --use-manual-proxy パラメータは、Python エージェントがダイナミック言語プロキシを同じアプリケーションコンテナ内の別プロセスとして開始すること(デフォルト動作)を防ぎます。
  2. 展開されたサイドカーコンテナを、プロキシを実行するように設定します。
    この Kubernetes 展開仕様のスニペットでは、Docker Hub で公開されている dl-proxy イメージを使用するプロキシという名前の 2 番目のコンテナを定義する方法を示しています。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: mypython-app
    spec:
    <...>
    spec:
    containers:
    - name: mypython-app
    image: myrepo/python-app-with-appd:v1
    <...>
    - name: proxy
    image: docker.io/appdynamics/dl-proxy:latest
    imagePullPolicy: Always
    env:
    - name: APPDYNAMICS_DEBUG_LOG
    value: "on"
    - name: APPDYNAMICS_LOGGING_LEVEL
    value: "debug"
    - name: APPDYNAMICS_TCP_COMM_HOST
    value: "0.0.0.0"
    - name: APPDYNAMICS_TCP_COMM_PORT
    value: "9091"
    - name: APPDYNAMICS_TCP_PORT_RANGE
    value: "10000-10100"
    ports:
    - containerPort: 9091
    protocol: TCP
    resources:
    ...

アプリケーションコンテナへのダイナミック言語プロキシの展開

プロキシをアプリケーションと同じコンテナ内の別プロセスとして実行する場合は、Python アプリケーションの起動時に --use-manual-proxy パラメータを省略します。

pyagent run python ./app.py

Python エージェントは、同じコンテナ内のプロキシに対して別のプロセスを自動的に開始します。サイドカーコンテナは展開に追加せず、アプリケーションコンテナのみ定義されるようにしてください。