Cara Install New Relic (APM) di Server Java Spring Boot
Artikel ini diterjemahkan dari tulisan asli berbahasa Korea dengan bantuan AI. Baca tulisan asli bahasa Korea →

Tujuan
Menginstal New Relic di server Java Spring Boot untuk memantau transaksi dan error melalui APM.
Skenario Deployment
Asumsinya kita punya beberapa repository dan menggunakan kombinasi dua metode berikut.
- Docker on EC2
- ECS & Code Deploy
Instalasi
Setelah mendaftar akun, ikuti panduan yang disediakan oleh New Relic secara berurutan.
- Pilih APM, lalu pilih Java
- Klik tombol Begin installation
- Klik Other Java installation options di kanan bawah

- Tulis nama aplikasi di nomor 1.
- Klik tombol Download di nomor 2 untuk mengunduh file newrelic.yml.

- Klik Copy to clipboard di nomor 3 untuk menyalin perintah curl, lalu paste di shell untuk mengunduh newrelic-java.zip.
- Pilih Spring Boot di nomor 4.
- Langkah selanjutnya bisa diabaikan. Untuk nomor 6, jika ingin mengecek kondisi Docker, masuk ke AWS console lalu masukkan perintahnya. Tapi, karena New Relic akan mengenakan biaya $0.25 per 1GB jika melebihi batas gratis 100GB per bulan, saya sarankan pakai alat monitoring lain untuk pengecekan ini.
- Ekstrak file newrelic-java.zip yang sudah diunduh, lalu letakkan tepat di bawah root project Spring. Pastikan file-file jar berada di dalam folder newrelic (ubah nama folder jika perlu).
- Lakukan git push untuk menerapkannya ke repository. Karena kebanyakan developer memasukkan file jar ke git ignore, kita harus melakukan force add.
git add <blar>.jar -f- Lakukan deployment satu kali agar file New Relic terunggah ke server.
Jika menggunakan Docker on EC2
- Buka file docker-compose.yml di sistem kamu dan ubah menjadi seperti di bawah ini.
- Tambahkan -javaagent:/newrelic/newrelic.jar pada entrypoint. Perintah -javaagent harus selalu berada sebelum -jar.
- Tambahkan ./newrelic:/newrelic/ pada volumes. Kalau di bagian eksekusi javaagent pada entrypoint di atas kamu menggunakan -javaagent:/app/newrelic/newrelic.jar, kamu tidak perlu melakukan mount.
maven: build: context: ./ dockerfile: Dockerfile args: PROCESS: test environment: - PROCESS=test container_name: maven expose: [ 8080 ] ports: - 8080:8080 entrypoint: java -javaagent:/newrelic/newrelic.jar -Dnewrelic.environment=test -jar -DSpring.profiles.active=test /app/target/test-0.0.1-SNAPSHOT.jar depends_on: volumes: - ./:/app - ./newrelic:/newrelic/- Lakukan git push lalu deploy.
Jika menggunakan ECS & Code Deploy
- Buka AWS ECS dan klik Task Definitions (Definisi Tugas).
- Pilih server yang akan dipasangi New Relic, lalu klik Create new revision.
- Di halaman pembuatan revisi baru, scroll ke paling bawah dan klik tombol "Configure via JSON" pada bagian volume.
- Ubah bagian command di JSON menjadi seperti di bawah ini. Ini sama dengan yang kita tulis di entrypoint saat menggunakan EC2. Setelah diubah, klik tombol simpan.
- Saya sempat mencoba melakukan mount tapi tidak berjalan sesuai harapan, jadi saya menyerah.
"command": [ "java", "-javaagent:/app/newrelic/newrelic.jar", "-jar", "-DSpring.profiles.active=release", "/app/target/test-0.0.1-SNAPSHOT.jar"],- Klik tombol Create untuk membuat revisi baru.
- Lakukan deployment.