Container Service for Kubernetes (ACK) クラスターにデプロイされた Python アプリケーション (Django、Flask、FastAPI などのフレームワークで構築された Web アプリケーションや、LlamaIndex と Langchain を使用して開発された AI および LLM アプリケーションなど) では、Application Real-Time Monitoring Service (ARMS) を使用してアプリケーションのパフォーマンスをモニタリングできます。モニタリングを有効にするには、ack-onepilot コンポーネントをインストールし、Dockerfile を変更します。これにより、アプリケーション トポロジー、トレーシング、API 呼び出し分析、異常検出、大規模モデルのインタラクションの詳細な追跡などの機能が有効になります。
前提条件
名前空間が作成されていること。詳細については、「名前空間とリソースクォータの管理」をご参照ください。このトピックでは、
arms-demo名前空間を例として使用します。Python ランタイムがバージョン 3.8 以降であること。
ARMS は Python 3.8 以降と互換性があります。これより前のバージョンを使用すると、接続の問題が発生する可能性があります。
ARMS は、Alibaba Cloud が提供するアプリケーションパフォーマンス管理 (APM) サービスです。アプリケーションモニタリングの詳細については、「Application Real-Time Monitoring Service (ARMS) とは」および「アプリケーションモニタリングとは」をご参照ください。
手順 1:ack-onepilot コンポーネントのインストール
レガシーコンポーネントである arms-pilot はメンテナンスが終了しています。ack-onepilot はその後継であり、完全な互換性があります。移行に際してアプリケーション設定の変更は不要です。移行手順については、「arms-pilot のアンインストールと ack-onepilot のインストール」をご参照ください。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[ログとモニタリング] セクションで ack-onepilot アドオンを見つけ、アドオンカードにある インストール をクリックします。
説明ack-onepilot のバージョンが 3.2.4 以降であることを確認してください。デフォルトでは、ack-onepilot コンポーネントは最大 1,000 個の Pod をサポートします。この制限を超える Pod が 1,000 個増えるごとに、ack-onepilot の CPU リソースを 0.5 コア、メモリリソースを 512 MB 増やしてください。
インストールが完了すると、アドオン管理 ページで ack-onepilot アドオンのアップグレード、設定、またはアンインストールができます。
手順 2:ARMS へのリソースアクセスの承認
ARMS は、パスワードなしの承認に addon.arms.token を使用します。ほとんどの ACK マネージドクラスターには、デフォルトでこの Secret が含まれています。一部の古いクラスターには含まれていない場合があります。
クラスターにトークンがあるかどうかを確認します。
トークンが見つからない場合は、手動で権限を付与します。
ACK コンソールにログインします。左側メニューで、[クラスター] をクリックします。
[クラスター] ページで、対象クラスターの名前をクリックします。左側メニューで、[クラスター情報] をクリックします。
[基本情報] タブの [クラスターリソース] で、[ワーカー RAM ロール] の横にあるリンクをクリックします。
[権限] タブで、[権限を付与] をクリックします。
[AliyunARMSFullAccess] ポリシーを選択し、[権限を付与] をクリックします。
クラスターが Elastic Container Instance (ECI) に接続されている場合は、[RAM クイック承認] ページに移動して承認を完了します。その後、ack-onepilot 用に作成された Pod を再起動します。
手順 3:ARMS Python エージェントの Dockerfile への統合
Dockerfile を変更して ARMS Python エージェントを統合し、エージェントを使用して Python アプリケーションを起動します。
PyPI からエージェントインストーラーをインストールします。
RUN pip3 install aliyun-bootstrapエージェントをインストールします。
<region-id>をお使いの Alibaba Cloud リージョン ID (例:cn-hangzhou) に置き換えます。説明特定のエージェントバージョンをインストールするには、
aliyun-bootstrap -a install -v <version>を実行します。リリースされたすべてのバージョンについては、「Python エージェントのリリースノート」をご参照ください。RUN ARMS_REGION_ID=<region-id> aliyun-bootstrap -a install起動コマンドを更新して、
aliyun-instrumentプレフィックスを使用します。CMD ["aliyun-instrument", "python", "app.py"]イメージをビルドします。
以下は、完全な Dockerfile の例です。
手順 4:ARMS モニタリングの有効化
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
デプロイメント ページで、お使いのアプリケーションを探し、操作列の をクリックします。
spec.template.metadataの下に次のラベルを追加します。<app-name>を、my-python-serviceのようなアプリケーションのわかりやすい名前に置き換えます。重要ack-onepilot のバージョンが 5.0.0 より後で、かつ Dockerfile にエージェントを手動でインストール済みの場合、自動インジェクションを無効にするには、
armsAutoInstrumentationEnable: "off"ラベルを追加します。labels: aliyun.com/app-language: python # 必須。Python アプリケーションであることを示します。 armsPilotAutoEnable: 'on' # ARMS モニタリングを有効にします。 armsPilotCreateAppName: "<app-name>" # ARMS コンソールに表示されるアプリケーション名。次のコードは、Deployment を作成し、アプリケーションモニタリングを有効にするための完全な YAML テンプレートです。
手順 5:モニタリング詳細の表示
約 1 分後、ARMS コンソールにログインし、左側メニューで を選択して、Python アプリケーションとそのレポートデータを確認します。
[アプリケーションリスト] には、接続されている [arms-python-client] アプリケーションとそのメトリクス (1 秒あたりのリクエスト数、エラー率、平均応答時間など) が表示されます。
名前 をクリックして ARMS コンソールのアプリケーションモニタリングページに移動し、詳細なモニタリング情報を表示します。詳細については、「アプリケーション概要」をご参照ください。
(任意) 手順 6:リソースの解放
ARMS で Python アプリケーションをモニタリングする必要がなくなった場合は、ARMS Python エージェントをアンインストールしてモニタリングを停止できます。詳細については、「Python エージェントのアンインストール」をご参照ください。
> YAML の編集