Elastic APM Agent vs RUM Agent
Elastic APM 은 Elastic Stack 에서 애플리케이션의 요청 성능과 오류를 추적하는 APM(Application Performance Monitoring) 솔루션입니다. 이걸 붙일 때 Agent 가 두 종류라 처음에 헷갈리는데 — APM Agent 와 RUM Agent — 둘은 보는 지점이 다릅니다.
APM Agent는 서버, RUM Agent는 브라우저
APM Agent 는 서버 사이드 애플리케이션에 붙습니다(Node.js, Java 등). 서버가 요청을 받아 처리하는 구간을 봅니다.
RUM Agent(Real User Monitoring)는 브라우저에서 도는 JavaScript 라이브러리 입니다. 사용자의 실제 브라우저에서 무슨 일이 일어나는지 봅니다.
APM Agent만 붙이면 보이는 것
서버 안쪽입니다.
- 서버 사이드 응답 시간, 처리량
- 백엔드 에러와 예외
- DB 쿼리 성능
- 외부 서비스 호출 성능
- 서버 리소스(CPU, 메모리)
즉 “요청이 서버에 들어와서 나갈 때까지” 입니다. 그 앞뒤 — 브라우저가 페이지를 그리고 사용자가 클릭하는 구간 — 은 안 보입니다.
RUM Agent를 더하면 보이는 것
브라우저 사이드가 추가됩니다.
웹 바이탈 지표 — 사용자가 체감하는 로딩 속도입니다.
- FCP(First Contentful Paint), LCP(Largest Contentful Paint)
- INP(Interaction to Next Paint), CLS(Cumulative Layout Shift) — INP는 2024년 3월 Core Web Vitals에서 FID를 대체했습니다
- TTFB(Time to First Byte)
사용자 상호작용 — 클릭, 페이지 이동, AJAX 요청.
프론트엔드 에러 — JavaScript 런타임 에러, 네트워크 요청 실패.
브라우저·디바이스 정보 — 브라우저 종류, OS, 모바일/데스크톱.
둘 다 필요한 경우
백엔드 응답 시간은 200ms 인데 사용자는 “느리다” 고 하는 상황이 있습니다. APM Agent 만 보면 서버는 빠르니 원인이 안 잡힙니다.
그 간극은 대부분 브라우저 쪽에 있는데, 큰 JavaScript 번들이나 렌더링 블로킹, 이미지 로딩, 여러 번의 AJAX 왕복 같은 것들이라 RUM 에만 보입니다. 서버가 아무리 빨라도 사용자 화면에 뜨기까지가 느리면 사용자 경험은 느린 겁니다.
Elastic Cloud 콘솔에서도 갈립니다. APM Agent 만 붙이면 서비스 목록에 백엔드 서비스만 나오고, RUM 을 더하면 프론트엔드 서비스가 별도로 잡힙니다. 트랜잭션 뷰에도 페이지 로드와 라우트 변경 같은 프론트엔드 트랜잭션이 추가됩니다.
서버 성능은 APM, 체감 속도는 RUM
서버 성능만 볼 거면 APM Agent 로 충분합니다. “사용자가 체감하는 속도” 까지 봐야 하면 RUM 을 더합니다. 백엔드는 빠른데 사용자 불만이 나올 때, 그 원인은 대개 RUM 이 보는 구간에 있습니다.
댓글 0