すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:Python エージェントのよくある質問

最終更新日:Jun 23, 2026

このよくある質問では、Python エージェントに関する一般的な質問にお答えします。

aliyun-bootstrap -a install によるインストールの失敗

aliyun-bootstrap -a install コマンドでエージェントをインストールすると、次のエラーが発生することがあります:

Installation aborted due to download failure.

この失敗には、通常、次の2つの原因が考えられます:

  1. ネットワークの問題により、エージェントが OSS エンドポイントに到達できません。ネットワーク接続を確認してください。

Starting Aliyun Python Agent installation...
agent download url: https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/aliyun-python-agent/aliyun-python-agent.tar.gz
Checking network connectivity...
Downloading agent from https://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/aliyun-python-agent/aliyun-python-agent.tar.gz...
Downloading: 100%|████████████████████████████████████████████████████████████| 1.00M/1.00M [00:00<00:00, 6.21MB/s]
Extracting wheels from archive...
Extracting files: 100%|███████████████████████████████████████████████████████| 27/27 [00:00<00:00, 2151.05file/s]
Found 27 wheel files
Installing 27 packages...
Installing packages:   0%|                                                   | 0/27 [00:00<?, ?pkg/s]
Installing packages:   0%|                                                   | 0/27 [00:00<?, ?pkg/s]
  1. Python インタープリターに SSL モジュールがありません。

python3 -m ssl

このコマンドでエラーが発生する場合は、Python インタープリターに SSL モジュールがないことを意味します。aliyun-bootstrap スクリプトは依存関係のダウンロードにこのモジュールを必要とするため、Python 環境にインストールする必要があります。

起動エラー: No module named 'aliyun'

このエラーは、アプリケーションがランタイムにエージェントを見つけられない場所にインストールされていることが原因です。アプリケーションの環境で、Python インタープリターが Python エージェントの依存関係を見つけられるようにしてください。

アプリケーションの環境で次のコマンドを実行し、aliyun-bootstrap がエージェントパッケージを検索可能なパスにインストールしたことを確認してください:

python3 -m site

このコマンドは、Python インタープリターがパッケージを見つけるために使用する検索パスを出力します。以下のディレクトリ構造の例に示すように、これらのパスのいずれにも Python エージェントの依存関係が見つからない場合、インストールの場所が正しくありません。

.venv
  bin
  lib
    python3.12
      site-packages  library root
        _distutils_hack
        aliyun
          instrumentation
          opentelemetry
          sdk
          semconv
            __init__.py
        aliyun_instrumentation_dashscope-1.0.0.dist-info
        aliyun_instrumentation_dify-1.1.0.dist-info
        aliyun_instrumentation_langchain-1.1.0.dist-info
        aliyun_instrumentation_llama_index-1.0.3.dev0.dist-info
        aliyun_instrumentation_openai-1.0.1.dist-info
        aliyun_instrumentation_vllm-0.1.0.dist-info
        aliyun_opentelemetry_exporter_otlp_proto_common-1.25.0.dist-info
        aliyun_opentelemetry_exporter_otlp_proto_grpc-1.25.0.dist-info
        aliyun_opentelemetry_exporter_otlp_proto_http-1.25.0.dist-info
        aliyun_opentelemetry_instrumentation-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_aiohttp_client-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_asgi-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_django-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_fastapi-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_flask-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_httpx-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_logging-0.46b0.dev0.dist-info
        aliyun_opentelemetry_instrumentation_redis-0.46b0.dev0.dist-info

次のコマンドを使用して、aliyun-bootstrap パッケージのインストール場所を指定できます:

aliyun-bootstrap -a install -t ${TARGET_PATH}

${TARGET_PATH} をご使用の環境の正しいパスに置き換えてください。たとえば、パスは /root/demo/venv/lib/python3.12/site-packages のようになります。

Flask アプリケーションでデータが報告されない問題

デバッグモードが有効な場合、aliyun-instrument メソッドを使用して Flask アプリケーションを統合することはできません。代わりに、Flask アプリケーションのエントリファイルに次のステートメントを追加して、Python エージェントを手動でインポートする必要があります。これにより、aliyun-instrument プレフィックスを追加せずにアプリケーションを起動できます。

from aliyun.opentelemetry.instrumentation.auto_instrumentation import sitecustomize

Django アプリケーションの起動失敗

Django アプリケーションの起動に失敗し、AttributeError: module 'django.conf global_settings' has no attribute 'ROOT_URLCONF' のようなエラーが表示される場合は、DJANGO_SETTINGS_MODULE 環境変数をプロジェクトの設定モジュールに設定してください。

export DJANGO_SETTINGS_MODULE=instrumentation_example.settings

Django アプリケーションでデータが報告されない問題

python manage.py runserver 0.0.0.0:8080 のようなコマンドでデフォルトで有効になる Django のホットリロード機能は、エージェントがデータを報告するのを妨げる可能性があります。これを修正するには、--noreload オプションを追加してホットリロードを無効にしてください。

python manage.py runserver 0.0.0.0:8080 --noreload

Uvicorn アプリケーションでデータが報告されない問題

Uvicorn サーバーでホットリロード (--reload パラメーター) または複数ワーカー (--workers パラメーター) を使用すると、エージェントがデータを報告できなくなる可能性があります。これを解決するには、アプリケーションのエントリファイルに次の行を追加して、Python エージェントを手動でインポートする必要があります。アプリケーションの起動時に aliyun-instrument プレフィックスは使用しないでください。

from aliyun.opentelemetry.instrumentation.auto_instrumentation import sitecustomize

エージェントのアンインストール

Python エージェントをアンインストールするには、次のコマンドを実行してください:

aliyun-bootstrap -a uninstall

特定のリージョンとバージョンのインストール

最適なパフォーマンスを得るには、最寄りのリージョンから特定バージョンのエージェントをインストールする必要がある場合があります。次の手順に従ってください:

  1. ARMS_REGION_ID 環境変数を設定して、エージェントをプルするリージョンを指定します。

export ARMS_REGION_ID=cn-beijing

サポートされているリージョンの一覧については、「利用可能なリージョン」をご参照ください。

  1. 次のコマンドで特定バージョンの Python エージェントをインストールします。別のバージョンのエージェントがインストールされている場合は、まずそれをアンインストールすることを推奨します。

# ${version} をターゲットのバージョン番号に置き換えます
aliyun-bootstrap -a install -v ${version}

Container Service for Kubernetes (ACK) および Container Compute Service (ACS) の ack-onepilot コンポーネントを使用した Python エージェントのインストール」に記載されている非侵入型方式を使用して Python エージェントをインストールした場合、aliyun.com/agent-version ラベルを追加することでエージェントのバージョンを指定できます。詳細については、「エージェントバージョンの個別制御」をご参照ください。

公開されているすべての Python エージェントのバージョンの一覧については、「Pythonエージェントのリリースノート」をご参照ください。

ログディレクトリの指定

Python エージェントのバージョンが 1.6.0 以降であることを確認してください。その後、APSARA_APM_AGENT_WORKSPACE_DIR 環境変数を設定できます。エージェントは、ログファイルを ${APSARA_APM_AGENT_WORKSPACE_DIR}/.apsara-apm/python/logs ディレクトリに保存します。

デフォルトでは、エージェントは次の優先順序でログディレクトリを決定します:

  1. /home/admin/.opt/.apsara-apm/python/logs (ack-onepilot コンポーネントのボリュームディレクトリ)

  2. ~/.apsara-apm/python/logs (ユーザーホームディレクトリ)

  3. ./.apsara-apm/python/logs (メインの Python エントリファイルと同じディレクトリ)

ネットワーク報告モードの指定

エージェントのバージョンが 1.6.0 以降の場合、PROFILER_NETWORK_STRATEGY 環境変数を設定してネットワーク報告モードを指定できます:

  1. internal:内部ネットワーク報告を強制します。

  2. public:パブリックネットワーク報告を強制します。

  3. auto:ネットワークモードを自動的に検出します (デフォルトの動作)。

OpenAI ストリーミングにおけるトークン使用量の取得

詳細については、「ストリーミング出力」をご参照ください。デフォルトでは、OpenAI プロトコルはストリーミングコールでトークン使用量を返しません。この情報を受け取るには、stream_options={"include_usage": true} を設定して、最後のデータチャンクにトークン使用量の詳細が含まれるようにします。

子プロセスへのエージェントインジェクションの防止

ターゲットアプリケーションによって作成された子プロセスにエージェントがインジェクトされるのを防ぐには、APSARA_APM_INSTRUMENTATION_CHILD_PROCESS 環境変数を false に設定してください。