Runtime Java 8 bawaan di Function Compute mendukung Application Real-Time Monitoring Service (ARMS). Anda juga dapat menggunakan ARMS dengan runtime kustom untuk Java 8, Java 11, dan Java 17. Topik ini menjelaskan cara menghubungkan runtime kustom ke ARMS.
Informasi latar belakang
Dengan mengintegrasikan Function Compute ke platform ARMS, Anda dapat memantau dan melacak fungsi Anda menggunakan ARMS. Integrasi ini menyediakan observabilitas tingkat instans, informasi tracing, metrik Java Virtual Machine (JVM), profiling tingkat kode, serta informasi keamanan aplikasi. Untuk informasi selengkapnya, lihat Apa itu Application Real-Time Monitoring Service (ARMS)?.
Fitur | Deskripsi |
Observabilitas tingkat instans | Mengumpulkan berbagai metrik pemantauan host yang kaya pada tingkat instans fungsi, seperti CPU, memori, dan permintaan. |
Tracing Analysis | Agen ARMS secara otomatis menemukan topologi dan metrik terkait dari fungsi beserta komponen hulu dan hilirnya. Anda dapat melihat informasi tentang komponen, seperti database, Redis, dan antrian pesan (MQs), di platform ARMS. |
Metrik Java virtual machine | Agen ARMS secara otomatis menemukan aplikasi JVM. Anda dapat melihat data pemantauan untuk aplikasi JVM di platform ARMS, seperti jumlah garbage collection (GC), informasi heap, dan informasi stack thread. |
Profiling tingkat kode | Lihat informasi profiling tingkat kode dari eksekusi fungsi, seperti waktu yang dikonsumsi oleh setiap metode dan pengecualian apa pun. |
Berdasarkan teknologi Runtime Application Self-Protection (RASP), keamanan aplikasi menyediakan perlindungan kuat saat runtime untuk aplikasi Anda. Fitur ini melindungi dari serangan yang mengeksploitasi sebagian besar kerentanan yang tidak diketahui. |
Menghubungkan runtime kustom ke ARMS
Pemantauan aplikasi ARMS merupakan ekstensi internal. Menghubungkan runtime kustom ke ARMS melibatkan tiga langkah utama.
Gunakan lapisan publik untuk mendapatkan program ARMS Agent
Platform Function Compute menyediakan ARMS Agent untuk Java 8, Java 11, dan Java 17 sebagai lapisan publik.
Versi Java | Runtime yang kompatibel | ARN Lapisan Publik |
Java 11/Java 8 | custom runtime | acs:fc:{region}:official:layers/ArmsAgent273x/versions/1 |
Java 17 | custom runtime | acs:fc:{region}:official:layers/ArmsAgent273x_JDK17/versions/1 |
Gunakan skrip bootstrap sebagai perintah startup
Untuk menggunakan ARMS, Anda harus menambahkan tiga parameter startup. Karena perintah startup kompleks, kami menyarankan menggunakan skrip. Di halaman kode fungsi, Anda dapat menggunakan WebIDE untuk membuat file bernama bootstrap. Kemudian, atur izin eksekusi untuk file tersebut dengan menjalankan perintah chmod +x bootstrap di terminal. Kode berikut memberikan contoh.
#!/bin/bash
set -eo pipefail
# 1. Tetapkan nama aplikasi ARMS.
appName="FC:Custom_Java_Arms_Demo"
if [ -n "${FC_FUNCTION_NAME}" ]; then
appName="FC:${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 path program ARMS dari 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 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.jarDaftar berikut menjelaskan kode contoh tersebut.
Tetapkan nama aplikasi ARMS. Nama default adalah
FC:{FunctionName}.Tambahkan parameter ARMS.
javaagent: Path ke program ARMS. Jika Anda menggunakan lapisan publik untuk ARMS Agent, path-nya adalah/opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar.Darms.licenseKey: Kunci lisensi. Contoh ini menunjukkan cara mendapatkan kunci lisensi dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mendapatkan kunci lisensi, lihat Dapatkan kunci lisensi.Darms.appName: Nama aplikasi ARMS. Anda dapat menentukan nama sesuai kebutuhan.
Atur variabel lingkungan
Atur variabel lingkungan
FC_EXTENSIONS_ARMS_LICENSE_KEY=xxxxdengan nilai kunci lisensi Anda. Untuk informasi selengkapnya tentang cara mendapatkan kunci lisensi, lihat Dapatkan kunci lisensi.Atur variabel lingkungan
FC_EXTENSION_ARMS=true.Setelah menambahkan variabel lingkungan ini, instans fungsi tidak langsung dibekukan setelah pemanggilan fungsi berakhir. Sebaliknya, sistem menunggu selama 10 detik sebelum membekukan instans. Penundaan ini memastikan ekstensi ARMS Agent dapat berhasil melaporkan log.
PentingPeriode tunggu antara akhir pemanggilan dan pembekuan instans dikenai biaya. Kebijakan penagihan sama dengan fase pemanggilan instans. Untuk informasi selengkapnya, lihat Penagihan.
Prasyarat
Anda telah membuat fungsi yang menggunakan runtime kustom untuk Java 8, Java 11, atau Java 17. Untuk informasi selengkapnya, lihat Buat fungsi.
Anda telah mengaktifkan ARMS. Untuk informasi selengkapnya, lihat Aktifkan ARMS.
Prosedur
Login ke Function Compute console. Di panel navigasi sebelah kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik nama fungsi target.
Di halaman detail fungsi, klik tab Configuration.
Di bagian Advanced Configuration, klik Edit. Di panel Advanced Configuration, temukan bagian Layers, klik . Tambahkan lapisan ArmsAgent yang kompatibel dengan versi Java Anda.
Di panel Advanced Configuration, temukan dan edit bagian Environment Variables. Tambahkan variabel lingkungan
FC_EXTENSION_ARMS=truedanFC_EXTENSIONS_ARMS_LICENSE_KEY=xxxx.Untuk informasi selengkapnya, lihat Atur variabel lingkungan.
Di halaman kode fungsi, gunakan WebIDE untuk membuat file bootstrap, lalu klik Deploy Code.
Untuk informasi selengkapnya, lihat Gunakan skrip bootstrap sebagai perintah startup.
Setelah memperbarui konfigurasi dan menerapkan kode, fungsi Anda terhubung ke ARMS untuk pemantauan aplikasi dan manajemen berkinerja tinggi. Penagihan untuk pemantauan ARMS kemudian dimulai. Untuk informasi selengkapnya, lihat Ikhtisar penagihan.
Setelah fungsi Anda terhubung ke platform ARMS, pastikan platform ARMS dan fungsi berada di wilayah yang sama agar informasi pemantauan dapat ditampilkan.
Untuk memastikan fungsi berjalan dengan benar, pastikan memori yang ditentukan dalam konfigurasi fungsi Anda lebih dari 512 MB karena ARMS menggunakan sekitar 300 MB memori.
Verifikasi hasil
Setelah menghubungkan fungsi ke ARMS, Anda dapat melihat fungsi tersebut di Konsol ARMS.
Anda juga dapat login ke ARMS console. Di panel navigasi sebelah kiri, pilih . Kemudian, klik nama aplikasi Anda untuk melihat informasi pemantauan detail. Untuk informasi selengkapnya, lihat Ikhtisar Aplikasi.
Nama aplikasi adalah nilai appName dalam skrip bootstrap. Nilai default-nya adalah FC:{FunctionName}.