11#! /bin/bash
22
3- sed -i -e " s/NEWRELIC_API_KEY/$NEWRELIC_API_KEY /g" ./newrelic/newrelic.yml
4- sed -i -e " s/APP_ENV/$APP_ENV /g" ./newrelic/newrelic.yml
5- exec java $JAVA_OPTS -javaagent:./newrelic/newrelic.jar -jar ./rest-api.jar
3+ # Configure New Relic
4+ if [ ! -z " $NEWRELIC_API_KEY " ]; then
5+ sed -i -e " s/NEWRELIC_API_KEY/$NEWRELIC_API_KEY /g" ./newrelic/newrelic.yml
6+ sed -i -e " s/APP_ENV/$APP_ENV /g" ./newrelic/newrelic.yml
7+ NEW_RELIC_AGENT=" -javaagent:./newrelic/newrelic.jar"
8+ fi
9+
10+ # Datadog configuration with New Relic feature parity
11+ if [ ! -z " $DD_API_KEY " ]; then
12+ DATADOG_AGENT=" -javaagent:./datadog/dd-java-agent.jar"
13+ # Tracing: enabled with 100% sampling and analytics
14+ # Profiling: continuous profiling and traceId log injection for correlation
15+ # HTTP monitoring: error status definitions for server/client
16+ # JMX metrics: enabled for application monitoring
17+ # Method tracing: auto-trace Spring web controllers
18+ # Security: disable principal collection, enable obfuscation
19+ # Performance: exclude query strings, set async timeout
20+ DATADOG_OPTS=" -Ddd.service.name=${DD_SERVICE:- qpp-conversion-tool} \
21+ -Ddd.env=${APP_ENV:- test} \
22+ -Ddd.version=${DD_VERSION:- unknown} \
23+ -Ddd.trace.enabled=true \
24+ -Ddd.trace.sample.rate=1.0 \
25+ -Ddd.trace.analytics.enabled=true \
26+ -Ddd.profiling.enabled=true \
27+ -Ddd.logs.injection=true \
28+ -Ddd.trace.http.server.error.statuses=500-599 \
29+ -Ddd.trace.http.client.error.statuses=500-599 \
30+ -Ddd.jmxfetch.enabled=true \
31+ -Ddd.trace.methods=org.springframework.web.bind.annotation.*[*] \
32+ -Ddd.trace.servlet.principal.enabled=false \
33+ -Ddd.trace.obfuscation.enabled=true \
34+ -Ddd.trace.http.client.tag.query-string=false \
35+ -Ddd.trace.servlet.async-timeout=30000"
36+ fi
37+
38+ # Start application with both agents during transition
39+ exec java $JAVA_OPTS $NEW_RELIC_AGENT $DATADOG_AGENT $DATADOG_OPTS \
40+ -jar ./rest-api.jar
0 commit comments