Function Compute (FC) には、Application Real-Time Monitoring Service (ARMS) をサポートする Go ランタイムが組み込まれています。このトピックでは、Go ランタイムを ARMS と統合する方法について説明します。
背景情報
FC を ARMS プラットフォームと統合することで、関数を監視およびトレースできます。この統合により、インスタンスレベルの可観測性、トレーシング分析データ、Go ランタイムのメトリクス、CPU プロファイリングデータが提供されます。
前提条件
Go バージョン 1.18 以降が必要です。
ライセンスキーの取得
OpenAPI を使用してライセンスキーを取得します。詳細については、「DescribeTraceLicenseKey - ライセンスキーの一覧表示」をご参照ください。
方法1:コンパイル済み Go バイナリファイルを使用した FC 関数の作成
-
ARMS Go エージェントを使用して Go アプリケーションをコンパイルします。詳細については、「Go バイナリファイルのコンパイル」をご参照ください。
-
コンパイル済み Go バイナリファイルを FC にアップロードして実行します。詳細については、「イベントトリガー関数の作成」をご参照ください。
イベントトリガー関数を作成する際、[Runtime] を [Go 1] に、[Code Upload Method] を [Upload Code with ZIP Package] に設定します。ローカルでコンパイルした Go バイナリファイルを ZIP パッケージにまとめ、パッケージをアップロードしてから、[Create] をクリックします。
-
環境変数を設定します。
ARMS_ENABLE=true ARMS_APP_NAME=xxx # アプリケーションの名前 ARMS_REGION_ID=xxx # Alibaba Cloud アカウントのリージョン ID ARMS_LICENSE_KEY=xxx # 取得したライセンスキー -
設定を完了し、関数を実行します。設定済みのアプリケーションが、ARMS コンソールの ページに表示されます。
アプリケーション名をクリックします。[アプリケーション概要] ページで、リクエスト数、エラー数、平均応答時間など、関数のメトリクスを確認できます。また、その他の内部呼び出しデータも確認できます。

方法2:FC アプリケーションセンターを使用した Go アプリケーションの構築
-
s.yaml ファイルのアクションを変更します。
-
サンプルコードでは、中国 (杭州) リージョンのダウンロード URL を使用しています。お使いのオペレーティングシステムとリージョンに基づいて、コンパイルツールのダウンロード URL を置き換えてください。ダウンロード URL の一覧については、「ダウンロード URL の取得」をご参照ください。
-
取得したライセンスキーで {licenseKey} を置き換えてください。
edition: 3.0.0 name: hello-world-app access: "{{ access }}" vars: # グローバル変数 region: "{{ region }}" resources: hello_world: component: fc3 actions: pre-${regex('deploy|local')}: - run: GO111MODULE=on go mod tidy path: ./code - run: wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo path: ./code - run: chmod +x instgo path: ./code - run: GOOS=linux GOARCH=amd64 CGO_ENABLED=0 ./instgo build --licenseKey="{licenseKey}" --cacheDir=./ -- -o target/main main.go path: ./code props: region: ${vars.region} functionName: "{{ functionName }}" description: 'hello world by serverless devs' runtime: "{{ runtime }}" code: ./code/target handler: main memorySize: 128 timeout: 10 # triggers: # - triggerName: httpTrigger # トリガー名 # triggerType: http # トリガータイプ # description: 'xxxx' # qualifier: LATEST # トリガーするサービスバージョン # triggerConfig: # authType: anonymous # 認証タイプ。有効な値: anonymous、function # disableURLInternet: false # パブリックエンドポイントを無効にするかどうかを指定します # methods: # サポートされる HTTP メソッド。有効な値: GET、POST、PUT、DELETE、HEAD # - GET # - POST -
-
FC アプリケーションセンターで、リポジトリからアプリケーションをインポートします。詳細については、「アプリケーションのインポート」をご参照ください。
[Create Application] ページで、[Import an application from a repository] を選択します。[Basic Settings] セクションで、[GitHub] などのリポジトリタイプを選択し、リポジトリユーザーまたは組織、リポジトリ名、リポジトリブランチを選択して、[Application Name] と [Description] を入力します。Serverless Devs がまだ認可されていない場合は、まず [認可] をクリックして、コードリポジトリへの読み取りアクセス権を付与してください。
-
アプリケーションを作成したら、アプリケーション詳細ページに移動します。 セクションで、関数名をクリックし、次の環境変数を追加します。詳細については、「環境変数の設定」をご参照ください。
ARMS_ENABLE=true ARMS_APP_NAME=xxx # アプリケーションの名前 ARMS_REGION_ID=xxx # Alibaba Cloud アカウントのリージョン ID ARMS_LICENSE_KEY=xxx # 取得したライセンスキー -
アプリケーションを起動します。設定されたアプリケーションは、ARMS コンソールの ページに表示されます。
アプリケーション名をクリックします。[アプリケーション概要] ページで、リクエスト数、エラー数、平均応答時間などのメトリクスを確認できます。
