웹 서비스의 핵심 성능 지표인 Web Vitals(LCP, CLS, FID)를 수집하고, 대시보드에서 쉽게 확인할 수 있도록 만든 모니터링 플랫폼입니다.
pnpm installcd packages/sdk
pnpm build
cd ../..pnpm dev아래 세 가지가 동시에 실행됩니다:
- Collector 서버 (4000번 포트)
- Dashboard (3000번 포트)
- Example Web (3001번 포트)
Collector 서버
cd apps/collector
pnpm dev→ http://localhost:4000에서 실행
Dashboard
cd apps/dashboard
pnpm dev→ http://localhost:3000에서 확인 가능
Example Web (SDK 테스트용)
cd apps/example-web
pnpm dev→ http://localhost:3001에서 실행
curl http://localhost:4000/api/metrics/lcp-average처음에는 {"data":[]}처럼 빈 응답이 반환됩니다.
- Example Web 접속 →
http://localhost:3001 - 페이지 새로고침 또는 스크롤 등 사용자 행동을 몇 번 수행
- 브라우저 Network 탭에서
/collect요청이 발생하는지 확인
- Dashboard 접속 →
http://localhost:3000 - 서비스별 LCP 평균 그래프 확인
- 수집된 데이터가 없다면 "데이터가 없습니다" 메시지가 표시됩니다
cd apps/collector
sqlite3 perfkit.db
.tables
SELECT * FROM metrics ORDER BY timestamp DESC LIMIT 10;
SELECT service_id, name, value, timestamp FROM metrics WHERE name = 'LCP' ORDER BY timestamp DESC LIMIT 10;
.quit브라우저
↓ Web Vitals 측정
SDK
↓ POST /collect
Collector 서버
↓ SQLite 저장
Database
↑ GET /api/metrics/lcp-average
Dashboard
↑ 그래프 시각화
사용자
.env.local(선택)
NEXT_PUBLIC_COLLECTOR_URL=http://localhost:4000
.env.local(선택)
NEXT_PUBLIC_COLLECTOR_URL=http://localhost:4000
둘 다 기본값은 http://localhost:4000입니다.
- Console 탭에서 에러 메시지 확인
- Network 탭에서
/collect요청 상태 확인 - Collector 서버 실행 여부 확인
- Collector 서버가 정상 실행 중인지 확인
- Dashboard에서 API 요청이 성공했는지 Network 탭 확인
- SQLite에 데이터가 저장되어 있는지 조회
- Collector: 4000
- Dashboard: 3000
- Example Web: 3001
이미 사용 중이라면 각 앱 설정에서 포트를 조정하세요.