β 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 μ¬μ©)
-