Golang アプリケーションに ARMS エージェントを手動でインストールし、 SAE にデプロイすると、 ARMS を使用してアプリケーションを監視できます。 ARMS を使用すると、アプリケーション トポロジー、呼び出しトレース分析、SQL パフォーマンス分析など、さまざまな監視データを表示できます。このトピックでは、アプリケーションに ARMS エージェントを手動でインストールし、 SAE にデプロイする方法について説明します。
前提条件
-
Container Registry (ACR) を有効化し、Enterprise Edition インスタンスまたは Personal Edition インスタンスを作成します。
-
イメージビルド環境がパブリックインターネットまたは Alibaba Cloud の内部ネットワークに接続できること、およびビルド環境のセキュリティグループでポート 8080、9990、80、443 でのアウトバウンド TCP トラフィックが許可されていることを確認してください。
-
ネットワーク環境を確認してください。詳細については、「Go アプリケーションモニタリングのネットワーク設定」をご参照ください。
-
イメージビルド環境のオペレーティングシステム、アーキテクチャ、Go バージョン、フレームワークバージョンを確認してください。詳細については、「ARMS アプリケーションモニタリングでサポートされている Go のコンポーネントとフレームワーク」をご参照ください。
制限事項
この機能は、イメージを使用してデプロイされた Go アプリケーションにのみ適用されます。
概要
-
プロジェクトの準備:このトピックでは、デモプロジェクトを例として使用します。
-
イメージのビルドと ACR イメージリポジトリへのプッシュ:プロジェクトからイメージをビルドし、Alibaba Cloud ACR リポジトリにプッシュして、SAE でマイクロサービスアプリケーションを作成します。
-
アプリケーションの作成:イメージリポジトリから SAE にイメージをデプロイし、アプリケーションにアクセスします。
-
アプリケーション監視データの表示:アプリケーションによって生成されたさまざまなタイプの監視データを表示します。
1. プロジェクトの準備
Go プロジェクトを環境にアップロードします。
2. イメージのビルドとリポジトリへのプッシュ
2.1 イメージのビルド
このセクションでは、コンパイルツールをダウンロードし、アプリケーションをビルドするコマンドについて説明します。
-
コンパイルツールをダウンロードします。
# wget コマンドをインストールします。 RUN yum -y install wget # この例では、China (Hangzhou) リージョンのパブリックエンドポイントからコンパイルツールをダウンロードする方法を示します。 RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo本番環境では、ビルドマシンが配置されているリージョンに基づいてダウンロードアドレスを選択します。ダウンロードアドレスのリストについては、「各リージョンのダウンロードコマンド」をご参照ください。
説明コンパイルツールは、すべてのリージョンで同じバイナリです。お使いの環境からパブリックインターネット経由で OSS にアクセスできる場合は、China (Hangzhou) のパブリックエンドポイントを使用して、対象の OS とアーキテクチャ用のコンパイルツールをダウンロードできます。
-
バイナリファイルに実行権限を追加します。
RUN chmod +x instgo -
OpenAPI を呼び出して LicenseKey を取得します。詳細については、「ListLicenseKey」をご参照ください。
-
go buildコマンドを./instgo buildコマンドに置き換えてアプリケーションをビルドします。# ./instgo build コマンドを使用して Go プロジェクトをコンパイルします。 # {licenseKey} を、前の手順で取得した LicenseKey で置き換えます。 RUN ./instgo build --licenseKey="{licenseKey}" --cacheDir=./ビルドをテストしたい場合や、まだ LicenseKey を取得していない場合は、
--devフラグを追加して開発モードを有効にできます。このモードでは、LicenseKey を渡す必要はありません。説明元のビルドコマンドに追加のビルド引数が含まれている場合は、
--セパレーターの後に追加します。例:RUN ./instgo build --licenseKey="{licenseKey}" --cacheDir=./ -- {arg1} {arg2} ...-
-
最初のビルド中、エージェントはデフォルトで
/optディレクトリにダウンロードされます。--cacheDirフラグを使用して、カスタムのキャッシュディレクトリを指定できます。
-
2.2 イメージリポジトリへのプッシュ
ビルドした Go イメージを Alibaba Cloud イメージリポジトリにプッシュします。詳細については、「イメージのプッシュとプル (Enterprise Edition)」または「イメージのプッシュとプル (Personal Edition)」をご参照ください。
3. Go アプリケーションの作成
このセクションでは、主要な手順のみを説明します。完全な手順については、「イメージを使用したアプリケーションのデプロイ」をご参照ください。
3.1 アプリケーションの作成
-
Specify Image パネルで、Technology Stack Programming Language を [Go] に設定し、イメージバージョンを選択します。
[My Alibaba Cloud Images] タブと [Container Registry Personal Edition] を選択します。[Select Image Version] ドロップダウンリストから [go-demo-2] を選択します。
-
Advanced Settings ページで、Application Monitoring セクションの Application Monitoring を有効にします。
この機能を有効にする前に、アプリケーションのカスタムイメージを変更し、ビルドプロセス中にエージェントを手動でインストールする必要があります。ARMS は、SAE ユーザー向けに月間 200 GB の無料クォータを提供します。有効にすると、SAE はリクエスト数、エラー数、平均応答時間、インスタンスの GC、ヒープメモリなどのメトリクスをリアルタイムで監視します。また、呼び出しトレース分析もサポートします。
-
Create Application をクリックします。
3.2 アクセステスト
-
アプリケーションにパブリックエンドポイントを追加します。詳細については、「アプリケーションへの SLB インスタンスのバインドと、アプリケーション用のパブリックまたはプライベート IP アドレスの生成」をご参照ください。
設定が完了すると、[Application Access Settings] ページの [Public Endpoint] セクションで、追加されたパブリック Server Load Balancer (SLB) レコードを表示できます。レコードには、IP アドレス、ポート (例:
2222)、およびプロトコル (例:HTTP) が含まれます。 -
パブリックエンドポイントをコピーし、ブラウザで開いてアクセスをテストします。
4. アプリケーション監視データの表示
SAE コンソール
アプリケーションの Basic Information ページに移動します。左側のナビゲーションペインで、Application Monitoring をクリックします。Application Monitoring ページで、モニタリングデータ を表示します。
[Application Overview] ページには、リクエスト数、エラー数、平均応答時間、インスタンス数などの監視メトリクスと、それらのトレンドチャートが表示されます。これにより、アプリケーションの監視データが正しく収集されていることが確認できます。
ARMS コンソール
にログインします。 ARMSコンソールを使用します。
-
左側のナビゲーションペインで、 を選択します。トップメニューバーで、対象のリージョンを選択します。
このページには、接続されているアプリケーションの監視メトリクス ([秒間リクエスト数]、[エラー率]、[平均応答時間]、[CVE 数]、[Smart Insight]、[応答時間の傾向]など) が表示されます。これにより、アプリケーションデータが正しく収集されていることが確認できます。
-
アプリケーションリスト ページの検索ボックスでアプリケーションを検索し、アプリケーション名をクリックします。
-
詳細ページで監視データを表示します。
