All Products
Search
Document Center

Function Compute:Runtime kustom mendukung ekstensi Pemantauan Aplikasi ARMS

Last Updated:Apr 01, 2026

Runtime Java 8 bawaan Function Compute mendukung integrasi dengan Application Real-Time Monitoring Service (ARMS). Runtime kustom untuk Java 8, Java 11, dan Java 17 juga mendukung ekstensi ARMS. Topik ini menjelaskan cara mengintegrasikan agen ARMS ke dalam fungsi runtime kustom.

Penting

Sebelum memulai, pastikan:

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

  • ARMS berada di wilayah yang sama dengan fungsi Anda. Pemantauan lintas-wilayah tidak didukung.

Kemampuan pemantauan

Setelah mengintegrasikan ARMS, Anda dapat memantau fungsi Anda dengan kemampuan berikut:

KemampuanApa yang dapat Anda lakukan
Observabilitas tingkat instansLihat metrik CPU, memori, dan permintaan untuk setiap instans fungsi
TracingPeriksa hubungan panggilan antara fungsi Anda dan komponen hulu serta hilir seperti database dan antrian pesan
Metrik Java virtual machine (JVM)Lacak jumlah pengumpulan sampah (GC), penggunaan heap, dan informasi stack thread
Profil tingkat kodeIdentifikasi metode lambat dan pengecualian pada tingkat kode
Keamanan aplikasiLindungi aplikasi Anda dari kerentanan yang tidak diketahui menggunakan teknologi Runtime Application Self-Protection (RASP)

Untuk ikhtisar lengkap ARMS, lihat Apa itu ARMS?

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Membuat fungsi yang menggunakan runtime kustom (Java 8, Java 11, atau Java 17). Lihat Buat fungsi

  • Mengaktifkan ARMS. Lihat Aktifkan dan upgrade ARMS

  • Menyetel memori fungsi lebih dari 512 MB

Cara kerja

ARMS diintegrasikan ke dalam runtime kustom sebagai ekstensi internal. Agen ARMS dikirimkan sebagai lapisan publik. Skrip bootstrap menyuntikkan agen ke dalam aplikasi Java Anda saat startup, dan dua variabel lingkungan meneruskan kunci lisensi serta mengaktifkan ekstensi tersebut.

Hubungkan runtime kustom ke ARMS

Langkah 1: Tambahkan lapisan agen ARMS

Function Compute menyediakan lapisan publik yang berisi agen ARMS untuk setiap versi Java yang didukung.

Versi JavaRuntime yang kompatibelLayer ARN
Java 11 / Java 8Runtime kustomacs:fc:{region}:official:layers/ArmsAgent273x/versions/1
Java 17Runtime kustomacs:fc:{region}:official:layers/ArmsAgent273x_JDK17/versions/1

Ganti {region} dengan ID wilayah fungsi Anda (misalnya, cn-hangzhou).

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

  2. Di bilah navigasi atas, pilih wilayah tempat fungsi Anda berada. Pada halaman Functions, klik fungsi yang ingin Anda konfigurasi.

  3. Di halaman detail fungsi, klik tab Configurations.

  4. Klik Modify di samping Advanced Settings. Di panel Advanced Settings, perluas Layers dan klik + Add Layer > Add Public Layer.

  5. Pilih lapisan yang sesuai dengan versi Java Anda dan klik OK.

Langkah 2: Setel variabel lingkungan

Di panel Advanced Settings, perluas Environment Variables dan setel nilai berikut:

Variabel lingkunganNilaiDeskripsi
FC_EXTENSION_ARMStrueMengaktifkan ekstensi ARMS
FC_EXTENSIONS_ARMS_LICENSE_KEYKunci lisensi AndaMeneruskan kunci lisensi ARMS Anda ke agen. Lihat Dapatkan kunci lisensi
Penting

Setelah pemanggilan fungsi selesai, instans tetap aktif selama 10 detik agar agen ARMS dapat menyelesaikan pelaporan log. Biaya terus berjalan selama periode ini dengan laju yang sama seperti saat pemanggilan. Lihat Billing.

Langkah 3: Buat skrip bootstrap

Buat file bernama bootstrap di direktori kode fungsi Anda menggunakan WebIDE, lalu jadikan file tersebut dapat dieksekusi dengan menjalankan chmod +x bootstrap di terminal.

Skrip berikut menunjukkan contoh lengkap. Semua parameter agen ARMS disuntikkan sebagai argumen JVM ketika variabel lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY tersedia.

#!/bin/bash
set -eo pipefail

# 1. Setel nama aplikasi ARMS. Nilai default adalah 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. Suntikkan parameter agen ARMS jika kunci lisensi telah dikonfigurasi.
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` "
    # Jalur ke file JAR agen ARMS di lapisan publik
    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 setel variabel lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY!"
    exit 1
fi

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

Skrip ini meneruskan tiga argumen JVM yang diperlukan oleh ARMS:

ParameterDeskripsi
-javaagentJalur ke file JAR agen ARMS. Saat menggunakan lapisan publik, jalurnya selalu /opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar
-Darms.licenseKeyKunci lisensi ARMS Anda, dibaca dari variabel lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY
-Darms.appNameNama aplikasi yang ditampilkan di Konsol ARMS. Nilai default adalah FC:{FunctionName}

Langkah 4: Deploy

Klik Deploy di WebIDE untuk menerapkan perubahan kode. Setelah fungsi dimulai ulang, agen ARMS mulai mengumpulkan data pemantauan.

Verifikasi integrasi

Setelah deployment, panggil fungsi Anda minimal satu kali, lalu verifikasi integrasi di Konsol ARMS:

  1. Masuk ke Konsol ARMS.

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

  3. Cari aplikasi bernama FC:{FunctionName} (misalnya, FC:my-java-function). Jika aplikasi tersebut muncul dalam daftar, integrasi berhasil.

Untuk detail cara membaca data pemantauan, lihat Ikhtisar aplikasi.

Billing

Mengaktifkan ekstensi ARMS mempertimbangkan dua aspek biaya:

  • Biaya ARMS: Dikenakan biaya untuk pemantauan aplikasi ARMS. Lihat Ikhtisar billing.

  • Pembekuan pasca-pemanggilan: Setelah setiap pemanggilan selesai, instans tetap aktif selama 10 detik sementara agen ARMS melaporkan log. Biaya Function Compute berlaku selama periode ini dengan laju standar pemanggilan.