์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๊ฐ์ ์ฌํญ
- ์๋ฐ 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 ์ ์ด๋ฌํ ์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ง์ง ์ฑ๋ช :
- ๋ด๋ ๋ฆญ์ ์์ด์ ํธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ฌ ์ต์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ์ด์ ์ ์ป์ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์ด์ ๋ฆด๋ฆฌ์ค๋ ์ง์ ์ข ๋ฃ ์์ ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ ๋ฐ ๊ฐ์ ์ฌํญ
- 2512๋ ์ @deleonenriqueta๊ฐ 25 ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- @jtduffy๊ฐ 2535์ Logback-1.5.20์ ๋ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- @jtduffy๊ฐ 2490๋
์
call๋ฐexecSQL ํ์ ์ ๊ท ํํ์ ์คํ์ ๋นํ์ฑํํ๋ ๊ตฌ์ฑ ์ต์ ์ ์๊ฐํฉ๋๋ค. - @dhilpipre๊ฐ 2454๋ ์ Kotlin Coroutines v1.4+์ ๋ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- @dhilpipre๊ฐ 2456๋ ์ Kotlin Coroutines ์ธ๋ถ์์ ์์ฑํ Kotlin Coroutines Suspend ํจ์์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค.
- @jbedell-newrelic์ด 2508๋ ์ ๋ฐ์ดํฐ์คํ ์ด๋ฅผ ๊ฐ์งํ๋ ๋์ ์ฌ๋ฌ ํธ์คํธ์ ๋ํ ๊ธฐ๋ณธ ์ค์ ๊ตฌ์ฑ์ ๋์ ํ์ต๋๋ค.
- @jtduffy๊ฐ 2509๋ ์ ์ํฐํฉํธ ๊ฑด๋๋ฐ๊ธฐ ๊ธฐ๋ฅ์ ๊ตฌ์ฑํ๊ธฐ ์ํ ์์คํ ์์ฑ์ ์ถ๊ฐํฉ๋๋ค.
- @sharvath-newrelic์ด 2532๋ ์ ์ปจํธ๋กค๋ฌ ํด๋์ค ์ด๋ฆ๊ณผ ๋ฉ์๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ Spring Controller ํธ๋์ญ์ ์ ์ด๋ฆ์ ์ง์ ํ ์ ์๋๋ก ํ๋ ์ค์ ์ต์ ์ ์ถ๊ฐํฉ๋๋ค.
- @jasonjkeller๊ฐ 2529๋
์ ๋ชจ๋
distributed_tracing.sampler๊ตฌ์ฑ์SamplerConfig๋ก ์ค์ํํ์ฌ SamplerConfig๋ฅผ ๊ตฌํํ์ต๋๋ค. - 2516๋
@sharvath-newrelic์ W3C Trace Context ์ง์๊ณผ ํจ๊ป ํ๋์ ์ธ ๋ณํ๊ธฐ ์ถ์ API๋ฅผ ์ฌ์ฉํ๋๋ก
kafka-clients-spans-0.11.0.0์์ฐ์ ์ธก์ , ํธ๋์ญ์ ์ ์ ๋ฐ์ดํธํ์ต๋๋ค.
์์ ์ฌํญ
- 2497๋ @sharvath-newrelic์ ์ค๋ฅ ํด๋์ค ์ด๋ฆ ๊ตฌ๋ฌธ ๋ถ์์ ์์ ํ์ต๋๋ค.
- @jtduffy๊ฐ 2498๋ ์ ์ค๋ฅ ๋ก๊น ์์ ์ง๋์น๊ฒ ํฐ ์คํ ์ถ์ ์ผ๋ก ์ธํด ๋ฐ์ํ ์ ์ฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
- 2501๋ @sharvath-newrelic์ ์ํ ๋ง์ถคํ ๋์๋ณด๋ ๋ฐ ๋ก๊น ์ด๋ฒคํธ์ ์ ํจํ์ง ์์ ์์ฑ์ ๋ํ ๋ก๊น ๋ฉ์์ง๋ฅผ ๋ช ํํ ํ์ต๋๋ค.
์ฌ์ฉ ์ค๋จ
๋ค์ ์ธก์ , ๊ณ์ธก ๋ชจ๋์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋ค์ ์ฃผ์ ๋ฆด๋ฆฌ์ค์์ ์ ๊ฑฐ๋ ์์ ์ ๋๋ค.
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 ์ ์ด๋ฌํ ์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ง์ง ์ฑ๋ช :
- ๋ด๋ ๋ฆญ์ ์์ด์ ํธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ฌ ์ต์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ์ด์ ์ ์ป์ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ๋ํ, ์ด์ ๋ฆด๋ฆฌ์ค๋ ์ง์ ์ข ๋ฃ ์์ ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.