✅ API 메트릭 중개 백엔드 & SDK 어플리케이션 개발
1. 프로젝트 개요
이 프로젝트는 다양한 외부 도메인 서비스(A, B 등)에서 발생하는 트랜잭션 이벤트를 중앙 집중식으로 수집하고,
이를 기반으로 Grafana에서 대시보드로 시각화할 수 있는
Kotlin 기반 중개 백엔드 서버와 클라이언트 SDK를 구현하는 것을 목표로 합니다.
목표: “분산된 도메인에서 발생하는 API 이벤트를 중앙에서 수집, 분석, 시각화 가능하게 한다”
2. 아키텍처 구성도
😃 아키텍처의 플로우는 간단하다.
✅ 도메인 트랜잭션 기반 실시간 메트릭 수집 및 시각화 흐름
도메인 클라이언트 서버에서 트랜잭션이 발생하면,
내장된 중개 서버 SDK가 자동으로 스크래핑 메서드를 호출
이때 호출된 정보를 기준으로,
📡 Prometheus가 트랜잭션 및 도메인 정보를 스크래핑하여 메트릭 데이터를 수집하고
📊 수집된 데이터는 Grafana 대시보드에서 실시간 시각화되어 표출됩니다.
➕ SDK 연동만으로 메트릭 수집 및 모니터링을 손쉽게 구현할 수 있게 됩니다.
3. 주요 기능 정의
| 구성요소 | 기능 |
|---|---|
| Metrics 중개 서버 | - 이벤트 수집용 REST API 제공 - Micrometer 기반 Prometheus Export - 이벤트 로그 저장 기능 (선택) |
| SDK (Kotlin 라이브러리) | - 클라이언트 웹/앱에서 이벤트 전송 - 간편한 API 제공 ( trackPurchase() 등) - 장애 시 예외 처리 및 로컬 캐시 (확장 가능) |
| Prometheus | - Metrics 중개 서버로부터 주기적 스크래핑 - 시간별 매서드별 트랜잭션 카운트 저장 |
| Grafana | - Prometheus 데이터 시각화 - 도메인별 트랜잭션 현황 대시보드 구성 |
4. 스펙 정의
4.1 중개 백엔드 서버
-
언어: Kotlin
-
프레임워크: Spring Boot 3.x
-
주요 라이브러리:
-
Micrometer
-
Jackson
-
Prometheus Exporter
-
-
기능:
-
/metrics/purchase: 트랜잭션 이벤트 수신 API -
/actuator/prometheus: Prometheus 스크래핑용 엔드포인트
-
4.2 SDK 라이브러리
-
언어: Kotlin (Java 호환)
-
배포 방식:
.jaror Maven Registry -
라이브러리:
okhttp,jackson-module-kotlin -
API:
val client = MetricsClient("https://metrics.server.com")
client.trackPurchase(domain = "shop", itemId = "abc123", userId = "user456")4.3 데이터 시각화
-
Prometheus + Grafana
-
수집 지표:
purchase.count{domain="A"}등으로 도메인 - 매서드별 트랜잭션 수 시각화
-
대시보드 항목:
-
시간별 트렌드
-
도메인별 구매 점유율
-
최근 이벤트 로그 (선택 시 DB 사용)
-
