Instalar New Relic (APM) en Java Spring Boot
Este artículo fue traducido del original en coreano con ayuda de IA. Leer el original en coreano →

Objetivo
Instalar New Relic en un servidor Java Spring Boot para monitorizar transacciones y errores a través de APM.
Entorno de despliegue
Asumiremos que hay varios repositorios y que se utilizan los dos métodos siguientes de forma combinada.
- Docker en EC2
- ECS y Code Deploy
Instalación
Después de registrarte, sigue en orden la guía proporcionada por New Relic.
- Selecciona APM y luego Java
- Haz clic en el botón Begin installation
- Haz clic en Other Java installation options en la parte inferior derecha

- 1. Escribe el nombre de la aplicación.
- 2. Haz clic en el botón Download para descargar el archivo newrelic.yml.

- 3. Haz clic en Copy to clipboard para copiar el comando curl y pégalo en la terminal para descargar newrelic-java.zip.
- 4. Selecciona Spring Boot.
- Puedes ignorar los pasos siguientes. En el caso del paso 6, si quieres comprobar el estado de Docker, accede a la consola de AWS e introduce el comando. Sin embargo, dado que New Relic cobra $0.25 por cada 1G si superas los 100G gratuitos al mes, te recomiendo comprobarlo con otra herramienta de monitorización.
- Descomprime el archivo newrelic-java.zip descargado y colócalo justo debajo de la raíz del proyecto Spring. En este punto, cambia el nombre de la carpeta, etc., para que los archivos jar queden dentro de la carpeta newrelic.
- Haz un git push para reflejarlo en el repositorio. Como la mayoría de los desarrolladores ponen los archivos jar en el git ignore, tendrás que hacer un force add.
git add <blar>.jar -f
- Realiza un despliegue para que los archivos de New Relic se suban al servidor.
En el caso de Docker en EC2
- Abre el archivo docker-compose.yml de tu sistema y modifícalo de la siguiente manera:
- He añadido -javaagent:/newrelic/newrelic.jar al entrypoint. El comando -javaagent debe ir obligatoriamente antes que -jar.
- He añadido ./newrelic:/newrelic/ a volumes. Si en la parte que ejecuta el javaagent en el entrypoint de arriba pones -javaagent:/app/newrelic/newrelic.jar, no hace falta montarlo.
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/
- Haz el despliegue después del git push.
En el caso de ECS y Code Deploy
- Ve a ECS en AWS y haz clic en Definiciones de tareas.
- Selecciona el servidor al que vas a aplicar New Relic y haz clic en Crear nueva revisión.
- En la página de creación de la nueva revisión, ve a la parte inferior y haz clic en el botón "Configurar mediante JSON" en la sección de volúmenes.
- En el JSON, cambia la parte de command como se muestra a continuación. Es lo mismo que escribíamos en el entrypoint al usar EC2. Después de cambiarlo, haz clic en el botón de guardar.
- Intenté hacer un mount, pero no salió como quería, así que me rendí.
"command": [
"java",
"-javaagent:/app/newrelic/newrelic.jar",
"-jar",
"-DSpring.profiles.active=release",
"/app/target/test-0.0.1-SNAPSHOT.jar"
],
- Haz clic en el botón de crear para generar una nueva revisión.
- Realiza el despliegue.