All Products
Search
Document Center

Function Compute:Ekstensi ARMS untuk runtime kustom

Last Updated:Apr 01, 2026

Layanan Pemantauan Aplikasi Waktu Nyata (Application Real-Time Monitoring Service/ARMS) terintegrasi dengan Function Compute yang menggunakan runtime kustom berbasis Java 8, Java 11, atau Java 17, sehingga Anda dapat memperoleh metrik instans, pelacakan terdistribusi, metrik Java Virtual Machine (JVM), profil tingkat kode, dan perlindungan keamanan waktu proses dalam satu tempat.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Fungsi Function Compute yang menggunakan runtime kustom berbasis Java 8, Java 11, atau Java 17. Lihat Buat fungsi.

  • ARMS yang telah diaktifkan. Lihat Aktifkan ARMS.

  • Alokasi memori fungsi lebih dari 512 MB. ARMS mengonsumsi sekitar 300 MB memori.

  • ARMS yang diterapkan di Wilayah yang sama dengan fungsi Anda.

Apa yang disediakan ARMS

Setelah menghubungkan fungsi Anda ke ARMS, Anda dapat memantau hal-hal berikut:

DataDeskripsi
Metrik instansMetrik CPU, memori, dan permintaan untuk instans fungsi
Data pelacakanHubungan topologis antara fungsi Anda dan komponen hulu atau hilir, seperti database dan antrian pesan
Metrik JVMJumlah garbage collection (GC), informasi heap, dan informasi stack thread
Profil tingkat kodeWaktu yang dikonsumsi oleh setiap metode dan kesalahan apa pun selama eksekusi fungsi
Keamanan AplikasiPerlindungan mandiri waktu proses berbasis teknologi Runtime Application Self-Protection (RASP), melindungi dari serangan yang mengeksploitasi kerentanan yang belum diketahui

Hubungkan runtime kustom ke ARMS

ARMS diintegrasikan sebagai ekstensi internal. Penyiapan ini mencakup tiga bagian: menambahkan layer, mengatur variabel lingkungan, dan membuat file bootstrap.

Langkah 1: Tambahkan layer agen ARMS

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih Wilayah tempat fungsi Anda diterapkan.

  3. Pada halaman Services, klik layanan yang berisi fungsi Anda.

  4. Pada halaman Functions, temukan fungsi Anda dan klik Configure di kolom Actions.

  5. Pada bagian Layers, klik Add Official Common Layer dan tambahkan layer yang sesuai dengan versi Java Anda. Gunakan nilai Nama Sumber Daya Alibaba Cloud (ARN) berikut untuk mengidentifikasi layer agen ARMS yang tersedia. Ganti {region} dengan ID Wilayah aktual Anda (misalnya, cn-hangzhou).

    # Untuk runtime kustom Java 8 atau Java 11
    acs:fc:{region}:official:layers/ArmsAgent273x/versions/2
    
    # Untuk runtime kustom Java 17
    acs:fc:{region}:official:layers/ArmsAgent273x_JDK17/versions/1

Langkah 2: Atur variabel lingkungan

Pada bagian Environment Variables di halaman konfigurasi fungsi, tambahkan dua variabel lingkungan berikut:

Variabel lingkunganNilaiCatatan
FC_EXTENSION_ARMStrueMengaktifkan ekstensi ARMS
FC_EXTENSIONS_ARMS_LICENSE_KEYKunci lisensi ARMS AndaLihat bagian "Obtain a license key" dalam Instal agen ARMS untuk aplikasi Java di Function Compute
Penting

Setelah menambahkan variabel lingkungan ini, setiap instans fungsi akan dibekukan selama 10 detik setelah pemanggilan selesai. Penundaan ini memungkinkan agen ARMS melaporkan log. Durasi pembekuan ditagih dengan tarif yang sama seperti hook Prefreeze. Lihat Tagihan.

Langkah 3: Buat file bootstrap

Agen ARMS memerlukan tiga parameter startup JVM. Gunakan skrip bootstrap untuk meneruskan parameter ini saat fungsi dimulai.

Di WebIDE pada halaman kode fungsi, buat file bernama bootstrap dengan konten berikut:

#!/bin/bash
set -eo pipefail

# 1. Atur nama aplikasi ARMS.
#    Default: FC:{ServiceName}.{FunctionName}
appName="FC:Custom_Java_Arms_Demo"
if [ -n "${FC_SERVICE_NAME}" ] || [ -n "${FC_FUNCTION_NAME}" ]; then
    appName="FC:${FC_SERVICE_NAME}.${FC_FUNCTION_NAME}"
fi

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

# 2. Tambahkan parameter JVM 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` "
    # Path ke JAR agen ARMS yang disediakan oleh layer umum
    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 "Variabel lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY tidak ada, harap atur variabel lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY!"
    exit 1
fi

# 3. Jalankan aplikasi.
echo "params: ${params}"
exec java $params \
    -Dserver.port=9000 \
    -jar /code/target/demo-0.0.1-SNAPSHOT.jar

Tiga parameter ARMS yang ditambahkan dalam skrip tersebut adalah:

  • -javaagent: path ke file JAR agen ARMS. Saat menggunakan layer umum, path ini adalah /opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar.

  • -Darms.licenseKey: kunci lisensi ARMS, dibaca dari variabel lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY.

  • -Darms.appName: nama aplikasi ARMS. Nilai default-nya adalah FC:{ServiceName}.{FunctionName}.

Setelah membuat file tersebut, berikan izin eksekusi dengan menjalankan perintah berikut di terminal WebIDE:

chmod +x bootstrap

Kemudian klik Deploy.

Penting

Setelah konfigurasi diterapkan, pemantauan ARMS aktif dan Anda akan dikenai biaya penggunaan ARMS. Lihat Ikhtisar tagihan.

Verifikasi koneksi

Setelah penerapan, pastikan fungsi muncul di ARMS dan data pemantauan mengalir:

  1. Masuk ke Konsol ARMS.

  2. Di panel navigasi kiri, pilih Application Monitoring > Applications.

  3. Temukan aplikasi yang dinamai sesuai fungsi Anda. Nama aplikasi sesuai dengan nilai appName dalam file bootstrap — secara default, FC:{ServiceName}.{FunctionName}.

  4. Klik nama aplikasi tersebut. Koneksi yang berhasil akan menampilkan data berikut:

    • Metrik instans: metrik CPU, memori, dan permintaan untuk instans fungsi Anda

    • Pelacakan: peta topologi yang menunjukkan dependensi hulu dan hilir fungsi Anda

    • Metrik JVM: jumlah GC, penggunaan heap, dan informasi thread

    • Profil: waktu eksekusi tingkat metode dan detail kesalahan

Untuk deskripsi lengkap tampilan pemantauan, lihat Ikhtisar aplikasi.

Langkah berikutnya