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:
| Data | Deskripsi |
|---|---|
| Metrik instans | Metrik CPU, memori, dan permintaan untuk instans fungsi |
| Data pelacakan | Hubungan topologis antara fungsi Anda dan komponen hulu atau hilir, seperti database dan antrian pesan |
| Metrik JVM | Jumlah garbage collection (GC), informasi heap, dan informasi stack thread |
| Profil tingkat kode | Waktu yang dikonsumsi oleh setiap metode dan kesalahan apa pun selama eksekusi fungsi |
| Keamanan Aplikasi | Perlindungan 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
Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.
Di bilah navigasi atas, pilih Wilayah tempat fungsi Anda diterapkan.
Pada halaman Services, klik layanan yang berisi fungsi Anda.
Pada halaman Functions, temukan fungsi Anda dan klik Configure di kolom Actions.
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 lingkungan | Nilai | Catatan |
|---|---|---|
FC_EXTENSION_ARMS | true | Mengaktifkan ekstensi ARMS |
FC_EXTENSIONS_ARMS_LICENSE_KEY | Kunci lisensi ARMS Anda | Lihat bagian "Obtain a license key" dalam Instal agen ARMS untuk aplikasi Java di Function Compute |
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.jarTiga 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 lingkunganFC_EXTENSIONS_ARMS_LICENSE_KEY.-Darms.appName: nama aplikasi ARMS. Nilai default-nya adalahFC:{ServiceName}.{FunctionName}.
Setelah membuat file tersebut, berikan izin eksekusi dengan menjalankan perintah berikut di terminal WebIDE:
chmod +x bootstrapKemudian klik Deploy.
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:
Masuk ke Konsol ARMS.
Di panel navigasi kiri, pilih Application Monitoring > Applications.
Temukan aplikasi yang dinamai sesuai fungsi Anda. Nama aplikasi sesuai dengan nilai
appNamedalam file bootstrap — secara default,FC:{ServiceName}.{FunctionName}.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
Apa itu ARMS? — Pelajari semua kemampuan ARMS
Instal agen ARMS untuk aplikasi Java di Function Compute — Opsi konfigurasi tambahan dan manajemen kunci lisensi