すべてのプロダクト
Search
ドキュメントセンター

:関数計算で Go 用の ARMS エージェントを使用する

最終更新日:Dec 30, 2024

このトピックでは、関数計算の Go ランタイムをアプリケーションリアルタイム監視サービス (ARMS) のアプリケーション監視に接続する方法について説明します。

背景情報

関数計算が ARMS のアプリケーション監視に接続すると、関数を監視およびトレースし、インスタンスレベルの可観測性、トレースデータ、Go ランタイムメトリクス、および CPU プロファイリングに関する洞察を得ることができます。

前提条件

  • アプリケーションは Go V1.18 以降を使用します。

  • ライセンスキーが利用可能です。詳細については、DescribeTraceLicenseKey を参照してください。

方法 1: 関数計算でコンパイル済みの Go バイナリファイルを使用して関数を作成する

  1. Go 用の ARMS エージェントを使用して Go アプリケーションをコンパイルします。詳細については、ステップ 1: Go バイナリファイルをコンパイルする を参照してください。

  2. コンパイル済みの Go バイナリファイルを関数計算にアップロードします。詳細については、イベント関数の作成 を参照してください。

    image

  3. 環境変数を設定します。

    TYPE_IS_ARMS=true
    ARMS_APP_NAME=xxx   # アプリケーション名。
    ARMS_REGION_ID=xxx   # Alibaba Cloud アカウントのリージョン ID。
    ARMS_LICENSE_KEY=xxx   # ライセンスキー。

    image

  4. 関数を実行します。その後、アプリケーション監視 > アプリケーションリスト を選択し、ARMS console で設定済みのアプリケーションを表示できます。

    アプリケーション名をクリックします。概要ページで、アプリケーションのリクエスト数、エラー数、平均処理時間、その他の呼び出しメトリクスを監視できます。

    image

方法 2: 関数計算で Go アプリケーションをビルドする

  1. s.yaml ファイルのアクションを変更します。詳細については、Serverless Devs とは を参照してください。

    • 次のコードは、中国 (杭州) リージョンの例です。オペレーティングシステムとリージョンに基づいて、コンパイルツールのダウンロードアドレスに変更してください。詳細については、ダウンロードアドレスの取得 を参照してください。

    • コード内のライセンスキーを取得したものに変更してください。

    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: 'Serverless Devs によるシンプルな hello world アプリケーション'
          runtime: "{{ runtime }}"
          code: ./code/target
          handler: main
          memorySize: 128
          timeout: 10
          # トリガー:
          #   - triggerName: httpTrigger # トリガー名。
          #     triggerType: http # トリガータイプ。
          #     description: 'xxxx'
          #     qualifier: LATEST # トリガーされるサービスのバージョン。
          #     triggerConfig:
          #       authType: anonymous # 認証タイプ。有効な値: anonymous および function。
          #       disableURLInternet: false # パブリックネットワークにアクセスするための URL を無効にするかどうかを指定します。
          #       methods: # HTTP トリガーでサポートされるアクセス方法。有効な値: GET、POST、PUT、DELETE、および HEAD。
          #         - GET
          #         - POST
  2. 関数計算コンソール で、アプリケーション を選択し、リポジトリからアプリケーションをインポート をクリックしてアプリケーションをインポートします。詳細については、アプリケーションの管理 を参照してください。

    image

  3. アプリケーションが作成されたら、アプリケーションの詳細ページに移動します。関数リソースリソース情報 セクションの で、関数名をクリックします。

  4. 表示されるページで、次の環境変数を追加します。詳細については、環境変数の設定 を参照してください。

    TYPE_IS_ARMS=true
    ARMS_APP_NAME=xxx   # アプリケーション名。
    ARMS_REGION_ID=xxx   # Alibaba Cloud アカウントのリージョン ID。
    ARMS_LICENSE_KEY=xxx   # ライセンスキー。

    2024-10-11_16-31-39

  5. アプリケーションを起動します。その後、アプリケーション監視 > アプリケーションリスト を選択し、ARMS console で設定済みのアプリケーションを表示できます。

    アプリケーション名をクリックします。概要ページで、アプリケーションのリクエスト数、エラー数、平均処理時間、その他の呼び出しメトリクスを監視できます。

    image.png