Spring Boot/모니터링

네이버 핀포인트란?

수수한개발자 2023. 4. 1.
728x90

연관글 

1. 네이버 핀포인트란?

2. 핀포인트 설치하기

 

네이버 핀포인트를 설치 및 도입하기 전에 APM과 핀포인트에 대해서 알아보겠습니다.

APM 목차

  1. APM이란?
  2. 애플리케이션 성능이란?
  3. APM을 사용하는 다양한 목적

Pinpoint 목차

  1. Pinpoint란?
  2. Pinpoint의 특징
  3. Pinpoint의 기능
  4. Pinpoint 아키텍쳐

 

1.APM이란?

  • Application Performance Management
  • Application Performance Monitoring
  • 애플리케이션의 성능 관리 성능-기계따위가지닌성질이나기능
  • 고객에게 정상적으로 서비스 중인지 관리
  • 메트릭, 이벤트, 로그 및 트랜잭션(MELT)을 모니터링

위와 같이 정의할 수 있는데 단어 그 자체로 우리가 고객에게 제공하는 애플리케이션 성능을 관리하거나 모니터링한다는 뜻입니다.

결국 모니터링한다는 뜻입니다. 

 

 

2. 애플리케이션 성능이란?

  • 애플리케이션의 리소스 사용량 -> 고객 경험
      • CPU, Memory, Database Conn, Thread
  • 애플리케이션의 응답 시간 -> 고객 경험
  • 애플리케이션의 처리량 -> 고객 경험  

애플리케이션의 리소스 사용량

예를 들면 CPU를 많이 쓰는지, 메모리를 많이 쓰는지, 데이터베이스 커넥션을 많이 쓰는지, 스레드는 적절하게 사용하고 있는지 이런 것의 사용량등을 모니터링합니다.

이렇게 모니터링하는 이유는 과부하게 리소스를 사용하게 되면 서버 측에 과부하가 생기고 과부하가 생기면 결국 고객에게 제대로 된 서비스를 할 수 없기 때문입니다. 즉, 우리의 애플리케이션과 서비스가 시스템의 리소스 성능 문제로 제대로 고객 서비스를 할 수 없다고 말할 수 있습니다.

 

애플리케이션의 응답 시간

고객이 요청을 보냈는데 서비스의 응답이 느리면 고객경험이 좋지 않으며 고객이 떠나갑니다. 이런 경우도 성능이 안 좋다고 할 수 있습니다.  

애플리케이션의 처리량

만약에 광고나 이벤트로 우리 서비스로 고객이 몰렸는데 제대로 처리하지 못하면 이 역시 고객경험이 좋지 않고 떠나가게 됩니다. -> 성능이 안 좋다고 할 수 있다.

 

3.APM을 사용하는 목적

  • 성능 문제를 예측하고 방지
  • 고객기대성능보장
  • 고객경험보장
  • 애플리케이션 가용성 증대, 다운타임 감소 응답시간보장
  • SLA (Service-Level Agreements)

APM을 사용하는 목적은 결국은 고객에게 서비스를 제대로 하기 위해서 입니다.

고객에게 제대로 서비스를 하려면 우리 시스템의 성능 즉, 리소스의 사용량, 응답시간, 처리량 등을 주기적으로 모니터링하고 관리하고 알림을 받아야 합니다.  

그렇기 때문에 성능이 보장된다는 말은 고객 경험이 보장된다는 의미입니다.   고객 경험이 보장된다는 뜻은 응답시간, 처리량, 가용시간등을 보장한다는 뜻이기도 합니다.

 

 

Pinpoint

1. Pinpoint란?

 
  • 2015년 1월 9일에 오픈소스로 공개 - 네이버
  • 분산 시스템의 성능 분석 및 문제 진단 및 해결에 사용하는 APM
  • 연결된 분산 시스템들의 트랜잭션 추적과 분석

 

 

2. Pinpoint의 특징

  • 연결된 분산 시스템을 맵 형태의 시각적 정보 제공 -> 쉽고 빠르게 이해
  • 실시간으로 애플리케이션 및 서비스 모니터링
  • 각각의 트랜잭션 코드레벨 콜스택 분석 기능 제공
  • 애플리케이션 서버의 코드 변경 없는 APM Agents 제공
  • 애플리케이션 서버의 성능에 최소한의 영향도(리소스의 약 3% 사용)

 

 

3. Pinpoint의 기능

  • 서버 맵(ServerMap)
  • 실시간 활성 스레드 차트(Realtime Active Thread Chart)
  • 요청 및 응답에 대한 스캐터 차트(Request/Response Scatter Chart)
  • 코드 레벨의 콜스택(CallStack)
  • 인스펙터(Inspector)

 

 

3-1 ServerMap

 

  • 분산 시스템의 연결된 상황과 트랜잭잭션을 시각화 - 빠르고 쉽게 파악
  • 각 요청의 현재 성공, 실패 지표 제공
  • 각 요청에 대한 요청 수 제공
  • 각 요청의 응답 시간 제공
  • 각 요청과 응답의 평균 지표 제공

 

3-2 Realtime Active Thread Chart

  • 전체 스레드 정보 제공
  • 활성 스레드를 실시간 모니터링 제공

 

3-3 Request/Response Scatter Chart

요청과 응답에 대한 차트가 점으로 표시된다.

  • 요청과 응단에 대한 Scatter Chart 제공
  • 요청 Scatter를 드래고, 상세 정보 확인

 

3-4 CallStack

users 요청에 대한 sql문 까지 확인 할 수 있다.

 

  • 모든 트랜잭션에 대한 코드 수준의 가시성 정보 제공
  • 코드 수준의 병목 현상과 장애 지점을 식별

 

3-5 Inspector

애플리케이션의 상세 정보 제공

- CPU 사용률

- Memory/Garbage Collection

- TPS

- JVM arguments

 

4. Pinpoint 아키텍처

  • Pinpoint Agent - 애플리케이션의 성능 관련 지표 수집 및 전달
  • Pinpoint Collector - Agent에서 받은 정보는 Hbase에 적재
  • Pinpoint Web UI - 수집된 정보 제공(성능, 모니터링, 지표)
728x90

'Spring Boot > 모니터링' 카테고리의 다른 글

핀포인트 설치하기  (0) 2023.04.01

댓글