Application Real-Time Monitoring Service (ARMS) は、Container Service for Kubernetes (ACK) クラスター内の Go アプリケーションをモニタリングします。 ack-onepilot アドオンをインストールし、instgo ビルドツールで Go バイナリファイルをコンパイルし、コンテナイメージをビルドします。 デプロイ後、アプリケーション トポロジー、インターフェイスコール、データベース分析などのモニタリングデータを表示できます。
前提条件
ACK クラスターを作成済みであること。 ACK マネージドクラスターを推奨します。 手順については、「ACK マネージドクラスターの作成」をご参照ください。
ACK 専用クラスターの新規作成は利用できなくなりましたが、既存の専用クラスターは引き続きサポートされます。 詳細については、「ACK 専用クラスターの作成 (提供終了)」をご参照ください。
お使いの Go アプリケーションが Go 1.18 以降を使用していること。
ARMS が有効化されていること。
ARMS は Alibaba Cloud のアプリケーションパフォーマンス管理 (APM) サービスです。 ARMS の詳細については、「ARMS とは」および「アプリケーションモニタリングとは」をご参照ください。
ステップ 1: ARMS アプリケーションモニタリングアドオン ack-onepilot のインストール
ACK コンソールにログインします。 ナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、クラスターの名前をクリックします。 ナビゲーションウィンドウで、[コンポーネントとアドオン] をクリックします。
ack-onepilot のバージョンが 3.2.4 以降であることを確認してください。 デフォルトでは、ack-onepilot アドオンは最大 1,000 個の Pod をサポートします。 この制限を超える Pod が 1,000 個増えるごとに、ack-onepilot の CPU リソースを 0.5 コア、メモリリソースを 512 MB 増やしてください。
ステップ 2: Go バイナリファイルのコンパイルとコンテナイメージのビルド
拡張 Go ビルドツール instgo をローカルの Go ビルド環境 (Go 1.18 以降) と共に使用して、Go プログラムをモニタリングデータを ARMS にレポートするバイナリファイルにコンパイルします。
(オプション) ビルド中にプロジェクトに vendor ディレクトリが含まれている場合は、
go buildの後に-mod=vendorを追加します。wgetコマンドを使用して instgo ビルドツールをダウンロードします。ビルドプロセス中に、instgo は自動的に更新されます。 ビルドユーザーが書き込み権限を持つディレクトリに instgo を保存してください。
説明instgo は、Go プロジェクトをインストルメント化し、ARMS によるアプリケーションのモニタリングを可能にする ARMS のビルドツールです。
ビルド環境が Object Storage Service (OSS) へのインターネットアクセス権を持つ場合は、ビルド環境のオペレーティングシステムとアーキテクチャに対応する中国 (杭州) のインターネットダウンロード URL を選択します。
ダウンロードコマンド
Linux (AMD64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgoLinux (ARM64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-arm64" -O instgoMac (ARM64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-arm64" -O instgoMac (AMD64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-amd64" -O instgoWindows (AMD64)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-windows-amd64.exe" -O instgo.exeビルドツールを実行可能にします。
Linux/Mac
# 実行権限を付与します。 chmod +x instgoWindows
Windows では実行権限を付与する必要はありません。
(オプション) ビルドパラメーターとして UID を設定します。
重要この手順をスキップした場合、instgo はデフォルトで最新バージョンの ARMS エージェントをインストールします。
UID を設定するには、instgo 1.4.5 以降が必要です。
setコマンドを使用して、ビルドパラメーターとして UID を設定します。# UID は、Alibaba Cloud プライマリアカウントの ID です。 instgo set --uid={YourAliyunUid}元のビルドコマンドのプレフィックスとして
instgoを追加し、コマンドを実行します。instgo go build {arg1} {arg2} {arg3}go installを使用してプロジェクトをビルドする場合も、元のビルドコマンドのプレフィックスとしてinstgoを追加できます。前の手順で生成されたバイナリファイルを使用して、コンテナイメージをビルドします。
ステップ 3: Go アプリケーションでの ARMS アプリケーションモニタリングの有効化
ACK コンソールにログインします。 ナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、クラスターの名前をクリックします。 ナビゲーションウィンドウで、[Workloads] > [Deployments] を選択します。
[Deployments] ページで、アプリケーションを見つけ、[操作] 列の [YAML を編集] をクリックします。
YAML ファイルで、
spec.template.metadataレベルに次のlabelsを追加します。labels: aliyun.com/app-language: golang # Go アプリケーションに必須です。 これが Go アプリケーションであることを示します。 armsPilotAutoEnable: 'on' armsPilotCreateAppName: "<YOUR-DEPLOYMENT-NAME>" # <YOUR-DEPLOYMENT-NAME> をお使いのアプリケーション名に置き換えます。
ステップ 4: モニタリング詳細の表示
約 1 分後、ARMS コンソールにアクセスします。 ナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーション] を選択し、Go アプリケーションとレポートされたデータを表示します。
otel-go-server という名前のアプリケーションがアプリケーションリストに表示されます。 緑色のステータスは、アプリケーションが正常に実行されていることを示します。 1 秒あたりのリクエスト数、エラー率、平均応答時間などのモニタリングメトリクスを表示し、データがレポートされていることを確認します。
名前 列で、アプリケーションの名前をクリックして ARMS コンソールのアプリケーションモニタリングページに移動し、モニタリング詳細を表示します。 詳細については、「アプリケーション概要」をご参照ください。
(オプション) ステップ 5: リソースの解放
アプリケーションをモニタリングする必要がなくなった場合は、ARMS エージェントをアンインストールしてください。 詳細については、「Go 用 ARMS エージェントのアンインストール」をご参照ください。