✅ 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 호환)

  • 배포 방식: .jar or 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 사용)