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

Function Compute:カスタムランタイムは ARMS アプリケーションモニタリング拡張機能をサポートします

最終更新日:Apr 02, 2026

Function Compute の組み込み Java 8 ランタイムは、Application Real-Time Monitoring Service (ARMS) との連携をサポートしています。Java 8、Java 11、および Java 17 のカスタムランタイムも、ARMS 拡張機能をサポートします。本トピックでは、カスタムランタイム関数への ARMS エージェントの統合方法について説明します。

重要

開始する前に、以下の点をご確認ください。

  • 関数のメモリが 512 MB より大きいこと。ARMS は約 300 MB のメモリを消費します。

  • ARMS が関数と同じリージョンに存在すること。クロスリージョン監視はサポートされていません。

監視機能

ARMS を統合すると、以下の機能で関数をモニタリングできます。

機能実行可能な操作
インスタンスレベルの可観測性各関数インスタンスの CPU 使用率、メモリ使用量、リクエスト数などのメトリックを表示
トレーシングデータベースやメッセージキューなどの上流・下流コンポーネントと関数間の呼び出し関係を確認
Java 仮想マシン (JVM) メトリックガベージコレクション (GC) 回数、ヒープ使用量、スレッドスタック情報などを追跡
コードレベルのプロファイリングコードレベルで遅いメソッドや例外を特定
アプリケーションセキュリティランタイムアプリケーションセルフプロテクション (RASP) 技術を用いて、未知の脆弱性からアプリケーションを保護

ARMS の全機能概要については、「ARMS とは?」をご参照ください。

前提条件

開始する前に、以下の条件を満たしていることをご確認ください。

  • カスタムランタイム(Java 8、Java 11、または Java 17)を使用する関数。詳細については、「関数の作成」をご参照ください。

  • ARMS の有効化。詳細については、「ARMS の有効化とスペックアップ」をご参照ください。

  • 関数のメモリを 512 MB より大きく設定していること

仕組み

ARMS は、カスタムランタイムに対して内部拡張機能として統合されます。ARMS エージェントはパブリックレイヤーとして配信されます。ブートストラップスクリプトにより、起動時に Java アプリケーションにエージェントが挿入され、2 つの環境変数によってライセンスキーが渡され、拡張機能が有効化されます。

カスタムランタイムと ARMS の接続

ステップ 1:ARMS エージェントレイヤーの追加

Function Compute は、各サポート対象 Java バージョン向けに ARMS エージェントを含むパブリックレイヤーを提供しています。

Java バージョン互換性のあるランタイムレイヤー ARN
Java 11 / Java 8カスタムランタイムacs:fc:{region}:official:layers/ArmsAgent273x/versions/1
Java 17カスタムランタイムacs:fc:{region}:official:layers/ArmsAgent273x_JDK17/versions/1

{region} は、ご利用の関数のリージョン ID(例: cn-hangzhou)に置き換えてください。

  1. Function Compute コンソールにログインします。左側ナビゲーションウィンドウで、[関数] をクリックします。

  2. 上部ナビゲーションバーで、関数が配置されているリージョンを選択します。[関数] ページで、設定する関数をクリックします。

  3. 関数の詳細ページで、[設定] タブをクリックします。

  4. [詳細設定] の横にある [変更] をクリックします。[詳細設定] パネルで、[レイヤー] を展開し、[+ レイヤーの追加] > [パブリックレイヤーの追加] をクリックします。

  5. ご利用の Java バージョンに対応するレイヤーを選択し、[OK] をクリックします。

ステップ 2:環境変数の設定

[高度な設定] パネルで、[環境変数] を展開し、以下の環境変数を設定します。

環境変数説明
FC_EXTENSION_ARMStrueARMS 拡張機能を有効化
FC_EXTENSIONS_ARMS_LICENSE_KEYライセンスキーARMS ライセンスキーをエージェントに渡します。詳細については、「ライセンスキーの取得
重要

関数呼び出しが完了後、インスタンスは ARMS エージェントによるログ送信を完了させるため、10 秒間アクティブな状態を維持します。この期間中も、呼び出し時と同様のレートで課金が発生します。詳細については、「課金」をご参照ください。

ステップ 3:ブートストラップスクリプトの作成

WebIDE を使用して、関数のコードディレクトリ内に bootstrap という名前のファイルを作成し、ターミナルで chmod +x bootstrap を実行して実行可能にします。

以下は完全なスクリプト例です。環境変数 FC_EXTENSIONS_ARMS_LICENSE_KEY が設定されている場合、すべての ARMS エージェントパラメーターが JVM 引数として挿入されます。

#!/bin/bash
set -eo pipefail

# 1. ARMS アプリケーション名を設定。デフォルトは FC:{FunctionName}。
appName="FC:Custom_Java_Arms_Demo"
if [ -n "${FC_FUNCTION_NAME}" ]; then
    appName="FC:${FC_FUNCTION_NAME}"
fi

echo "appName: ${appName}"
params=" "

# 2. ライセンスキーが設定されている場合、ARMS エージェントパラメーターを挿入。
if [[ -n "${FC_EXTENSIONS_ARMS_LICENSE_KEY}" ]]; then
    echo "FC_EXTENSIONS_ARMS_LICENSE_KEY: ${FC_EXTENSIONS_ARMS_LICENSE_KEY}"
    params+="-Dfc.instanceId=$HOSTNAME@`hostname -i` "
    # パブリックレイヤー内の ARMS エージェント JAR のパス
    params+="-javaagent:/opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar "
    params+="-Darms.licenseKey=${FC_EXTENSIONS_ARMS_LICENSE_KEY} "
    params+="-Darms.appName=${appName} "
else
    echo "環境変数 FC_EXTENSIONS_ARMS_LICENSE_KEY が存在しません。FC_EXTENSIONS_ARMS_LICENSE_KEY 環境変数を設定してください!"
    exit 1
fi

# 3. ARMS パラメーターを付与してアプリケーションを起動。
echo "params: ${params}"
exec java $params \
    -Dserver.port=9000 \
    -jar /code/target/demo-0.0.1-SNAPSHOT.jar

このスクリプトは、ARMS が要求する以下の 3 つの JVM 引数を渡します。

パラメーター説明
-javaagentARMS エージェント JAR のパス。パブリックレイヤーを利用する場合、常に /opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar
-Darms.licenseKeyARMS ライセンスキー。環境変数 FC_EXTENSIONS_ARMS_LICENSE_KEY から読み取ります
-Darms.appNameARMS コンソールに表示されるアプリケーション名。デフォルトは FC:{FunctionName}

ステップ 4:デプロイ

WebIDE で [デプロイ] をクリックして、コードの変更を適用します。関数が再起動した後、ARMS エージェントがモニタリングデータの収集を開始します。

統合の検証

デプロイ後に、関数を少なくとも 1 回呼び出した後、ARMS コンソールで統合を検証します。

  1. ARMS コンソールにログインします。

  2. 左側ナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーション] を選択します。

  3. FC:{FunctionName}(例:FC:my-java-function)という名前のアプリケーションを一覧から探します。リストに表示された場合は、統合が成功しています。

モニタリングデータの読み取り方法については、「アプリケーションの概要」をご参照ください。

課金

ARMS 拡張機能を有効化すると、以下の 2 つの課金要素が発生します。

  • ARMS の課金:ARMS アプリケーションモニタリングに対して課金されます。「課金概要」をご参照ください。

  • 呼び出し後のフリーズ:各呼び出しが完了した後、インスタンスは ARMS エージェントによるログ送信を完了させるため、10 秒間アクティブな状態を維持します。この期間中は、標準の呼び出しレートで Function Compute の課金が発生します。