New features and improvements
Add log_level_denylist config to default yaml 2830
Solr 9 JMX module 2821
New centralized token counting strategy for capturing token counts from LLM Responses. 2837
Support for capturing JDBC batch operations; specifically the addBatch() and executeBatch() methods. 2840
XML RPC instrumentation module to replace legacy point cut 2841
Add a new JFR specific config
jfr.use_display_name. If set to true, the agent will set the JFR host name to the value in theprocess_host.display_nameconfiguration. The default is false to preserve old behavior.
If jfr.use_display_name is true but the display_name config is empty, the JfrService will fallback to the old behavior for the host name.
common: &default_settings jfr: use_display_name: true- Remove unneeded segment creation in java.xmlrpc module 2853
- Update aws-bedrock-runtime-2.20 Module with a new token counting strategy for each of the models. 2845
New license key obfuscation algorithm 2864
Support for Micronaut Http Clients versions 3.5.0+ 2834
Support for Kafka Clients 4.0.0 and up 2896
Internal dependency Log4j Core Upgrade from 2.17.1 to 2.25.4 2833
AWS DAX Support starting from 2.0.0 to latest 2873
- Add instrumentation for Spring AI completion and embedding clients for versions 1.0.0 and up. This adds new instrumentation modules:
spring-ai-client-chat-1.0.0spring-ai-model-1.0.0Core Tracing - Drop SpanEvents and Re-Parent dropped SpanLinks 2881
Pointcut replacements
Support Micronautโs BlockingHttpClient 2860
- Add support for AI Model Context Protocol 1.0.0 to latest. 2880
Fixes
Fix coroutines instrumentation. Fixes include:
- Better tracking of asynchronous behavior by instrumenting gaps that were found where execution can jump to another thread.
- Better naming on Coroutines and Continuations. Existing naming was too generic. New naming identifies according to whether it is started via runBlocking, async, withContext or launch.
- Removed some utility methods that were no longer used 2802
Fixes excessive number of unexpired async tokens when instrumenting Micronaut. 2792
Resolution of Mule 4.9 IllegalAccessError 2859
Fix a mis-recording of the Instrumented and Kept metrics for Core Tracing, as they were originally being recorded as a time metric. 2881
Update to latest version
To identify which version of the Java agent you're currently using, run java -jar newrelic.jar -v. Your Java agent version will be printed to your console.
Then, to update to the latest Java agent version:
- Back up the entire Java agent root directory to another location. Rename that directory to
NewRelic_Agent#.#.#, where#.#.#is the agent version number. - Download the agent..
- Unzip the new agent download file, then copy
newrelic-api.jarandnewrelic.jarinto the original Java agent root directory. - Compare your old
newrelic.ymlwith the newly downloadednewrelic.ymlfrom the zip, and update the file if needed. - Restart your Java dispatcher.
If you experience issues after the Java agent update, restore from the backed-up New Relic agent directory.
Update agent config differences
We add new settings to newrelic.yml as we release new versions of the agent. You can use diff or another diffing utility to see what's changed, and add the new config settings to your old file. Make sure not to overwrite any customizations you've made to the file, such as your license key, app name, or changes to default settings.
For example, if you diff the default newrelic.yml files for Java agent versions 7.10.0 and 7.11.0, the results printed to the console will be like:
โ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...In this example, these lines were added to the default newrelic.yml in Java agent version 7.11.0. If you're moving to 7.11.0 or higher, you should add these new lines to your original newrelic.yml.
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๊ฐ์ ์ฌํญ
- ์๋ฐ 26 ์ง์ ์ถ๊ฐ 2734
- ์๋ฐ ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ AWS Lambda ๋ชจ๋ํฐ๋ง์ ์ํ Serverless ๋ชจ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค 2609 2615 2625 2633 2640 2641 2647 2673 2716 2721 2735 2723 2740 2769 2782 2794 2797 2796 2806
- ์
application_logging.forwarding.log_level_denylist๊ตฌ์ฑ์ ์ถ๊ฐํฉ๋๋ค 2764 - ๋ฆฌ์ ์ธ์ ์ด๋ฒคํธ/๋ฉํธ๋ฆญ ์์ง URI ๊ตฌํ 2749 2790
enable_auto_app_naming์ด(๊ฐ)true์ผ ๋ ๋ก๊ทธ๋ฅผ ํด๋น ์ํฐํฐ์ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ ์ง์ ์ถ๊ฐ 2627- OpenTelemetry 1.59.0+์ฉ
opentelemetry-sdk-extension-autoconfigure-1.59.0๊ณ์ธก ์ถ๊ฐ 2786 enable_auto_app_naming์ด(๊ฐ)true์ผ ๋ Adaptive Sampler๋ฅผ ํด๋น ์ํฐํฐ์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ง์ ์ถ๊ฐ 2805enable_auto_app_naming์ด(๊ฐ)true์ผ ๋ ์์ฑ๋ ๊ฐ ์ํฐํฐ์ ๋ํ ์ง์ ๊ฐ๋ฅ์ฑ ๋ฉํธ๋ฆญ์ ์ถ๊ฐํฉ๋๋ค 2808- ํด๋ผ์ฐ๋ ๋ฉํ๋ฐ์ดํฐ ํ๋ก์ ์ฐํ ์ค์ ๊ตฌํ 2791
- ์์ด์ ํธ์์ ์ฌ๋ฌ ๋ฒ์ ์ Caffeine์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค 2807
- SQL ์ด๋ ์ด๋ฅผ ํ์ฉํ๋ ์ค๋ช ๊ณํ์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค 2815
- ์ผ๋ฐ 'Queue'๋ฅผ ์ ์ก ์ ํ์ผ๋ก ์ถ๊ฐ 2820
- Reactor Netty Http ํด๋ผ์ด์ธํธ ํธ์ถ ์ง์์ ์ถ๊ฐํฉ๋๋ค 2817
์์ ์ฌํญ
- NR ํ์ด๋ก๋์
sampledํ๋์ ์ก์ธ์คํ ๋ ์๋ชป๋ ํ์์ ํ์ด๋ก๋๋ก ์ธํด NPE๊ฐ ๋ฐ์ํ๋ ์ฃ์ง ์ผ์ด์ค๋ฅผ ์์ ํฉ๋๋ค 2762 - Reactive ๊ตฌ๋ ์ด ์ทจ์๋ ๋ ํ ํฐ์ ๋ง๋ฃํฉ๋๋ค 2798
- ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด
TheadTracker์บ์์์ ๋ฐ๋ ์ค๋ ๋๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํ๋ ๋ก์ง์ ์ถ๊ฐํฉ๋๋ค 2811 - ์์ง ์ค๋ ๋์ JVM ์ข ๋ฃ ์ค๋ ๋ ๊ฐ์ ๊ต์ฐฉ ์ํ๋ฅผ ํด๊ฒฐํฉ๋๋ค 2539
์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ
ํ์ฌ ์ฌ์ฉ ์ค์ธ Java ์์ด์ ํธ ๋ฒ์ ์ ์๋ณํ๋ ค๋ฉด java -jar newrelic.jar -v ์ ์คํํฉ๋๋ค. Java ์์ด์ ํธ ๋ฒ์ ์ด ์ฝ์์ ์ธ์๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ต์ Java ์์ด์ ํธ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
- ์ ์ฒด Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ ๋ฅผ ๋ค๋ฅธ ์์น์ ๋ฐฑ์
ํฉ๋๋ค. ํด๋น ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์
NewRelic_Agent#.#.#์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ฌ๊ธฐ์#.#.#์ ์์ด์ ํธ ๋ฒ์ ๋ฒํธ์ ๋๋ค. - ์์ด์ ํธ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
- ์ ์์ด์ ํธ ๋ค์ด๋ก๋ ํ์ผ์ ์์ถ์ ํผ ๋ค์
newrelic-api.jar๋ฐnewrelic.jar์ ์๋ Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ ์ ๋ณต์ฌํฉ๋๋ค. - ์ด์
newrelic.yml์ zip์์ ์๋ก ๋ค์ด๋ก๋ํnewrelic.yml๊ณผ ๋น๊ต ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ํ์ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค . - Java ๋์คํจ์ฒ๋ฅผ ๋ค์ ์์ํ์ญ์์ค.
Java ์์ด์ ํธ ์ ๋ฐ์ดํธ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐฑ์ ๋ New Relic ์์ด์ ํธ ๋๋ ํฐ๋ฆฌ์์ ๋ณต์ํ์ญ์์ค.
์์ด์ ํธ ๊ตฌ์ฑ ์ฐจ์ด์ ์ ๋ฐ์ดํธ
์์ด์ ํธ์ ์ ๋ฒ์ ์ ์ถ์ํ ๋ newrelic.yml ์ ์ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค.diff ๋๋ ๋ค๋ฅธ diffing ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ ์ฌํญ์ ํ์ธํ๊ณ ์ด์ ํ์ผ์ ์ ๊ตฌ์ฑ ์ค์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.๋ผ์ด์ผ์ค ํค, ์ฑ ์ด๋ฆ ๋๋ ๊ธฐ๋ณธ ์ค์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ฐ์ด ํ์ผ์ ๋ํด ์ํํ ์ฌ์ฉ์ ์ ์๋ฅผ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ์ญ์์ค.
์๋ฅผ ๋ค์ด, ืืื ื ๋ฒ์ 7.10.0 ๋ฐ 7.11.0์ ๋ํ ๊ธฐ๋ณธ newrelic.yml ํ์ผ์ diff ํ๋ ๊ฒฝ์ฐ ์ฝ์์ ์ธ์๋ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...์ด ์์์ ์ด๋ฌํ ์ค์ ืืื ๋ฒ์ 7.11.0์ ๊ธฐ๋ณธ newrelic.yml ์ ์ถ๊ฐ๋์์ต๋๋ค. 7.11.0 ์ด์์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์๋ newrelic.yml ์ ์ด๋ฌํ ์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ง์ง ์ฑ๋ช :
- ๋ด๋ ๋ฆญ์ ์์ด์ ํธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ฌ ์ต์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ์ด์ ์ ์ป์ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์ด์ ๋ฆด๋ฆฌ์ค๋ ์ง์ ์ข ๋ฃ ์์ ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๊ฐ์ ์ฌํญ
- ์๋ฐ ํ์ด๋ธ๋ฆฌ๋ ๋ณํ๊ธฐ: ๋ด๋ด๋ฆญ์ ์ฌ์ธต์ ์ธ ๊ฐ์์ฑ๊ณผ OpenTelemetry API ํธํ์ฑ์ ๊ฒฐํฉํ์ฌ "๋ ๊ฐ์ง ์ฅ์ ์ ๋ชจ๋ ๊ฐ์ถ" ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์๋ OpenTelemetry Tracing, ์งํ, ๋ก๊ทธ API๋ ๋ฌผ๋ก ๋
๋ฆฝ ์คํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๋ค์ดํฐ๋ธ ํ๋ ์์ํฌ ์ธก์ , ๋ก๊ทธ API์ ๋ํ ํฌ๊ด์ ์ธ ์ง์์ด ํฌํจ๋์ด ์์ต๋๋ค. ์คํฌ ๋งํฌ ๋ฐ ์คํฌ ์ด๋ฒคํธ์ ๊ฐ์ ์ฃผ์ ๊ฐ์ ์ฌํญ์ด ์ด์ ์ ๊ณต๋์ด ํผํฉ ๋ชจ๋ ํ๊ฒฝ์์ ์ํํ ์ํธ ์ด์ฉ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- @jasonjkeller๊ฐ 2711๋ฒ ์ด์์์ ๋ฐํํ ํ์ด๋ธ๋ฆฌ๋ ์์ด์ ํธ OpenTelemetry API ์ง์
- @dhilpipre๊ฐ 2726๋ฒ์ ์์ ์ฝ๋ฃจํด ๋ฌด์ ๊ธฐ๋ฅ์ ๊ฐ์ ํ์ต๋๋ค.
- ์์ด์ ํธ ๋ฉํ๋ฐ์ดํฐ ์ถ๊ฐ ์์ - @mvicknr 2732 2745
์์ ์ฌํญ
- @jasonjkeller๊ฐ 2299์์ w3c ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ๊นจ์ง ํธ๋์ค ์ ํ๋ฅผ ์์ ํ์ต๋๋ค.
- 2720๋ฒ์ ์์ @jtduffy ๋์ด ๋ฉํฐํธ์คํธ ํ๊ฒฝ์ค์ ๊ตฌ์ฑ์ ์์ ํ์ต๋๋ค.
- 2663 ๋ฒ์ ์์ @dhilpipre๊ฐ suspend ignores๋ฅผ ์ฝ์ง ๋ชปํ๋ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค.
์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ
ํ์ฌ ์ฌ์ฉ ์ค์ธ Java ์์ด์ ํธ ๋ฒ์ ์ ์๋ณํ๋ ค๋ฉด java -jar newrelic.jar -v ์ ์คํํฉ๋๋ค. Java ์์ด์ ํธ ๋ฒ์ ์ด ์ฝ์์ ์ธ์๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ต์ Java ์์ด์ ํธ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
- ์ ์ฒด Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ ๋ฅผ ๋ค๋ฅธ ์์น์ ๋ฐฑ์
ํฉ๋๋ค. ํด๋น ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์
NewRelic_Agent#.#.#์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ฌ๊ธฐ์#.#.#์ ์์ด์ ํธ ๋ฒ์ ๋ฒํธ์ ๋๋ค. - ์์ด์ ํธ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
- ์ ์์ด์ ํธ ๋ค์ด๋ก๋ ํ์ผ์ ์์ถ์ ํผ ๋ค์
newrelic-api.jar๋ฐnewrelic.jar์ ์๋ Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ ์ ๋ณต์ฌํฉ๋๋ค. - ์ด์
newrelic.yml์ zip์์ ์๋ก ๋ค์ด๋ก๋ํnewrelic.yml๊ณผ ๋น๊ต ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ํ์ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค . - Java ๋์คํจ์ฒ๋ฅผ ๋ค์ ์์ํ์ญ์์ค.
Java ์์ด์ ํธ ์ ๋ฐ์ดํธ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐฑ์ ๋ New Relic ์์ด์ ํธ ๋๋ ํฐ๋ฆฌ์์ ๋ณต์ํ์ญ์์ค.
์์ด์ ํธ ๊ตฌ์ฑ ์ฐจ์ด์ ์ ๋ฐ์ดํธ
์์ด์ ํธ์ ์ ๋ฒ์ ์ ์ถ์ํ ๋ newrelic.yml ์ ์ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค.diff ๋๋ ๋ค๋ฅธ diffing ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ ์ฌํญ์ ํ์ธํ๊ณ ์ด์ ํ์ผ์ ์ ๊ตฌ์ฑ ์ค์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.๋ผ์ด์ผ์ค ํค, ์ฑ ์ด๋ฆ ๋๋ ๊ธฐ๋ณธ ์ค์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ฐ์ด ํ์ผ์ ๋ํด ์ํํ ์ฌ์ฉ์ ์ ์๋ฅผ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ์ญ์์ค.
์๋ฅผ ๋ค์ด, ืืื ื ๋ฒ์ 7.10.0 ๋ฐ 7.11.0์ ๋ํ ๊ธฐ๋ณธ newrelic.yml ํ์ผ์ diff ํ๋ ๊ฒฝ์ฐ ์ฝ์์ ์ธ์๋ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...์ด ์์์ ์ด๋ฌํ ์ค์ ืืื ๋ฒ์ 7.11.0์ ๊ธฐ๋ณธ newrelic.yml ์ ์ถ๊ฐ๋์์ต๋๋ค. 7.11.0 ์ด์์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์๋ newrelic.yml ์ ์ด๋ฌํ ์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ง์ง ์ฑ๋ช :
- ๋ด๋ ๋ฆญ์ ์์ด์ ํธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ฌ ์ต์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ์ด์ ์ ์ป์ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์ด์ ๋ฆด๋ฆฌ์ค๋ ์ง์ ์ข ๋ฃ ์์ ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๊ฐ์ ์ฌํญ
- @jtduffy๊ฐ 2676๋ฒ ์ด์์์ ์ถ๊ฐํ, ์์ ์ ์ค๋๋ ์์ด์ ํธ ์์ JAR ํ์ผ์ ์ญ์ ํ๋ ์ค์ ์ถ๊ฐ
- 2638์์ ์ ํ์ ์ผ๋ก ์ ์๋ @jtduffy์ ๋ํ ์ ์ธ ์ค์ ์ ๋ณด์ํ๊ธฐ ์ํด "inclusion" ์ต์
์ ์ถ๊ฐํฉ๋๋ค.
- ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด ํ๊ฒฝ ๋ณ์
NEW_RELIC_STARTUP_JAVA_ARTIFACT_INCLUDES๋๋ ์์คํ ์์ฑnewrelic.config.startup_java_artifact_includes์ ์ค์ ํ์ญ์์ค. ๊ณ์ธกํด์ผ ํ ์ํฐํฉํธ๋ฅผ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก์ผ๋ก ์ง์ ํ์ญ์์ค.
- ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด ํ๊ฒฝ ๋ณ์
์์ ์ฌํญ
- @jtduffy๊ฐ 2503์์ S3AsyncClient_Instrumentation์์ ๋ํผ ํด๋์ค๋ฅผ ์ ๊ฑฐํ์ฌ IllegalAccessError๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
- 2594์ @jasonjkeller๊ฐ logback-classic-1.5.20์์ ๋ก๊ทธ ์ด๋ฒคํธ์ ๋ํ ์๋ชป ๋ ์ด๋ธ์ด ์ง์ ๋ ์ธก์ , ๋ก๊ทธ ์ด๋ฒคํธ ๋ฒ์ ์ ์์ ํ์ต๋๋ค.
- @jeffalder ๋์ด 2680๋ฒ์ ์์ ์ต๋ ์์ฑ ๊ฐ์ ๋ํ ๋ก๊น ๋ฉ์์ง๋ฅผ ์์ ํ์ต๋๋ค.
- @jtduffy๊ฐ 2583์์ ์์ ํ ํธ๋ ์ด์ค ๋น์จ ์ํ๋ฌ ์ฐ์ ์์
์ด์ฌ
- @obenkenobi๊ฐ 2572๋ฒ์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ jdbc-inet-* ๋ชจ๋์ ์ ๊ฑฐํ์ต๋๋ค.
- ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ java.completable-future-jdk8์ ์ ๊ฑฐํฉ๋๋ค. ์ธก์ , 2562๋ @obenkenobi ์์ฑ
- 2567๋ @obenkenobi์ AWS ๋ฉ ์ธก์ , ๋ก๊ทธ ์ ๊ฑฐ
- @obenkenobi๊ฐ 2614์์ jdbc-sybase-6 ๋ชจ๋์ ์ ๊ฑฐํ์ต๋๋ค.
- 2568๋ @obenkenobi์ play 2.3 ์ธก์ , ๋ฆฌ์์ค ์ ๊ฑฐ
- ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ thrift-0.8์ ์ ๊ฑฐํฉ๋๋ค. @obenkenobi๊ฐ 2569์ ๋ง๋ ๋ชจ๋
- @obenkenobi๊ฐ 2570๋ฒ์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ Solr 4.0 ๋ฐ 5.0 ๋ชจ๋์ ์ ๊ฑฐํฉ๋๋ค.
- ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋ชจ๋ grails-1.3์ ์ ๊ฑฐํฉ๋๋ค. @obenkenobi ๋์ด 2573๋ ์ ์์ฑํจ
- ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ hibernate-3.3 ๋ชจ๋์ ์ ๊ฑฐํฉ๋๋ค. @obenkenobi ๋์ด 2574๋ ์ ์์ฑํจ
- 2620๋ ์ @sharvath-newrelic์ด ์ฌ์ฉํ์ง ์๋ ๋ฐ๋ฅ API ์ ๊ฑฐํฉ๋๋ค.
- @obenkenobi๊ฐ 2561๋ฒ์ ์์ ์ ๊ฑฐํ, ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ Struts 1 ํฌ์ธํธ์ปท์ ์ ๊ฑฐํฉ๋๋ค.
- @sharvath-newrelic์ด 2575๋ฒ์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋ชจ๋ glassfish-3์ ์ ๊ฑฐํฉ๋๋ค.
- @obenkenobi๊ฐ 2571๋ฒ์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ rabbit-amqp ๋ชจ๋ 2.5.0, 2.4.1, 1.7.2๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
- @jtduffy๊ฐ 2589๋ฒ์ ์์ ๋ฐฐํฌ ๋ง์ปค ๊ธฐ๋ฅ์ ์ ๊ฑฐํ์ต๋๋ค.
์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ
ํ์ฌ ์ฌ์ฉ ์ค์ธ Java ์์ด์ ํธ ๋ฒ์ ์ ์๋ณํ๋ ค๋ฉด java -jar newrelic.jar -v ์ ์คํํฉ๋๋ค. Java ์์ด์ ํธ ๋ฒ์ ์ด ์ฝ์์ ์ธ์๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ต์ Java ์์ด์ ํธ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
- ์ ์ฒด Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ ๋ฅผ ๋ค๋ฅธ ์์น์ ๋ฐฑ์
ํฉ๋๋ค. ํด๋น ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์
NewRelic_Agent#.#.#์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ฌ๊ธฐ์#.#.#์ ์์ด์ ํธ ๋ฒ์ ๋ฒํธ์ ๋๋ค. - ์์ด์ ํธ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
- ์ ์์ด์ ํธ ๋ค์ด๋ก๋ ํ์ผ์ ์์ถ์ ํผ ๋ค์
newrelic-api.jar๋ฐnewrelic.jar์ ์๋ Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ ์ ๋ณต์ฌํฉ๋๋ค. - ์ด์
newrelic.yml์ zip์์ ์๋ก ๋ค์ด๋ก๋ํnewrelic.yml๊ณผ ๋น๊ต ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ํ์ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค . - Java ๋์คํจ์ฒ๋ฅผ ๋ค์ ์์ํ์ญ์์ค.
Java ์์ด์ ํธ ์ ๋ฐ์ดํธ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐฑ์ ๋ New Relic ์์ด์ ํธ ๋๋ ํฐ๋ฆฌ์์ ๋ณต์ํ์ญ์์ค.
์์ด์ ํธ ๊ตฌ์ฑ ์ฐจ์ด์ ์ ๋ฐ์ดํธ
์์ด์ ํธ์ ์ ๋ฒ์ ์ ์ถ์ํ ๋ newrelic.yml ์ ์ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค.diff ๋๋ ๋ค๋ฅธ diffing ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ ์ฌํญ์ ํ์ธํ๊ณ ์ด์ ํ์ผ์ ์ ๊ตฌ์ฑ ์ค์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.๋ผ์ด์ผ์ค ํค, ์ฑ ์ด๋ฆ ๋๋ ๊ธฐ๋ณธ ์ค์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ฐ์ด ํ์ผ์ ๋ํด ์ํํ ์ฌ์ฉ์ ์ ์๋ฅผ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ์ญ์์ค.
์๋ฅผ ๋ค์ด, ืืื ื ๋ฒ์ 7.10.0 ๋ฐ 7.11.0์ ๋ํ ๊ธฐ๋ณธ newrelic.yml ํ์ผ์ diff ํ๋ ๊ฒฝ์ฐ ์ฝ์์ ์ธ์๋ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...์ด ์์์ ์ด๋ฌํ ์ค์ ืืื ๋ฒ์ 7.11.0์ ๊ธฐ๋ณธ newrelic.yml ์ ์ถ๊ฐ๋์์ต๋๋ค. 7.11.0 ์ด์์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์๋ newrelic.yml ์ ์ด๋ฌํ ์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ง์ง ์ฑ๋ช :
- ๋ด๋ ๋ฆญ์ ์์ด์ ํธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ฌ ์ต์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ์ด์ ์ ์ป์ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์ด์ ๋ฆด๋ฆฌ์ค๋ ์ง์ ์ข ๋ฃ ์์ ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
์์ ์ฌํญ
- Kotlin ์ฝ๋ฃจํด์์ ํ์ฌ ๊ตฌํ ๊ด๋ จ ์ค๋ฅ๋ฅผ ์์ ํฉ๋๋ค.
CancellableContinuation
์ฌ์ฉ ์ค๋จ
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1spring-3.0.0thrift-0.8solr-4.0.0solr-5.0.0jdbc-inet-merliajdbc-inet-oranxograils-1.3rabbit-amqp-1.7.2rabbit-amqp-2.4.1rabbit-amqp-2.5.0rabbit-amqp-2.7.0glassfish-3hibernate-3.3hibernate-3.5jdbc-jtds
์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ
ํ์ฌ ์ฌ์ฉ ์ค์ธ Java ์์ด์ ํธ ๋ฒ์ ์ ์๋ณํ๋ ค๋ฉด java -jar newrelic.jar -v ์ ์คํํฉ๋๋ค. Java ์์ด์ ํธ ๋ฒ์ ์ด ์ฝ์์ ์ธ์๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ต์ Java ์์ด์ ํธ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
- ์ ์ฒด Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ ๋ฅผ ๋ค๋ฅธ ์์น์ ๋ฐฑ์
ํฉ๋๋ค. ํด๋น ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์
NewRelic_Agent#.#.#์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ฌ๊ธฐ์#.#.#์ ์์ด์ ํธ ๋ฒ์ ๋ฒํธ์ ๋๋ค. - ์์ด์ ํธ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
- ์ ์์ด์ ํธ ๋ค์ด๋ก๋ ํ์ผ์ ์์ถ์ ํผ ๋ค์
newrelic-api.jar๋ฐnewrelic.jar์ ์๋ Java ์์ด์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ ์ ๋ณต์ฌํฉ๋๋ค. - ์ด์
newrelic.yml์ zip์์ ์๋ก ๋ค์ด๋ก๋ํnewrelic.yml๊ณผ ๋น๊ต ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ํ์ผ์ ์ ๋ฐ์ดํธํฉ๋๋ค . - Java ๋์คํจ์ฒ๋ฅผ ๋ค์ ์์ํ์ญ์์ค.
Java ์์ด์ ํธ ์ ๋ฐ์ดํธ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฐฑ์ ๋ New Relic ์์ด์ ํธ ๋๋ ํฐ๋ฆฌ์์ ๋ณต์ํ์ญ์์ค.
์์ด์ ํธ ๊ตฌ์ฑ ์ฐจ์ด์ ์ ๋ฐ์ดํธ
์์ด์ ํธ์ ์ ๋ฒ์ ์ ์ถ์ํ ๋ newrelic.yml ์ ์ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค.diff ๋๋ ๋ค๋ฅธ diffing ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ ์ฌํญ์ ํ์ธํ๊ณ ์ด์ ํ์ผ์ ์ ๊ตฌ์ฑ ์ค์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.๋ผ์ด์ผ์ค ํค, ์ฑ ์ด๋ฆ ๋๋ ๊ธฐ๋ณธ ์ค์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ฐ์ด ํ์ผ์ ๋ํด ์ํํ ์ฌ์ฉ์ ์ ์๋ฅผ ๋ฎ์ด์ฐ์ง ์๋๋ก ํ์ญ์์ค.
์๋ฅผ ๋ค์ด, ืืื ื ๋ฒ์ 7.10.0 ๋ฐ 7.11.0์ ๋ํ ๊ธฐ๋ณธ newrelic.yml ํ์ผ์ diff ํ๋ ๊ฒฝ์ฐ ์ฝ์์ ์ธ์๋ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...์ด ์์์ ์ด๋ฌํ ์ค์ ืืื ๋ฒ์ 7.11.0์ ๊ธฐ๋ณธ newrelic.yml ์ ์ถ๊ฐ๋์์ต๋๋ค. 7.11.0 ์ด์์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์๋ newrelic.yml ์ ์ด๋ฌํ ์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ง์ง ์ฑ๋ช :
- ๋ด๋ ๋ฆญ์ ์์ด์ ํธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ฌ ์ต์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ์ด์ ์ ์ป์ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์ด์ ๋ฆด๋ฆฌ์ค๋ ์ง์ ์ข ๋ฃ ์์ ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
New features and improvements
- Adds Java 25 Support by @deleonenriqueta in 2512
- Adds support for Logback-1.5.20 by @jtduffy in 2535
- Introduces a config option to disable the execution of the
callandexecSQL parser regular expressions by @jtduffy in 2490 - Adds support for Kotlin Coroutines v1.4+ by @dhilpipre in 2454
- Adds support for Kotlin Coroutines Suspend Functions generated outside of Kotlin Coroutines by @dhilpipre in 2456
- Introduces a preference config for multiple hosts during datastore detection by @jbedell-newrelic in 2508
- Adds a system property to configure the artifact skip function by @jtduffy in 2509
- Adds a configuration option allowing Spring Controller transactions to be named using the controller class name and method name by @sharvath-newrelic in 2532
- Implements SamplerConfig, centralizing all
distributed_tracing.samplerconfigs into theSamplerConfigby @jasonjkeller in 2529 - Updates
kafka-clients-spans-0.11.0.0producer instrumentation to use modern distributed tracing APIโs with W3C Trace Context support by @sharvath-newrelic in 2516
Fixes
- Fixes parsing of error class names by @sharvath-newrelic in 2497
- Fixes a potential memory issue caused by excessively large stack traces in error logging by @jtduffy in 2498
- Clarify logging messages for invalid attributes on custom events and logging events by @sharvath-newrelic in 2501
Deprecations
The following instrumentation modules are deprecated and will be removed in the next major release.
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1spring-3.0.0thrift-0.8solr-4.0.0solr-5.0.0jdbc-inet-merliajdbc-inet-oranxograils-1.3rabbit-amqp-1.7.2rabbit-amqp-2.4.1rabbit-amqp-2.5.0rabbit-amqp-2.7.0glassfish-3hibernate-3.3hibernate-3.5jdbc-jtds
Update to latest version
To identify which version of the Java agent you're currently using, run java -jar newrelic.jar -v. Your Java agent version will be printed to your console.
Then, to update to the latest Java agent version:
- Back up the entire Java agent root directory to another location. Rename that directory to
NewRelic_Agent#.#.#, where#.#.#is the agent version number. - Download the agent..
- Unzip the new agent download file, then copy
newrelic-api.jarandnewrelic.jarinto the original Java agent root directory. - Compare your old
newrelic.ymlwith the newly downloadednewrelic.ymlfrom the zip, and update the file if needed. - Restart your Java dispatcher.
If you experience issues after the Java agent update, restore from the backed-up New Relic agent directory.
Update agent config differences
We add new settings to newrelic.yml as we release new versions of the agent. You can use diff or another diffing utility to see what's changed, and add the new config settings to your old file. Make sure not to overwrite any customizations you've made to the file, such as your license key, app name, or changes to default settings.
For example, if you diff the default newrelic.yml files for Java agent versions 7.10.0 and 7.11.0, the results printed to the console will be like:
โ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...In this example, these lines were added to the default newrelic.yml in Java agent version 7.11.0. If you're moving to 7.11.0 or higher, you should add these new lines to your original newrelic.yml.
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.