QPM
개발 중브라우저부터 서버·DB·인프라까지, traceId 하나로 관통하는 End-to-End 성능 모니터링 시스템입니다.
개요
QPM(Query Performance Monitor)은 프론트엔드(브라우저)부터 백엔드 서비스,
데이터베이스, 인프라까지 전체 서비스 스택의 성능을 통합 모니터링하는
End-to-End 성능 모니터링 시스템입니다. 사용자의 호출 한 건이 브라우저 → 네트워크 →
서버 → DB 중 어느 구간에서 얼마나 걸렸는지를 traceId 하나로 관통해서 보여줍니다.
주요 기능
End-to-End 추적
프론트엔드와 백엔드의 트레이스를 자동으로 병합하고, 브라우저 실사용 데이터(RUM)와 서버 트레이스를 조인해 네트워크 구간까지 추정합니다. DB 구간의 실행 SQL·바인드 값과 실패 구간의 예외 상세를 손실 없이 보존합니다.
통합 수집 — Push + Pull
SDK 기반 분산 트레이싱(Push)과 Prometheus 기반 인프라 메트릭(Pull)을 하나의 화면에서 통합합니다. 클라이언트 체감 시간·Web Vitals, 서버 구간 분해, CPU·메모리·DB 커넥션까지 세 층의 데이터를 함께 봅니다.
토폴로지 중심 시각화
client → service → data → infra 4계층 서비스 구성도 위에 성능 데이터를 얹어 표시합니다. 노드별 상태·메트릭 요약과 성능 타임라인을 제공합니다.
원격 수집 제어 · 적응형 샘플링
서버에서 SDK의 샘플링·수집 파라미터를 실시간으로 제어합니다. 서버 부하 (CPU/메모리/유입량)에 따라 샘플링 비율을 자동 조절해 모니터링이 서비스에 주는 부담을 최소화합니다.
분석 대시보드 (9개 탭)
트랜잭션 워터폴·Span Tree, 엔드포인트별 구간 분해(self/DB/외부), 쿼리 단위 Top-N 집계(실행 SQL 표시), 브라우저 RUM, 토폴로지, 인프라, 데이터베이스, 데이터 관리, 설정 탭을 제공합니다.
SDK 4종
- Spring Boot Starter — 설정만으로 HTTP·DB(MyBatis/JdbcTemplate) 자동 계측, 실행 SQL·에러 상세 수집
- Node.js Backend — Express 미들웨어 트레이싱, W3C traceparent 전파
- Node.js Frontend / 브라우저 RUM — 페이지 로드·API 호출·Web Vitals·JS 에러 수집
계층형 보존
메모리 24시간 핫패스 → SQLite 장기 보존(성공 30일·에러 90일) → 시간별 집계의 3계층 구조로, 실시간 조회 성능과 장기 추세 분석을 함께 잡습니다.