Application Real-Time Monitoring Service (ARMS) を使用して、Alibaba Cloud Container Service for Kubernetes (ACK) クラスターにデプロイされた Python アプリケーションを監視します。サポートされているフレームワークには、Django、Flask、FastAPI、LlamaIndex、Langchain が含まれます。ARMS は、アプリケーションのトポロジー、トレース分析、API 呼び出し分析、異常検知、および大規模言語モデル (LLM) のインタラクションの詳細なトレースを提供します。
インストールパスの選択
ARMS は、ご利用の Python アプリケーションをインストルメントする 2 つの方法をサポートしています。ご利用の ack-onepilot のバージョンに基づいて、いずれかを選択してください:
| パス | 使用するケース | 必要なステップ |
|---|---|---|
| 手動でのエージェントインストール (このページ) | ack-onepilot のバージョンが 5.0.0 未満の場合、またはエージェントのインストールを完全に制御したい場合 | ステップ 1~5 |
| 自動インストルメンテーション | ack-onepilot のバージョンが 5.0.0 以降で、Dockerfile の変更が不要なセットアップを希望する場合 | ステップ 3 をスキップします。ステップ 4 で、3 つすべてのラベルに加えて armsAutoInstrumentationEnable: "on" を追加します。ack-onepilot は Python エージェントを自動的にダウンロードしてインジェクトします。 |
前提条件
開始する前に、以下が準備できていることを確認してください:
-
ACK クラスター内の名前空間。このガイドでは、
arms-demoという名前の名前空間を使用します。「名前空間とリソースクォータの管理」をご参照ください。 -
Python 3.8 以降。ARMS は、これより前のバージョンの Python とは互換性がありません。
-
ARMS が有効化されていること。詳細については、「ARMS の有効化」をご参照ください。
ステップ 1:ack-onepilot アドオンのインストール
ack-onepilot は、非推奨となった arms-pilot コンポーネントを置き換えるもので、完全な互換性があります。アプリケーションの設定変更は不要です。
-
ACK コンソールにログインします。左側のナビゲーションウィンドウで、ACK コンソールACK コンソールACK コンソールACK コンソール[クラスター] をクリックします。
-
[クラスター] ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、[アドオン] をクリックします。
-
[ログとモニタリング] セクションで ack-onepilot を見つけ、[インストール] をクリックします。表示されるダイアログボックスで、デフォルト値を使用して [OK] をクリックします。
ack-onepilot バージョン 3.2.4 以降を使用してください。デフォルトでは、ack-onepilot は最大 1,000 個の Pod をサポートします。Pod が 1,000 個追加されるごとに、ack-onepilot の CPU を 0.5 コア、メモリを 512 MB 増やしてください。
インストール後、[アドオン] ページから ack-onepilot のアップグレード、設定、またはアンインストールができます。
arms-pilot からの移行については、「arms-pilot をアンインストールし、ack-onepilot をインストールする方法」をご参照ください。
ステップ 2:ARMS へのリソースアクセス権限の付与
ARMS は、パスワードなしの権限付与に addon.arms.token を使用します。ほとんどの ACK マネージドクラスターには、このシークレットがデフォルトで含まれていますが、一部の古いクラスターには含まれていない場合があります。
ご利用のクラスターにトークンがあるかどうかを確認します:
トークンがない場合は、手動で権限を付与します:
-
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
-
[クラスター] ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、[クラスター情報] をクリックします。
-
[基本情報] タブの [クラスターリソース] で、[ワーカー RAM ロール] の横にあるリンクをクリックします。
-
[権限] タブで、[権限の付与] をクリックします。
-
[AliyunARMSFullAccess] ポリシーを選択し、[権限の付与] をクリックします。
ご利用のクラスターが Elastic Container Instance (ECI) に接続されている場合は、RAM クイック権限付与ページに移動して権限付与を完了します。その後、ack-onepilot 用に作成された Pod を再起動します。
ステップ 3:Python エージェントの Dockerfile への統合
Dockerfile を変更して、Python エージェントをインストールし、起動します。変更には次の 3 行が含まれます:
-
PyPI から
aliyun-bootstrapをインストール — ARMS Python エージェントのインストーラーツールです。 -
エージェントインストーラーを実行 — ご利用の Alibaba Cloud リージョン ID を使用してエージェントをダウンロードし、設定します。
-
起動コマンドを変更 — ご利用のアプリケーションを
aliyun-instrumentでラップして、監視を有効化します。
特定のエージェントバージョンをインストールするには、aliyun-bootstrap -a install -v <version>を実行します。aliyun-bootstrap -a installは実行しないでください。利用可能なバージョンについては、「Python エージェントのリリースノート」をご参照ください。
Dockerfile を編集した後、イメージをビルドし、ご利用のレジストリにプッシュします。
ステップ 4:ARMS アプリケーション監視の有効化
ご利用の Deployment の Pod テンプレートにラベルを追加して、監視を有効化します。
-
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
-
[クラスター] ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、[ワークロード] > [Deployment] を選択します。
-
[デプロイメント] ページで、対象のアプリケーションの
> [YAML の編集] をクリックします。 -
spec.template.metadataの下に、次のラベルを追加します:labels: aliyun.com/app-language: python # 必須。これを Python アプリケーションとして識別します。 armsPilotAutoEnable: 'on' armsPilotCreateAppName: "deployment-name" # ARMS でのアプリケーションの表示名。deployment-nameを ARMS コンソールに表示したい名前に置き換えます。
ack-onepilot のバージョンが 5.0.0 以降の場合、Python エージェントが自動的にダウンロードおよびインジェクトされるため、Dockerfile の変更は不要です。コンテナにエージェントを手動でインストール済みの場合 (ステップ 3)、次のラベルを追加して自動インジェクションを無効にしてください:
armsAutoInstrumentationEnable: "off"
次の YAML は、arms-demo 名前空間に 2 つの Deployment (arms-python-client と arms-python-server) と 2 つのサービスを作成し、ARMS 監視を有効にします。
ステップ 5:モニタリングデータの表示
約 1 分後、ご利用のアプリケーションが ARMS コンソールに表示されます。
-
ARMS コンソールに移動し、[アプリケーションモニタリング] > [アプリケーションリスト] に進みます。

-
アプリケーション名をクリックして、詳細なメトリックを表示します。モニタリングページの完全な説明については、「アプリケーションの概要」をご参照ください。
トラブルシューティング
1 分経ってもアプリケーションが ARMS コンソールに表示されない場合は、以下を確認してください:
Pod が実行中で、ラベルが適用されていることを確認します:
kubectl get pods -n arms-demo
kubectl describe pod <pod-name> -n arms-demo | grep -A 10 "Labels:"
Pod のラベルに armsPilotAutoEnable: on と aliyun.com/app-language: python が含まれていることを確認します。
モニタリングデータが表示されない一般的な原因:
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| アプリケーションが ARMS コンソールに表示されない | ラベルがない、またはスペルミスがある | Deployment の YAML でラベル名を再確認する |
| アプリケーションは表示されるがデータがない | Python のバージョンが 3.8 未満 | Python 3.8 以降にアップグレードする |
| アプリケーションは表示されるがデータがない | エージェントがインストールされていない (手動パスの場合) | Dockerfile に aliyun-bootstrap のインストール行と aliyun-instrument の CMD の両方が含まれていることを確認する |
| Pod ログに権限付与エラーがある | addon.arms.token がない |
ステップ 2 を完了し、影響を受ける Pod を再起動する |
(オプション) リソースの解放
モニタリングを停止するには、Python エージェントをアンインストールしてください。詳細については、「Python エージェントのアンインストール」をご参照ください。
次のステップ
-
アプリケーションの概要 — ARMS でメトリック、トレース、およびトポロジーを探索
-
Python エージェントのリリースノート — エージェントのバージョン更新を確認する
-
Application Real-Time Monitoring Service とは何か? — ARMS の機能について詳しく学ぶ