λ³Έ κΈ€μ˜ APM μžλ°” μ—μ΄μ „νŠΈ 적용 μ˜ˆμ œλŠ” kdevkr/spring-demo-apm 리포지토리λ₯Ό μ°Έκ³ ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

λΆ€ν•˜ 및 μ„±λŠ₯ ν…ŒμŠ€νŠΈλŠ” μ–΄λ–»κ²Œ ν•˜λŠ”κ±°μ§€?μ—μ„œ μ–ΈκΈ‰ν•œ κ²ƒμ²˜λŸΌ 둜컬 ν™˜κ²½μ— μ„±λŠ₯ ν…ŒμŠ€νŠΈμ— λŒ€ν•œ ν™˜κ²½μ„ κ΅¬μ„±ν•˜κΈ° μœ„ν•΄μ„œ Scouter, Pinpoint, Elastic APMκ³Ό 같은 APM μ†”λ£¨μ…˜λ“€μ˜ μžλ°” μ—μ΄μ „νŠΈλ₯Ό μ‹€ν–‰ν•΄μ•Όν•˜λŠ” 상황이 λ°œμƒν•©λ‹ˆλ‹€. μ‹€μ œλ‘œλŠ” ν…ŒμŠ€νŠΈ ν™˜κ²½μ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬ν•˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λ₯Ό κ΅¬λ™ν•˜λŠ” κ²½μš°μ— javaagent ν”Œλž˜κ·Έλ‘œ μ—μ΄μ „νŠΈ νŒŒμΌμ„ μ§€μ •ν•˜λ©΄ λ©λ‹ˆλ‹€.

μ œκ°€ ν•˜κ³ μ‹Άμ—ˆλ˜ 것은 둜컬 ν™˜κ²½μ— APM μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜κ³  μΈν…”λ¦¬μ œμ΄λ₯Ό 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λŠ” κ²½μš°μ— μžλ°” μ—μ΄μ „νŠΈλ₯Ό μ μš©ν•΄λ³΄κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. μΈν…”λ¦¬μ œμ΄λ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ μŠ€ν”„λ§ λΆ€νŠΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•  λ•Œ νŠΉμ • ν”„λ‘œνŒŒμΌμ„ ν™œμ„±ν™”ν•˜κ±°λ‚˜ ν™˜κ²½λ³€μˆ˜λ₯Ό ν†΅ν•΄μ„œ 일뢀 ν”„λ‘œνΌν‹°λ₯Ό μ»€μŠ€ν…€ν•˜κ²Œ μ μš©ν•΄λ³Έ μΌ€μ΄μŠ€λŠ” μžˆμœΌλ‚˜ μžλ°” μ—μ΄μ „νŠΈλ₯Ό 지정해본 κ²½ν—˜μ€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

Path Variables

μΈν…”λ¦¬μ œμ΄ λ¬Έμ„œ μƒμ—λŠ” Path variables ν•­λͺ©μœΌλ‘œ 경둜 λ³€μˆ˜λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ λΉŒνŠΈμΈλ˜μ–΄ μžˆλŠ” 경둜 λ³€μˆ˜λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 μ•„λž˜μ™€ 같이 μ‹€ν–‰ κ΅¬μ„±μ—μ„œ Path Variablesλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€κ³ λ„ μ•ˆλ‚΄ν•΄μ£Όκ³  μžˆλ„€μš”.

You can use path variables to specify paths and command-line arguments for external tools and in some run configurations. For more information, see Built-in IDE macros.

λ”°λΌμ„œ ν”„λ‘œμ νŠΈ 폴더에 μžλ°” μ—μ΄μ „νŠΈ 파일이 μœ„μΉ˜ν•œλ‹€λ©΄ 빌트인 된 경둜 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 지정할 수 μžˆλ‹€λŠ” μ˜λ―Έκ°€ λ©λ‹ˆλ‹€.

Elastic APM μžλ°” μ—μ΄μ „νŠΈ

-javaagent:$PROJECT_DIR$/agent/elastic-apm-agent-1.26.1.jar
-Delastic.apm.server_urls=http://localhost:8200
-Delastic.apm.service_name=spring-demo-apm
-Delastic.apm.application_packages=com.example.demo
-Delastic.apm.environment=dev

$PROJECT_DIR$ λŠ” μΈν…”λ¦¬μ œμ΄μ— λ‚΄μž₯된 ν”„λ‘œμ νŠΈ κ²½λ‘œμ— λŒ€ν•œ λ³€μˆ˜μ΄λ©° JVM μ˜΅μ…˜μ—μ„œλ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ 경둜 λ³€μˆ˜κ°€ μ•„λ‹ˆλΌ 직접 ν”„λ‘œμ νŠΈ 경둜λ₯Ό μž…λ ₯ν•΄μ•Όν•˜λŠ” κ²½μš°μ—λŠ” μŒλ”°μ˜΄ν‘œλ₯Ό μ‚¬μš©ν•΄μ•Όλ§Œ ν•©λ‹ˆλ‹€.

μ‹€ν–‰ ꡬ성 μ €μž₯

μΈν…”λ¦¬μ œμ΄μ—μ„œλŠ” μ‹€ν–‰ 및 디버그 ꡬ성을 νŒŒμΌλ‘œλ„ μ €μž₯ν•˜μ—¬ κ³΅μœ ν•  수 μžˆλ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€. Run/Debug Configurations의 상단 μš°μΈ‘μ„ 보면 파일둜 μ €μž₯ μ˜΅μ…˜μ΄ 있으며 이λ₯Ό μ²΄ν¬ν•˜λŠ” 경우 ν”„λ‘œμ νŠΈ 루트 경둜의 .run 폴더에 μ‹€ν–‰ ꡬ성 파일이 μƒμ„±λ©λ‹ˆλ‹€. 예제 λ¦¬ν¬μ§€ν† λ¦¬μ˜ SpringDemoApplication [Elastic APM].run.xml와 같이 ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€. μ£Όμ˜ν•΄μ•Όν•  사항은 빌트인 경둜 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈ 경둜λ₯Ό μžλ™μœΌλ‘œ 지정할 수 μžˆμ—ˆμœΌλ‚˜ μ‹€ν–‰ ꡬ성을 λ‹€μ‹œ ν™•μΈν•΄λ³΄λ‹ˆ ν”„λ‘œμ νŠΈ 경둜 λ³€μˆ˜λŠ” μ‹€μ œ ν”„λ‘œμ νŠΈ 경둜둜 λ³€κ²½λ˜μ–΄μžˆμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, λˆ„κ΅°κ°€μ—κ²Œ μ‹€ν–‰ ꡬ성을 κ³΅μœ ν•΄μ•Όν•œλ‹€λ©΄ ν”„λ‘œμ νŠΈ 경둜 λ³€μˆ˜λ‘œ μ§€μ •λœ μƒνƒœμ—μ„œ μ €μž₯ν•˜λŠ”κ²Œ 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.