Application Real-Time Monitoring Service (ARMS) dapat diintegrasikan dengan runtime Java 8 bawaan dari Function Compute. Ekstensi ARMS juga didukung pada runtime kustom yang menggunakan Java 8, Java 11, dan Java 17. Topik ini menjelaskan cara menghubungkan runtime kustom ke ARMS.
Informasi latar belakang
Function Compute terintegrasi secara mulus dengan ARMS. Anda dapat menggunakan ARMS untuk memantau dan melacak fungsi guna mendapatkan informasi seperti data deret waktu dari instance, jejak, metrik Java Virtual Machine (JVM), profil tingkat kode, dan informasi keamanan aplikasi. Untuk detail lebih lanjut, lihat Apa itu ARMS?.
Informasi | Deskripsi |
Data deret waktu instance | Anda dapat melihat berbagai metrik host untuk instance, seperti metrik yang terkait dengan CPU, memori, dan permintaan. |
Data jejak | Agen ARMS secara otomatis mendapatkan hubungan topologi antara suatu fungsi dan komponen hulu serta hilirnya dan metrik terkait. Anda dapat melihat informasi tentang komponen seperti basis data dan antrian pesan di konsol ARMS. |
Metrik JVM | Agen ARMS secara otomatis mendapatkan aplikasi JVM. Anda dapat melihat informasi pemantauan aplikasi JVM di konsol ARMS, seperti jumlah pengumpulan sampah (GC), informasi heap, dan informasi tumpukan utas. |
Informasi profil tingkat kode | Anda dapat melihat informasi profil tingkat kode dari eksekusi fungsi, seperti jumlah waktu yang dikonsumsi oleh setiap metode dan kesalahan. |
Keamanan Aplikasi dikembangkan berdasarkan teknologi Runtime Application Self-Protection (RASP). Keamanan Aplikasi dapat memberikan perlindungan diri pada runtime untuk aplikasi dan melindungi aplikasi Anda dari serangan yang dieksploitasi oleh penyerang menggunakan kerentanan yang tidak dikenal. |
Menghubungkan runtime kustom ke ARMS
Anda dapat mengintegrasikan ARMS ke dalam runtime kustom sebagai ekstensi internal. Bagian berikut menjelaskan langkah-langkah untuk menghubungkan runtime kustom ke ARMS.
Menggunakan lapisan publik untuk mendapatkan agen ARMS
Function Compute menyediakan lapisan umum yang mencakup agen ARMS, mendukung Java 8, Java 11, dan Java 17.
Versi Java | Runtime yang kompatibel | Nama Sumber Daya Alibaba Cloud (ARN) dari lapisan umum |
Java 11/Java 8 | Runtime kustom | acs:fc:{region}:official:layers/ArmsAgent273x/versions/2 |
Java 17 | Runtime kustom | acs:fc:{region}:official:layers/ArmsAgent273x_JDK17/versions/1 |
Menggunakan skrip Bootstrap sebagai perintah startup
Untuk menggunakan ARMS, Anda perlu menambahkan tiga parameter startup. Karena perintah startup cukup kompleks, disarankan untuk menggunakan skrip. Anda dapat membuat file bootstrap di halaman kode fungsi WebIDE dan memberikan izin eksekusi dengan menjalankan perintah chmod +x bootstrap di terminal. Contoh berikut menunjukkan implementasinya:
#!/bin/bash
set -eo pipefail
#1. Tentukan nama untuk aplikasi ARMS.
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 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` "
# Gunakan jalur program ARMS dari lapisan 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 "Lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY tidak ada, silakan 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.jarDalam contoh kode tersebut:
Tentukan nama aplikasi ARMS. Nilai defaultnya adalah
FC:{ServiceName}.{FunctionName}.Tambahkan parameter ARMS:
javaagent: Jalur program ARMS. Jika menggunakan lapisan umum agen ARMS, jalurnya adalah/opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar.Darms.licenseKey: Informasi kunci lisensi. Dalam contoh ini, kunci lisensi diperoleh dari variabel lingkungan. Untuk detail tentang cara memperoleh kunci lisensi, lihat langkah "Memperoleh Kunci Lisensi" di Instal Agen ARMS untuk Aplikasi Java di Function Compute.Darms.appName: Nama aplikasi ARMS. Gunakan nama aplikasi ARMS Anda yang sebenarnya.
Konfigurasikan variabel lingkungan
Atur variabel lingkungan
FC_EXTENSIONS_ARMS_LICENSE_KEY=xxxxke nilai kunci lisensi. Untuk informasi tentang cara memperoleh kunci lisensi, lihat langkah "Memperoleh Kunci Lisensi" di Instal Agen ARMS untuk Aplikasi Java di Function Compute.Konfigurasikan variabel lingkungan
FC_EXTENSION_ARMS=true.Setelah menambahkan variabel lingkungan, instance fungsi akan dibekukan selama 10 detik setelah pemanggilan fungsi selesai. Ini memastikan bahwa agen ARMS dapat melaporkan log sesuai harapan.
PentingJika Anda menggunakan metode ini, Anda akan dikenakan biaya. Metode penagihan sama dengan metode penagihan Prefreeze hook dari instance. Untuk informasi lebih lanjut, lihat Aturan Penagihan.
Prasyarat
Fungsi dalam runtime kustom telah dibuat dan runtime tersebut menggunakan Java 8, Java 11, atau Java 17. Untuk informasi lebih lanjut, lihat Buat Fungsi.
Layanan ARMS telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktivasi ARMS.
Prosedur
Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman Functions, temukan fungsi yang diinginkan dan klik Configure di kolom Actions.
Di bagian Layers halaman konfigurasi fungsi, klik Add Official Common Layer untuk menambahkan lapisan ArmsAgent yang kompatibel dengan versi Java.
Di bagian Environment Variables pada halaman konfigurasi fungsi, tambahkan variabel lingkungan
FC_EXTENSION_ARMS=truedanFC_EXTENSIONS_ARMS_LICENSE_KEY=xxxx.Untuk informasi lebih lanjut, lihat Konfigurasi Variabel Lingkungan.
Di halaman kode fungsi WebIDE, buat file bootstrap dan klik Deploy.
Untuk informasi lebih lanjut, lihat Gunakan Skrip Bootstrap sebagai Perintah Startup.
Setelah memperbarui konfigurasi dan menerapkan kode, fungsi tersebut ditambahkan ke ARMS untuk manajemen berperforma tinggi. Anda akan dikenakan biaya untuk menggunakan ARMS. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan.
Jika ingin melihat informasi pemantauan setelah fungsi terhubung ke ARMS, pastikan ARMS berada di wilayah yang sama dengan fungsi Anda.
Pastikan ukuran memori fungsi Anda lebih besar dari 512 MB karena ARMS mengonsumsi sekitar 300 MB memori.
Verifikasi hasil
Setelah menghubungkan fungsi ke ARMS, Anda dapat melihat fungsi tersebut di konsol ARMS.
Anda juga dapat masuk ke Konsol ARMS. Di panel navigasi kiri, pilih . Klik nama aplikasi yang diinginkan untuk melihat informasi pemantauan. Untuk informasi lebih lanjut, lihat Ikhtisar Aplikasi.
Nama aplikasi target adalah nilai dari appName di skrip Bootstrap. Nilai defaultnya adalah FC:{ServiceName}.{FunctionName}.