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 instgo
Windows
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 アプリケーションモニタリング」をご参照ください。