λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT

Pinpoint: λΆ„μ‚° μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ 도ꡬ

by πŸ’²πŸŽ΅βœ–οΈβœ”οΈβ˜Ό 2024. 3. 5.
728x90

Pinpoint: λΆ„μ‚° μ‹œμŠ€ν…œ λͺ¨λ‹ˆν„°λ§ 도ꡬ

μ†Œκ°œ

PinpointλŠ” μžλ°” 기반의 λŒ€κ·œλͺ¨ λΆ„μ‚° μ‹œμŠ€ν…œμ—μ„œμ˜ μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§ 및 문제 해결을 μ§€μ›ν•˜λŠ” λ„κ΅¬λ‘œ, λ„€μ΄λ²„μ—μ„œ 개발된 μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯ 이슈λ₯Ό μ •ν™•ν•˜κ²Œ νŒŒμ•…ν•˜κ³  ν•΄κ²°ν•˜λŠ” 데 도움이 되며, λ³΅μž‘ν•œ λΆ„μ‚° ν™˜κ²½μ—μ„œμ˜ νŠΈλžœμž­μ…˜ 좔적, μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§, 루트 원인 뢄석 등을 μ œκ³΅ν•©λ‹ˆλ‹€.

Pinpoint의 μ—­ν• 

1. νŠΈλžœμž­μ…˜ 좔적

PinpointλŠ” λΆ„μ‚° ν™˜κ²½μ—μ„œ λ°œμƒν•˜λŠ” νŠΈλžœμž­μ…˜μ„ μΆ”μ ν•˜κ³  각 νŠΈλžœμž­μ…˜μ˜ μ„±λŠ₯ 데이터λ₯Ό μˆ˜μ§‘ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 전체적인 흐름을 μ΄ν•΄ν•˜κ³  λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ—μ„œ λ°œμƒν•˜λŠ” 문제λ₯Ό μ‹ μ†ν•˜κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2. μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§

λΆ„μ‚°λœ μ„œλ²„, μ‘μš© ν”„λ‘œκ·Έλž¨, λ°μ΄ν„°λ² μ΄μŠ€ λ“±μ˜ μ„±λŠ₯을 μ‹€μ‹œκ°„μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•˜μ—¬ μ„±λŠ₯ 이슈λ₯Ό λΉ λ₯΄κ²Œ κ°μ§€ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‹œμŠ€ν…œμ˜ μ„±λŠ₯을 μ΅œμ ν™”ν•˜κ³  μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

3. 루트 원인 뢄석

μ„±λŠ₯ μ΄μŠˆκ°€ λ°œμƒν•œ 경우 PinpointλŠ” λΉ λ₯΄κ³  μ •ν™•ν•œ 루트 원인 뢄석을 μ§€μ›ν•©λ‹ˆλ‹€. 각 νŠΈλžœμž­μ…˜μ˜ μ‹€ν–‰ 경둜λ₯Ό μ‹œκ°μ μœΌλ‘œ ν™•μΈν•˜μ—¬ λ¬Έμ œκ°€ λ°œμƒν•œ 곳을 μ‹ μ†ν•˜κ²Œ νŒŒμ•…ν•˜κ³  μ‘°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© 상황

PinpointλŠ” 주둜 λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ ν™œμš©λ©λ‹ˆλ‹€.

1. λΆ„μ‚° μ‹œμŠ€ν…œ 운영

λŒ€κ·œλͺ¨μ˜ μ„œλ²„ ν™˜κ²½μ—μ„œ λ°œμƒν•˜λŠ” λ³΅μž‘ν•œ 문제λ₯Ό μ‹λ³„ν•˜κ³  ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€. 특히, μ—¬λŸ¬ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ κ΅¬μ„±λœ μ•„ν‚€ν…μ²˜μ—μ„œ 각 μ„œλΉ„μŠ€ κ°„μ˜ 톡신과 μ„±λŠ₯을 λͺ¨λ‹ˆν„°λ§ν•˜λŠ” 데 강점을 κ°€μ§‘λ‹ˆλ‹€.

2. μ„œλΉ„μŠ€ ν’ˆμ§ˆ ν–₯상

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯을 μ§€μ†μ μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•˜μ—¬ μ„œλΉ„μŠ€ ν’ˆμ§ˆμ„ ν–₯μƒμ‹œν‚€λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. μ‚¬μš©μžλ“€μ˜ μ›ν™œν•œ μ„œλΉ„μŠ€ μ΄μš©μ„ μœ„ν•΄ μ„±λŠ₯ μ΅œμ ν™” μž‘μ—…μ— ν™œμš©λ©λ‹ˆλ‹€.

3. μ„±λŠ₯ νŠœλ‹

μ„±λŠ₯ μ΄μŠˆκ°€ λ°œμƒν•œ 경우 ν•΄λ‹Ή 이슈λ₯Ό λΉ λ₯΄κ²Œ μ°Ύμ•„λ‚΄κ³  μˆ˜μ •ν•¨μœΌλ‘œμ¨ 전체 μ‹œμŠ€ν…œμ˜ μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” 데 ν™œμš©λ©λ‹ˆλ‹€. Pinpointλ₯Ό 톡해 μ„±λŠ₯에 영ν–₯을 λ―ΈμΉ˜λŠ” μš”μΈλ“€μ„ μ‹ μ†ν•˜κ²Œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

μž₯단점

μž₯점

1. λΆ„μ‚° νŠΈλžœμž­μ…˜ 좔적

λΆ„μ‚° ν™˜κ²½μ—μ„œ λ°œμƒν•˜λŠ” νŠΈλžœμž­μ…˜μ˜ 전체적인 흐름을 μΆ”μ ν•˜μ—¬ 문제λ₯Ό μ‹ μ†ν•˜κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2. μ‹€μ‹œκ°„ μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§

μ„œλ²„, μ‘μš© ν”„λ‘œκ·Έλž¨ λ“±μ˜ μ„±λŠ₯을 μ‹€μ‹œκ°„μœΌλ‘œ 확인할 수 μžˆμ–΄ λΉ λ₯Έ λŒ€μ‘μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

3. 루트 원인 뢄석 지원

μ„±λŠ₯ μ΄μŠˆμ— λŒ€ν•œ λΉ λ₯΄κ³  μ •ν™•ν•œ 루트 원인 뢄석을 μ§€μ›ν•˜μ—¬ 문제 ν•΄κ²° μ‹œκ°„μ„ λ‹¨μΆ•ν•©λ‹ˆλ‹€.

단점

1. μ„€μ • 및 운영 λ³΅μž‘μ„±

초기 μ„€μ •μ΄λ‚˜ μš΄μ˜μ„ μœ„ν•΄μ„œλŠ” 일정 μˆ˜μ€€μ˜ ν•™μŠ΅κ³Ό κ²½ν—˜μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

2. λ¦¬μ†ŒμŠ€ μ†Œλͺ¨

Pinpointλ₯Ό μ‚¬μš©ν•˜λŠ” λ™μ•ˆ μ•½κ°„μ˜ μ„±λŠ₯ 손싀이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Pinpoint 예제 μ½”λ“œ

Spring Boot μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— Pinpoint 적용

@Configuration
public class PinpointConfig {

    @Value("${pinpoint.agentId}")


    private String agentId;

    @Value("${pinpoint.applicationName}")
    private String applicationName;

    @Bean
    public PinpointConfiguration pinpointConfiguration() {
        PinpointConfiguration configuration = new PinpointConfiguration();
        configuration.setAgentId(agentId);
        configuration.setApplicationName(applicationName);
        return configuration;
    }
}

μ΄λŠ” κ°„λ‹¨ν•œ Spring Boot μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— Pinpointλ₯Ό μ μš©ν•˜λŠ” 예제 μ½”λ“œ 쀑 μΌλΆ€μž…λ‹ˆλ‹€. μ‹€μ œλ‘œλŠ” 더 λ§Žμ€ 섀정이 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€