このトピックでは、Application Real-Time Monitoring Service (ARMS) を使用して、Alibaba Cloud Container Service for Kubernetes で実行されているアプリケーションをモニターする方法について説明します。
ARMS の概要
ARMS は、Alibaba Cloud によって開発された Java アプリケーションパフォーマンス管理 (APM) モニタリングプロダクトです。
ARMS を使用して Java アプリケーションをモニターする場合、コードを変更することなく、アプリケーションの起動スクリプトにプローブをマウントするだけです。 アプリケーションを包括的にモニターすることで、障害のある低速のインターフェイスをすばやく見つけ、パラメーターの呼び出しを再現し、メモリリークの検出や、システムのボトルネックの発見など、オンラインで問題をより効率的に診断します。 詳細は、「ARMS」をご参照ください。
ARMS は、次のようにアプリケーションをモニターします。
- アプリケーショントポロジを自動的に検出。
- インターフェイスを自動的に検出してモニター。
- 例外トランザクションと遅いトランザクションをキャプチャし、SQL 分析を提供。
- Java 例外レポートを提供。
- トレースベースのトランザクションスナップショットクエリを提供。
- 多次元トレース検索や例外トレース検索など、多次元アドホックトラブルシューティングを提供。
- PaaS プラットフォームを統合。
前提条件
- Kubernetes クラスタが作成されていること。 詳細は、「Kubernetes クラスターの作成」をご参照ください。
- ARMS が有効化されていること。 詳しくは、「ARMS の有効化」をご参照ください。
ARMS コンポーネントをインストールする
- Container Service コンソール にログインします。
- 左側のナビゲーションウィンドウから、[アプリのカタログ] ページで、 ack-arms-pilot を選択します。 をクリックします。
- [アプリカタログ -ack-arms-pilot] ページで、 [デプロイ] をクリックします。
左側のナビゲーションウィンドウで、ack-arms-pilot-default-ack-arms-pilot という名前のアプリケーションがページに表示されます。 
を選択し、対象となるクラスターと名前空間を選択します。 
ARMS を使用するための権限付与
- Container Service-Kubernetes の左側のナビゲーションウインドウで 、 を選択します。
注 このセクションで必要な操作を実行するには、プライマリアカウントを使用して、Container Service コンソールにログインする必要があります。
- 対象となるクラスター名をクリックして、クラスターの詳細を表示します。
- [クラスターリソース] エリアで、 [Worker RAM ロール] をクリックします。注
このトピックでは、RAM コンソールの最新バージョンを使用しています。
RAM コンソールの以前のバージョンを使用している場合は、次のいずれかの方法を使用して、対象となるポリシードキュメントを変更できます。
方法 1
- 左側のナビゲーションウィンドウで、[ロール] をクリックし、[ロール名] ボックスで、 [Worker RAM ロール] 名を入力します。 対象となる [ロール名] をクリックします。
- [基本情報] エリアで、右上隅の [基本情報の編集] をクリックします。
方法 2
RAM ダッシュボードページの右下隅にある [新バージョン] をクリックして、RAM コンソールの最新バージョンに切り替えます。 Container Service コンソールで、 [Worker RAM ロール] をクリックして、RAMコンソールにログインします。 - 左側のナビゲーションウィンドウで、[ロール] をクリックし、[ロール名] ボックスで、 [Worker RAM ロール] 名を入力します。 対象となる [ロール名] をクリックします。
- [RAM ロール] ページで、 [権限] タブページのポリシー名をクリックします。
- [ポリシー] ページで、 [ポリシードキュメント] タブページの [ポリシードキュメントの編集] をクリックします。
- [ポリシードキュメント] エリアで、次のフィールドを追加し、 [OK] をクリックします。
{ "Action": "rds:*", "Resource": "*", "Effect": "Allow" }
アプリケーションの ARMS モニタリングをデプロイする
ターゲットデプロイメントの作成に使用される YAML ファイルに、次の
annotations
を追加して、ARMS アプリケーションモニタリングをデプロイします。
annotations:
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "<your-deployment-name>"
注
spec
フィールドのtemplate
のmetadata
にあるannotations
を YAML ファイルに追加する必要があります。armsPilotCreateAppName
の値は、ARMS によってモニターされるアプリケーションの名前です。
- Container Service コンソールの左側のナビゲーションウィンドウで、 をクリックします。
- 右上隅で、[テンプレートによる作成] をクリックします。
- 対象となるクラスターと名前空間を選択し、デプロイメントを作成します。
apiVersion: apps/v1beta1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: arms-springboot-demo labels: app: arms-springboot-demo spec: replicas: 2 selector: matchLabels: app: arms-springboot-demo template: metadata: annotations: armsPilotAutoEnable: "on" armsPilotCreateAppName: "arms-k8s-demo" labels: app: arms-springboot-demo spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1 imagePullPolicy: Always name: arms-springboot-demo env: - name: MYSQL_SERVICE_HOST value: "arms-demo-mysql" - name: MYSQL_SERVICE_PORT value: "3306" --- apiVersion: apps/v1beta1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: arms-demo-mysql labels: app: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1 name: mysql ports: - containerPort: 3306 name: mysql --- apiVersion: v1 kind: Service metadata: labels: name: mysql name: arms-demo-mysql spec: ports: # the port that this service should serve on - name: arms-mysql-svc port: 3306 targetPort: 3306 # label keys and values that must match in order to receive traffic for this service selector: app: mysql ---
結果の検証
- Container Service コンソールの左側のナビゲーションウィンドウから を選択し、対象となるクラスターおよび名前空間を選択して、作成されたデプロイメントを表示します。
- 対象となるデプロイメントの [操作] 列で、[ARMS コンソール] をクリックして、アプリケーション概要、インターフェイス呼び出し 、およびその他の情報など、アプリケーションの詳細を表示するために、ARMS コンソールにログインします。
注 ARMS コンソール が [操作] 列に表示されない場合、ARMS を使用するための権限を Container Service に付与しているかどうかを確認してください。 詳細は、「ARMS を使用するための権限付与」をご参照ください。