Container Service for Kubernetes (ACK) クラスタで実行されている Go アプリケーションを監視するには、ack-onepilot コンポーネントをインストールし、コンテナイメージをビルドする際にコンパイルツール instgo を使用してアプリケーションの Go バイナリファイルをコンパイルします。 ack-onepilot をデプロイした後、Application Real-Time Monitoring Service (ARMS) で、アプリケーショントポロジー、インターフェイス呼び出し、データベース分析などのモニタリングデータを表示できます。
前提条件
ACK クラスタが作成されていること。 詳細については、「ACK マネージドクラスターを作成する」または「ACK 専用クラスターを作成する (廃止)」をご参照ください。
アプリケーションが Go 1.18 以降を使用していることを確認してください。
ARMS がアクティブになっていること。 詳細については、「ARMS をアクティブにする」をご参照ください。
ARMS はアプリケーションパフォーマンス管理 (APM) サービスです。 詳細については、「ARMS とは」および「アプリケーションモニタリングとは」をご参照ください。
ステップ 1:ARMS アプリケーションモニタリングコンポーネント ack-onepilot をインストールする
古いコンポーネント arms-pilot はメンテナンスされていません。 新しいコンポーネント ack-onepilot をインストールしてアプリケーションを監視できます。 ack-onepilot コンポーネントは arms-pilot と完全に互換性があります。 アプリケーション構成を変更することなく、ack-onepilot をシームレスにインストールできます。 詳細については、「arms-pilot をアンインストールして ack-onepilot をインストールするにはどうすればよいですか。」をご参照ください。
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけて、その名前をクリックします。 左側のナビゲーションウィンドウで、[アドオン] をクリックします。
[ログとモニタリング] セクションで、[ack-onepilot] を見つけて、[インストール] をクリックします。 表示されるダイアログボックスで、必要に応じてパラメーターを構成します。 デフォルト値を使用することをお勧めします。 次に、[OK] をクリックします。
説明ack-onepilot のバージョンが 3.2.4 以降であることを確認してください。 このコンポーネントはデフォルトで 1,000 ポッドをサポートしています。 このしきい値を超えて 1,000 ポッドを追加するごとに、CPU を 0.5 コア、メモリを 512 MB 増やしてください。
[ack-onepilot] をインストールした後、[アドオン] ページでアップグレード、構成、またはアンインストールできます。
ステップ 2:ARMS がリソースにアクセスすることを承認する
addon.arms.tokenがない ACK クラスタにデプロイされたアプリケーションを監視するには、次の操作を実行して、ACK クラスタが ARMS にアクセスすることを承認します。addon.arms.tokenがすでに存在する場合は、これ以上の承認は必要ありません。説明ACK クラスタでは、
addon.arms.tokenにより、ARMS はパスワードなしの承認を自動的に実行できます。 通常、ACK マネージドクラスター にはデフォルトでaddon.arms.tokenがあります。 ただし、以前に作成された ACK マネージドクラスター の一部には、addon.arms.tokenが含まれていない場合があります。クラスタに
addon.arms.tokenがあるかどうかを確認します。addon.arms.tokenが存在しない場合は、次の手順を実行して、クラスタが ARMS リソースにアクセスすることを手動で承認します。ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、目的のクラスタを見つけて、その名前をクリックします。 左側のウィンドウで、[クラスタ情報] をクリックします。
[基本情報] タブをクリックします。 [クラスタリソース] セクションで、[ワーカー RAM ロール] の右側にあるリンクをクリックします。
[権限] タブで、[権限の付与] をクリックします。
[AliyunARMSFullAccess] ポリシーを選択し、[OK] をクリックします。
Elastic Container Instance に接続されている ACK マネージドクラスター にデプロイされたアプリケーションを監視するには、[RAM クイック承認] ページに移動し、承認を完了します。 その後、ack-onepilot 用に作成されたポッドを再起動します。
ステップ 3:Go バイナリファイルをコンパイルする
拡張 Go コンパイルツール instgo と、Go バージョン 1.18 以降が必要なローカル Go コンパイル環境を使用して Go プログラムをコンパイルし、ARMS にモニタリングデータを報告できるバイナリファイルを生成できます。
環境とマシンが存在するリージョンに基づいて instgo をダウンロードするには、
wgetコマンドを実行します。 instgo はコンパイル中に自動更新をトリガーするため、書き込み権限のあるディレクトリに保存してください。説明Go 用のビルドツール instgo は、ARMS によって提供され、Go アプリケーションの監視に役立ちます。
インターネット経由で Object Storage Service (OSS) にアクセスできる場合は、中国 (杭州) リージョンのオペレーティングシステムとアーキテクチャのパブリックエンドポイントを直接使用して instgo を取得できます。
instgo に実行権限を追加します。
Linux/Darwin
# 権限を付与します。 chmod +x instgoWindows
Windows では、権限を付与する必要はありません。
ライセンスキーとビルドパラメータを構成します。
重要この手順をスキップすると、instgo は開発モードに入り、デフォルトで最新バージョンの ARMS エージェントをインストールします。 本番環境にエージェントをデプロイするには、
DescribeTraceLicenseKeyパラメータを設定します。DescribeTraceLicenseKey ドキュメントページで、[デバッグ] をクリックします。 表示される OpenAPI Explorer で、[呼び出しを開始] をクリックしてライセンスキーを取得します。

setコマンドを実行してビルドパラメータを設定します。instgo set --licenseKey=${YourLicenseKey} --regionId=${YourRegionId} --dev=false
既存のビルドコマンドにプレフィックスとして instgo を追加し、次のコマンドを実行します。
instgo go build {arg1} {arg2} {arg3}前の手順でコンパイルしたバイナリファイルを使用して、イメージをビルドします。
ステップ 4:ARMS が Go アプリケーションを監視できるようにする
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけて、その名前をクリックします。 左側のウィンドウで、 を選択します。
[デプロイメント] ページで、管理するアプリケーションの [アクション] 列の を選択します。
YAML ファイルで、
spec.template.metadataに次のタグを追加します。labels: aliyun.com/app-language: golang # Go アプリケーションを指定します。 armsPilotAutoEnable: 'on' armsPilotCreateAppName: "<your-deployment-name>" # <your-deployment-name> をデプロイメント名に置き換えます。
ステップ 5:モニタリングの詳細を表示する
約 1 分待って、モニタリングデータを表示します。
ARMS コンソール にログインします。 左側のナビゲーションウィンドウで、 を選択して、Go アプリケーションと報告されたデータを表示します。

[アプリケーション名] をクリックして、アプリケーションモニタリングページで詳細なモニタリング情報を表示します。 詳細については、「アプリケーションの概要」をご参照ください。
(オプション) ステップ 6:リソースを解放する
アプリケーションをもう監視しない場合は、ARMS エージェントをアンインストールします。 詳細については、「Go 用の ARMS エージェントをアンインストールする」をご参照ください。
参考資料
ACK クラスタ内の Java または Python アプリケーションを ARMS アプリケーションモニタリングに接続する方法の詳細については、「Java アプリケーションモニタリング」および「Python アプリケーションモニタリング」をご参照ください。
> [YAML の編集]