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

Function Compute:カスタムランタイム向けの ARMS アプリケーション監視拡張機能

最終更新日:Dec 10, 2025

Function Compute の組み込み Java 8 ランタイムは、Application Real-Time Monitoring Service (ARMS) をサポートしています。また、Java 8、Java 11、Java 17 のカスタムランタイムでも ARMS を使用できます。このトピックでは、カスタムランタイムを ARMS に接続する方法について説明します。

背景情報

Function Compute を ARMS プラットフォームと統合することで、ARMS を使用して関数を監視およびトレースできます。この統合により、インスタンスレベルの可観測性、トレース情報、Java 仮想マシン (JVM) のメトリック、コードレベルのプロファイリング情報、およびアプリケーションセキュリティ情報が提供されます。詳細については、「Application Real-Time Monitoring Service (ARMS) とは」をご参照ください。

機能

説明

インスタンスレベルの可観測性

CPU、メモリ、リクエストなど、豊富なホストモニタリングメトリックを関数インスタンスレベルで集約します。

トレース分析

ARMS エージェントは、関数とその上流および下流コンポーネントのトポロジーと関連メトリックを自動的に検出します。ARMS プラットフォーム上で、データベース、Redis、メッセージキュー (MQ) などのコンポーネントに関する情報を表示できます。

Java 仮想マシンメトリック

ARMS エージェントは JVM アプリケーションを自動的に検出します。ARMS プラットフォーム上で、ガベージコレクション (GC) の回数、ヒープ情報、スレッドスタック情報など、JVM アプリケーションのモニタリングデータを表示できます。

コードレベルのプロファイリング

各メソッドが消費した時間や例外など、関数実行時のコードレベルのプロファイリング情報を表示します。

アプリケーションセキュリティ

ランタイムアプリケーション自己保護 (RASP) テクノロジーに基づき、アプリケーションセキュリティはアプリケーションに強力なランタイム保護を提供します。ほとんどの未知の脆弱性を悪用する攻撃から防御します。

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

ARMS アプリケーション監視は内部拡張機能です。カスタムランタイムを ARMS に接続するには、主に 3 つのステップがあります。

パブリックレイヤーを使用した ARMS エージェントプログラムの取得

Function Compute プラットフォームは、Java 8、Java 11、Java 17 向けの 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

bootstrap スクリプトの起動コマンドとしての使用

ARMS を使用するには、3 つの起動パラメーターを追加する必要があります。起動コマンドは複雑なため、スクリプトの使用を推奨します。関数のコードページで、WebIDE を使用して bootstrap という名前のファイルを作成できます。次に、ターミナルで chmod +x bootstrap コマンドを実行して、ファイルに実行権限を設定します。以下にコード例を示します。

#!/bin/bash
set -eo pipefail

# 1. ARMS アプリケーション名を設定します。
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 プログラムのパスを使用します。
    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. アプリケーションを起動します。
echo "params: ${params}"
exec java $params \
    -Dserver.port=9000 \
    -jar /code/target/demo-0.0.1-SNAPSHOT.jar

以下にサンプルコードの説明を示します。

  1. ARMS アプリケーション名を設定します。デフォルト名は FC:{FunctionName} です。

  2. ARMS パラメーターを追加します。

    • javaagent:ARMS プログラムへのパスです。ARMS エージェントのパブリックレイヤーを使用する場合、パスは /opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar です。

    • Darms.licenseKey:ライセンスキーです。この例では、環境変数からライセンスキーを取得する方法を示しています。ライセンスキーの取得方法の詳細については、「ライセンスキーの取得」をご参照ください。

    • Darms.appName:ARMS アプリケーションの名前です。必要に応じて名前を指定できます。

環境変数の設定

  • 環境変数 FC_EXTENSIONS_ARMS_LICENSE_KEY=xxxx を設定します。値をご利用のライセンスキーに設定します。ライセンスキーの取得方法の詳細については、「ライセンスキーの取得」をご参照ください。

  • 環境変数 FC_EXTENSION_ARMS=true を設定します。

    この環境変数を追加すると、関数の呼び出しが終了しても、関数インスタンスはすぐにはフリーズしません。代わりに、システムはインスタンスをフリーズする前に 10 秒間待機します。この遅延により、ARMS エージェント拡張機能がログを正常にレポートできるようになります。

    重要

    呼び出しの終了からインスタンスのフリーズまでの待機期間は課金対象です。課金ポリシーは、インスタンス呼び出しフェーズのポリシーと同じです。詳細については、「課金」をご参照ください。

前提条件

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

  • ARMS を有効化済みであること。詳細については、「ARMS の有効化」をご参照ください。

操作手順

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[関数管理] > [関数] を選択します。

  2. トップナビゲーションバーで、リージョンを選択します。[関数] ページで、対象の関数の名前をクリックします。

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

  4. [高度な設定] セクションで、[編集] をクリックします。 高度な設定パネルの Layers セクションで、[+ レイヤーの追加] > [公式パブリックレイヤーの追加]。 ご使用の Java バージョンと互換性のある ArmsAgent レイヤーを追加します。

  5. 「詳細設定」パネルで [環境変数] セクションを編集し、環境変数 FC_EXTENSION_ARMS=true および FC_EXTENSIONS_ARMS_LICENSE_KEY=xxxx を追加します。

    詳細については、「環境変数の設定」をご参照ください。

  6. 関数のコードページで、WebIDE を使用してブートストラップファイルを作成し、[コードのデプロイ] をクリックします。

    詳細については、「bootstrap スクリプトの起動コマンドとしての使用」をご参照ください。

    設定を更新してコードをデプロイすると、関数はアプリケーション監視とパフォーマンス専有型管理のために ARMS に接続されます。その後、ARMS 監視の課金が開始されます。詳細については、「課金の概要」をご参照ください。

重要
  • 関数が ARMS プラットフォームに接続された後、監視情報を表示するには、ARMS プラットフォームと関数が同じリージョンにあることを確認してください。

  • 関数が正しく実行されるように、関数設定で指定されたメモリが 512 MB を超えていることを確認してください。これは、ARMS が約 300 MB のメモリを使用するためです。

結果の検証

関数を ARMS に接続した後、ARMS コンソールで関数を表示できます。

ARMS コンソールにログインすることもできます。左側のナビゲーションウィンドウで、[アプリケーション監視] > [アプリケーション] を選択します。次に、ご利用のアプリケーションの名前をクリックして、詳細な監視情報を表示します。詳細については、「アプリケーション概要」をご参照ください。

説明

アプリケーション名は、bootstrap スクリプト内の appName の値です。デフォルト値は FC:{FunctionName} です。