Saat menjalankan fungsi Java di Function Compute, Anda memerlukan visibilitas terhadap kinerja aplikasi, jejak terdistribusi, dan kondisi kesehatan JVM. Application Real-Time Monitoring Service (ARMS) terintegrasi dengan Function Compute sebagai ekstensi internal dan menyediakan:
observabilitas tingkat instans
jejak terdistribusi
metrik Java Virtual Machine (JVM)
Pemprofilan Tingkat Kode
informasi keamanan aplikasi
Langkah-langkah berikut menjelaskan cara menambahkan agen ARMS ke fungsi dengan runtime kustom.
Agen ARMS mengonsumsi sekitar 300 MB memori saat runtime. Pastikan fungsi Anda memiliki alokasi memori minimal 512 MB. Jendela pembekuan selama 10 detik setelah invokasi yang diperlukan untuk pelaporan data akan ditagih dengan tarif invokasi standar. Untuk detailnya, lihat penagihan Function Compute.
Runtime dan persyaratan yang didukung
| Persyaratan | Detail |
|---|---|
| Runtime | Runtime kustom dengan Java 8, Java 11, atau Java 17. Runtime Java 8 bawaan juga didukung. |
| Versi JDK | Harus didukung oleh Pemantauan Aplikasi ARMS. Lihat Komponen dan framework Java yang didukung oleh ARMS. |
| Memori heap | Lebih dari 256 MB |
| Memori fungsi | Minimal 512 MB (ARMS mengonsumsi ~300 MB) |
| Wilayah | ARMS dan Function Compute harus berada di wilayah yang sama. Pemantauan lintas-wilayah tidak didukung. |
Untuk membuat fungsi dengan runtime kustom, lihat Buat fungsi.
Langkah 1: Dapatkan kunci lisensi
Panggil operasi API DescribeTraceLicenseKey di OpenAPI Explorer untuk mengambil kunci lisensi ARMS Anda. Simpan kunci ini untuk digunakan di Langkah 3.
Langkah 2: Tambahkan layer agen ARMS
Function Compute menyediakan layer umum resmi yang telah menggabungkan agen ARMS untuk setiap versi Java yang didukung.
| Versi Java | Runtime yang kompatibel | ARN Common Layer |
|---|---|---|
| Java 8 / Java 11 | Runtime kustom | acs:fc:{region}:official:layers/ArmsAgent273x/versions/2 |
| Java 17 | Runtime kustom | acs:fc:{region}:official:layers/ArmsAgent273x_JDK17/versions/1 |
Ganti {region} dengan ID wilayah fungsi Anda, misalnya cn-hangzhou.
Untuk menambahkan layer di Konsol Function Compute:
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi target.
Di halaman detail fungsi, klik tab Configurations.
Di panel navigasi sebelah kiri, klik Layers, lalu klik Modify.
Di panel Layers, pilih + Add Layer > Add Official Common Layer, lalu pilih layer agen ARMS yang sesuai dengan versi Java Anda.
Langkah 3: Konfigurasikan variabel lingkungan
Tetapkan variabel lingkungan berikut untuk fungsi Anda:
| Variabel | Nilai | Deskripsi |
|---|---|---|
FC_EXTENSION_ARMS | true | Mengaktifkan ekstensi ARMS di Function Compute. |
FC_EXTENSIONS_ARMS_LICENSE_KEY | Kunci lisensi ARMS Anda | Mengotentikasi agen ARMS. Dapatkan kunci ini dari Langkah 1. |
Menyetel FC_EXTENSION_ARMS=true menyebabkan instans fungsi membeku selama 10 detik setelah setiap invokasi selesai. Hal ini memberi waktu bagi agen ARMS untuk melaporkan data yang dikumpulkan. Penagihan tetap berlaku dengan tarif standar selama jendela 10 detik ini. Untuk detailnya, lihat penagihan Function Compute.
Untuk menyetel variabel ini di Konsol Function Compute:
Di halaman detail fungsi, klik tab Configurations.
Di panel navigasi sebelah kiri, klik Environment Variables, lalu klik Modify.
Tambahkan
FC_EXTENSION_ARMS=truedanFC_EXTENSIONS_ARMS_LICENSE_KEY=<your-license-key>.
Untuk detail lebih lanjut, lihat Konfigurasikan variabel lingkungan.
Langkah 4: Buat skrip bootstrap
Agen ARMS menyambung ke proses Java Anda melalui parameter startup JVM. Buat file bootstrap untuk meneruskan parameter tersebut saat fungsi dimulai.
Tabel berikut menjelaskan parameter JVM yang diperlukan:
| Parameter | Deskripsi |
|---|---|
-javaagent:/opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar | Path ke file JAR agen ARMS yang disediakan oleh layer umum. |
-Darms.licenseKey=${FC_EXTENSIONS_ARMS_LICENSE_KEY} | Kunci lisensi ARMS, dibaca dari variabel lingkungan yang ditetapkan di Langkah 3. |
-Darms.appName=${appName} | Nama aplikasi sebagaimana ditampilkan di Konsol ARMS. Nilai default-nya adalah FC:{FunctionName}. |
-Dfc.instanceId=$HOSTNAME@`hostname -i` | Pengidentifikasi unik untuk instans fungsi. |
Contoh skrip bootstrap:
#!/bin/bash
set -eo pipefail
# Tetapkan nama aplikasi ARMS.
# Default-nya adalah FC:{FunctionName} jika variabel FC_FUNCTION_NAME tersedia.
appName="FC:Custom_Java_Arms_Demo"
if [ -n "${FC_FUNCTION_NAME}" ]; then
appName="FC:${FC_FUNCTION_NAME}"
fi
echo "appName: ${appName}"
params=" "
# Bangun 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` "
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 tetapkan variabel lingkungan FC_EXTENSIONS_ARMS_LICENSE_KEY!"
exit 1
fi
# Jalankan aplikasi. Ganti path JAR dengan milik Anda sendiri.
echo "params: ${params}"
exec java $params \
-Dserver.port=9000 \
-jar /code/target/demo-0.0.1-SNAPSHOT.jarGanti /code/target/demo-0.0.1-SNAPSHOT.jar dengan path ke file JAR aplikasi Anda.
Terapkan file bootstrap
Di WebIDE pada halaman kode fungsi, buat file bernama
bootstrapdengan konten di atas.Buka terminal di WebIDE dan jalankan
chmod +x bootstrapuntuk menjadikan file tersebut dapat dieksekusi.Klik Deploy.
Untuk detail lebih lanjut, lihat Gunakan skrip bootstrap sebagai perintah startup.
Langkah 5: Verifikasi integrasi
Setelah penerapan, panggil fungsi tersebut minimal sekali untuk memicu pengumpulan data, lalu pastikan ARMS menerima data:
Masuk ke Konsol ARMS.
Di panel navigasi sebelah kiri, pilih Application Monitoring > Applications.
Temukan aplikasi yang namanya sesuai dengan nilai
appNamedari skrip bootstrap Anda. Nilai default-nya adalahFC:{FunctionName}.Klik nama aplikasi untuk melihat jejak, metrik JVM, dan data pemantauan lainnya.
Untuk detail mengenai dasbor pemantauan, lihat Ikhtisar aplikasi.
Penagihan
Integrasi ARMS dengan Function Compute menghasilkan biaya dari dua layanan:
| Layanan | Biaya | Detail |
|---|---|---|
| ARMS | Biaya pemantauan aplikasi | Ikhtisar penagihan ARMS |
| Function Compute | Jendela pembekuan 10 detik setelah invokasi, ditagih dengan tarif invokasi standar | Penagihan Function Compute |