New Relic (APM) in Java Spring Boot installieren
Dieser Artikel wurde mit KI-Unterstützung aus dem koreanischen Original übersetzt. Das koreanische Original lesen →

Ziel
New Relic auf einem Java Spring Boot Server installieren, um Transaktionen und Fehler über APM zu überwachen.
Deployment-Szenario
Wir gehen davon aus, dass es mehrere Repositories gibt und die folgenden zwei Methoden gemischt verwendet werden.
- Docker on EC2
- ECS & Code Deploy
Installation
Nach der Registrierung folgen wir einfach der Anleitung von New Relic Schritt für Schritt.
- APM auswählen und dann Java wählen
- Auf den Button "Begin installation" klicken
- Unten rechts auf "Other Java installation options" klicken

- Unter 1 den App-Namen eintragen.
- Unter 2 auf den Download-Button klicken, um die Datei newrelic.yml herunterzuladen.

- Unter 3 auf "Copy to clipboard" klicken, um den curl-Befehl zu kopieren, und ihn in der Shell einfügen, um newrelic-java.zip herunterzuladen.
- Unter 4 Spring Boot auswählen.
- Die folgenden Schritte können ignoriert werden. Bei Schritt 6: Wenn man die Docker-Bedingungen überprüfen möchte, loggt man sich in die AWS-Konsole ein und gibt den Befehl ein. Da New Relic jedoch $0.25 pro 1G kostet, sobald die kostenlosen 100G pro Monat überschritten sind, empfehle ich, dies mit einem anderen Monitoring-Tool zu überprüfen.
- Die heruntergeladene newrelic-java.zip entpacken und direkt im Root-Verzeichnis des Spring-Projekts ablegen. Dabei gegebenenfalls den Ordnernamen anpassen, sodass die .jar-Dateien im newrelic-Ordner liegen.
- Mit git push ins Repository übernehmen. Da die meisten Entwickler .jar-Dateien in der .gitignore haben, muss man sie mit force add hinzufügen.
git add <blar>.jar -f
- Einmal deployen, damit die New Relic-Dateien auf den Server geladen werden.
Im Fall von Docker auf EC2
- Die docker-compose.yml im eigenen System öffnen und wie folgt anpassen:
- Beim entrypoint wurde -javaagent:/newrelic/newrelic.jar hinzugefügt. -javaagent muss im Befehl zwingend vor -jar stehen.
- Bei volumes wurde ./newrelic:/newrelic/ hinzugefügt. Wenn man oben im entrypoint beim Ausführen des javaagent -javaagent:/app/newrelic/newrelic.jar verwendet, ist kein Mount nötig.
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/
- Nach dem git push deployen.
Im Fall von ECS & Code Deploy
- In AWS zu ECS navigieren und auf Aufgabendefinitionen (Task Definitions) klicken.
- Den Server auswählen, auf dem New Relic angewendet werden soll, und auf "Neue Revision erstellen" klicken.
- Auf der Seite zur Erstellung der neuen Revision ganz nach unten scrollen und bei Volumes auf den Button "Über JSON konfigurieren" klicken.
- Im JSON den command-Teil wie unten gezeigt ändern. Das ist identisch mit dem, was wir bei EC2 in den entrypoint geschrieben haben. Nach der Änderung auf Speichern klicken.
- Ich habe versucht zu mounten, aber es hat nicht wie gewünscht funktioniert, also habe ich es aufgegeben.
"command": [
"java",
"-javaagent:/app/newrelic/newrelic.jar",
"-jar",
"-DSpring.profiles.active=release",
"/app/target/test-0.0.1-SNAPSHOT.jar"
],
- Auf den Erstellen-Button klicken, um die neue Revision anzulegen.
- Deployen.