/////
Search
๐Ÿ“„

API v2

โ€ข
GET /services โ€” ์„œ๋น„์Šค ๋ณ„ ๊ฐœ์š”(์š”์•ฝ ๋ฉ”ํŠธ๋ฆญ)
โ€ข
GET /services/{serviceName}/metrics โ€” ์„œ๋น„์Šค ์ˆ˜์ค€ ์ง‘๊ณ„ ๋ฉ”ํŠธ๋ฆญ
โ€ข
GET /services/{serviceName}/endpoints โ€” ์„œ๋น„์Šค์˜ ์—”๋“œํฌ์ธํŠธ๋ณ„ ์ง‘๊ณ„ ๋ฉ”ํŠธ๋ฆญ
โ€ข
GET /services/{serviceName}/traces โ€” ์„œ๋น„์Šค ๋ฃจํŠธ ํŠธ๋ ˆ์ด์Šค ๊ฒ€์ƒ‰
โ€ข
GET /traces/{traceId} โ€” traceId๋กœ ํŠธ๋ ˆ์ด์Šค ๋ฐ ๊ด€๋ จ ์ŠคํŒฌ/๋กœ๊ทธ ์กฐํšŒ
โ€ข
GET /logs โ€” ๋กœ๊ทธ ๊ฒ€์ƒ‰
โ€ข
GET /spans โ€” ์ŠคํŒฌ ๊ฒ€์ƒ‰

API ์—”๋“œํฌ์ธํŠธ

GET /services

Query Parameter
Type
Required
Description
from
string (date-time)
No
์ง‘๊ณ„ ์œˆ๋„์šฐ ์‹œ์ž‘ ์‹œ๊ฐ„ (ํฌํ•จ)
to
string (date-time)
No
์ง‘๊ณ„ ์œˆ๋„์šฐ ์ข…๋ฃŒ ์‹œ๊ฐ„ (์ œ์™ธ)
environment
string
No
๋ฐฐํฌ ํ™˜๊ฒฝ ํ•„ํ„ฐ (์˜ˆ:ย prod,ย stage,ย dev)
sort_by
string
No
์ •๋ ฌ ๊ธฐ์ค€ ํ•„๋“œ<br/>-ย request_count: ์š”์ฒญ ์ˆ˜ ๊ธฐ์ค€ (๊ธฐ๋ณธ๊ฐ’)<br/>-ย latency_p95_ms: 95๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„ ์ง€์—ฐ์‹œ๊ฐ„<br/>-ย error_rate: ์—๋Ÿฌ์œจ
limit
integer
No
๋ฐ˜ํ™˜ํ•  ์ตœ๋Œ€ ์„œ๋น„์Šค ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 50, ์ตœ์†Œ: 1)
name_filter
string
No
์„œ๋น„์Šค ์ด๋ฆ„ ํ•„ํ„ฐ (๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์Œ)
{ "from": "2025-01-01T00:00:00Z", "to": "2025-01-02T00:00:00Z", "environment": "prod", "services": [ { "service_name": "api-gateway", "environment": "prod", "request_count": 15000, "latency_p95_ms": 250.5, "error_rate": 0.02, "labels": { "version": "1.0.0" } } ] }
JSON
๋ณต์‚ฌ

GET /traces/{traceId}

Parameter
Type
Required
Description
traceId
string
Yes
ํŠธ๋ ˆ์ด์Šค ๊ณ ์œ  ์‹๋ณ„์ž
Query Parameter
Type
Required
Description
environment
string
No
๋ฐฐํฌ ํ™˜๊ฒฝ ํ•„ํ„ฐ
service
string
No
์„œ๋น„์Šค ์ด๋ฆ„ ํ•„ํ„ฐ (์ง€์ • ์‹œ ํ•ด๋‹น ์„œ๋น„์Šค์˜ ์ŠคํŒฌ๊ณผ ๋กœ๊ทธ๋งŒ ๋ฐ˜ํ™˜)
{ "trace_id": "abc123", "spans": [ { "timestamp": "2025-01-01T12:00:00Z", "span_id": "span-001", "parent_span_id": null, "name": "GET /api/users", "kind": "SERVER", "duration_ms": 45.2, "status": "OK", "service_name": "user-service", "environment": "prod", "http_method": "GET", "http_path": "/api/users", "http_status_code": 200, "labels": {}, "db_statement": null } ], "logs": [ { "timestamp": "2025-01-01T12:00:00Z", "level": "INFO", "message": "Request processed successfully", "service_name": "user-service", "span_id": "span-001", "trace_id": "abc123", "labels": {} } ] }
JSON
๋ณต์‚ฌ

GET /services/{serviceName}/metrics

ํ˜„์žฌ Overview ์„น์…˜์— ํ•ด๋‹น
Parameter
Type
Required
Description
serviceName
string
Yes
๋ฉ”ํŠธ๋ฆญ์„ ์กฐํšŒํ•  ์„œ๋น„์Šค ์ด๋ฆ„ (๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์Œ)
Query Parameter
Type
Required
Description
metric
string
No
์กฐํšŒํ•  ๋ฉ”ํŠธ๋ฆญ<br/>-ย http_requests_total: ์ด ์š”์ฒญ ์ˆ˜<br/>-ย latency_p95_ms: 95๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„ ์ง€์—ฐ์‹œ๊ฐ„<br/>-ย error_rate: ์—๋Ÿฌ์œจ<br/>(์ƒ๋žต ์‹œ ๋ชจ๋“  ๋ฉ”ํŠธ๋ฆญ ๋ฐ˜ํ™˜)
from
string (date-time)
No
์‹œ๊ฐ„ ์œˆ๋„์šฐ ์‹œ์ž‘ ์‹œ๊ฐ„ (ํฌํ•จ)
to
string (date-time)
No
์‹œ๊ฐ„ ์œˆ๋„์šฐ ์ข…๋ฃŒ ์‹œ๊ฐ„ (์ œ์™ธ)
environment
string
No
๋ฐฐํฌ ํ™˜๊ฒฝ ํ•„ํ„ฐ
interval
string
No
์ง‘๊ณ„ ๊ฐ„๊ฒฉ (์˜ˆ:ย 1m,ย 5m,ย 1h)<br/>์‹œ๊ฐ„ ๋‹จ์œ„:ย s,ย m,ย h
{ "metric_name": "latency_p95_ms", "service_name": "user-service", "environment": "prod", "points": [ { "timestamp": "2025-01-01T12:00:00Z", "value": 45.5, "labels": { "region": "us-east-1" } } ] } # ๋˜๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ [ { "metric_name": "http_requests_total", "service_name": "user-service", "environment": "prod", "points": [...] }, { "metric_name": "latency_p95_ms", "service_name": "user-service", "environment": "prod", "points": [...] } ]
JSON
๋ณต์‚ฌ

GET /logs

Query Parameter
Type
Required
Description
service_name
string
No
์„œ๋น„์Šค ์ด๋ฆ„ ํ•„ํ„ฐ
environment
string
No
๋ฐฐํฌ ํ™˜๊ฒฝ ํ•„ํ„ฐ
level
string
No
๋กœ๊ทธ ๋ ˆ๋ฒจ ํ•„ํ„ฐ (DEBUG,ย INFO,ย WARN,ย ERROR)
trace_id
string
No
ํŠธ๋ ˆ์ด์Šค ID ํ•„ํ„ฐ
span_id
string
No
์ŠคํŒฌ ID ํ•„ํ„ฐ
message
string
No
๋ฉ”์‹œ์ง€ ์ „๋ฌธ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ
from
string (date-time)
No
๊ฒ€์ƒ‰ ์œˆ๋„์šฐ ์‹œ์ž‘ ์‹œ๊ฐ„ (ํฌํ•จ)
to
string (date-time)
No
๊ฒ€์ƒ‰ ์œˆ๋„์šฐ ์ข…๋ฃŒ ์‹œ๊ฐ„ (์ œ์™ธ)
page
integer
No
ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (1๋ถ€ํ„ฐ ์‹œ์ž‘, ๊ธฐ๋ณธ๊ฐ’: 1)
size
integer
No
ํŽ˜์ด์ง€๋‹น ํ•ญ๋ชฉ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 50, ์ตœ๋Œ€: 1000)
sort
string
No
ํƒ€์ž„์Šคํƒฌํ”„ ์ •๋ ฌ ์ˆœ์„œ (ascย ๋˜๋Š”ย desc, ๊ธฐ๋ณธ๊ฐ’:ย desc)
{ "total": 1000, "page": 1, "size": 50, "items": [ { "timestamp": "2025-01-01T12:00:00Z", "level": "INFO", "message": "User logged in", "service_name": "auth-service", "span_id": "span-001", "trace_id": "abc123", "labels": { "user_id": "12345" } } ] }
JSON
๋ณต์‚ฌ

GET /spans

Query Parameter
Type
Required
Description
service_name
string
No
์„œ๋น„์Šค ์ด๋ฆ„ ํ•„ํ„ฐ
environment
string
No
๋ฐฐํฌ ํ™˜๊ฒฝ ํ•„ํ„ฐ
name
string
No
์ŠคํŒฌ ์ด๋ฆ„ ํ•„ํ„ฐ (์ •ํ™•ํžˆ ์ผ์น˜)
kind
string
No
์ŠคํŒฌ ์ข…๋ฅ˜ (SERVER,ย CLIENT,ย INTERNAL)
status
string
No
์ŠคํŒฌ ์ƒํƒœ (OK,ย ERROR)
min_duration_ms
number
No
์ตœ์†Œ ์ŠคํŒฌ ์ง€์†์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
max_duration_ms
number
No
์ตœ๋Œ€ ์ŠคํŒฌ ์ง€์†์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
trace_id
string
No
ํŠธ๋ ˆ์ด์Šค ID ํ•„ํ„ฐ
parent_span_id
string
No
๋ถ€๋ชจ ์ŠคํŒฌ ID ํ•„ํ„ฐ
from
string (date-time)
No
๊ฒ€์ƒ‰ ์œˆ๋„์šฐ ์‹œ์ž‘ ์‹œ๊ฐ„ (ํฌํ•จ)
to
string (date-time)
No
๊ฒ€์ƒ‰ ์œˆ๋„์šฐ ์ข…๋ฃŒ ์‹œ๊ฐ„ (์ œ์™ธ)
page
integer
No
ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (1๋ถ€ํ„ฐ ์‹œ์ž‘, ๊ธฐ๋ณธ๊ฐ’: 1)
size
integer
No
ํŽ˜์ด์ง€๋‹น ํ•ญ๋ชฉ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 50, ์ตœ๋Œ€: 1000)
sort
string
No
์ •๋ ฌ ์ˆœ์„œ<br/>-ย duration_ascย /ย duration_desc: ์ง€์†์‹œ๊ฐ„ ๊ธฐ์ค€<br/>-ย start_time_ascย /ย start_time_desc: ์‹œ์ž‘ ์‹œ๊ฐ„ ๊ธฐ์ค€ (๊ธฐ๋ณธ๊ฐ’:ย start_time_desc)
{ "total": 500, "page": 1, "size": 50, "items": [ { "timestamp": "2025-01-01T12:00:00Z", "span_id": "span-001", "parent_span_id": null, "name": "GET /api/users", "kind": "SERVER", "duration_ms": 45.2, "status": "OK", "service_name": "user-service", "environment": "prod", "http_method": "GET", "http_path": "/api/users", "http_status_code": 200, "labels": {}, "db_statement": null } ] }
JSON
๋ณต์‚ฌ

GET /services/{serviceName}/endpoints

/resources ์„น์…˜์— ํ•ด๋‹น(ํ˜„์žฌ)
Query Parameter
Type
Required
Description
from
string (date-time)
No
์ง‘๊ณ„ ์œˆ๋„์šฐ ์‹œ์ž‘ ์‹œ๊ฐ„ (ํฌํ•จ)
to
string (date-time)
No
์ง‘๊ณ„ ์œˆ๋„์šฐ ์ข…๋ฃŒ ์‹œ๊ฐ„ (์ œ์™ธ)
environment
string
No
๋ฐฐํฌ ํ™˜๊ฒฝ ํ•„ํ„ฐ
metric
string
No
๋ฉ”ํŠธ๋ฆญ ์ข…๋ฅ˜<br/>-ย request_count: ์š”์ฒญ ์ˆ˜<br/>-ย latency_p95_ms: 95๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„ ์ง€์—ฐ์‹œ๊ฐ„<br/>-ย error_rate: ์—๋Ÿฌ์œจ<br/>(์ƒ๋žต ์‹œ ๋ชจ๋“  ๋ฉ”ํŠธ๋ฆญ ๊ณ„์‚ฐ ๋ฐย request_count๋กœ ์ •๋ ฌ)
sort_by
string
No
์ •๋ ฌ ๊ธฐ์ค€ (request_count,ย latency_p95_ms,ย error_rate, ๊ธฐ๋ณธ๊ฐ’:ย request_count)
limit
integer
No
๋ฐ˜ํ™˜ํ•  ์ตœ๋Œ€ ์—”๋“œํฌ์ธํŠธ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 10, ์ตœ์†Œ: 1)
name_filter
string
No
์—”๋“œํฌ์ธํŠธ ์ด๋ฆ„ ํ•„ํ„ฐ (๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์Œ)
{ "service_name": "user-service", "environment": "prod", "from": "2025-01-01T00:00:00Z", "to": "2025-01-02T00:00:00Z", "endpoints": [ { "endpoint_name": "GET /api/users", "service_name": "user-service", "environment": "prod", "request_count": 5000, "latency_p95_ms": 45.5, "error_rate": 0.01, "labels": { "version": "1.0.0" } } ] }
JSON
๋ณต์‚ฌ

GET /services/{serviceName}/traces

Query Parameter
Type
Required
Description
status
string
No
ํŠธ๋ ˆ์ด์Šค ์ƒํƒœ ํ•„ํ„ฐ (OK,ย ERROR)
min_duration_ms
number
No
์ตœ์†Œ ํŠธ๋ ˆ์ด์Šค ์ง€์†์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
max_duration_ms
number
No
์ตœ๋Œ€ ํŠธ๋ ˆ์ด์Šค ์ง€์†์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
from
string (date-time)
No
๊ฒ€์ƒ‰ ์œˆ๋„์šฐ ์‹œ์ž‘ ์‹œ๊ฐ„ (ํฌํ•จ)
to
string (date-time)
No
๊ฒ€์ƒ‰ ์œˆ๋„์šฐ ์ข…๋ฃŒ ์‹œ๊ฐ„ (์ œ์™ธ)
environment
string
No
๋ฐฐํฌ ํ™˜๊ฒฝ ํ•„ํ„ฐ
page
integer
No
ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (1๋ถ€ํ„ฐ ์‹œ์ž‘, ๊ธฐ๋ณธ๊ฐ’: 1)
size
integer
No
ํŽ˜์ด์ง€๋‹น ํ•ญ๋ชฉ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’: 20, ์ตœ๋Œ€: 200)
sort
string
No
์ •๋ ฌ ์ˆœ์„œ<br/>-ย duration_descย /ย duration_asc: ์ด ํŠธ๋ ˆ์ด์Šค ์ง€์†์‹œ๊ฐ„ ๊ธฐ์ค€<br/>-ย start_time_descย /ย start_time_asc: ์‹œ์ž‘ ์‹œ๊ฐ„ ๊ธฐ์ค€<br/>(๊ธฐ๋ณธ๊ฐ’:ย duration_desc)
{ "total": 100, "page": 1, "size": 20, "traces": [ { "trace_id": "abc123", "root_span_name": "GET /api/users", "status": "OK", "duration_ms": 250.5, "start_time": "2025-01-01T12:00:00Z", "service_name": "user-service", "environment": "prod", "labels": { "user_id": "12345" } } ] }
JSON
๋ณต์‚ฌ

๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ

SpanItem

์ŠคํŒฌ ์ด๋ฒคํŠธ (ํŠธ๋ ˆ์ด์Šค ๋‚ด ๊ฐœ๋ณ„ ์ž‘์—…)
Field
Type
Required
Description
timestamp
string (date-time)
Yes
ํƒ€์ž„์Šคํƒฌํ”„
span_id
string
Yes
์ŠคํŒฌ ID
parent_span_id
string (nullable)
Yes
๋ถ€๋ชจ ์ŠคํŒฌ ID
name
string
Yes
์ŠคํŒฌ ์ด๋ฆ„
kind
string
Yes
์ŠคํŒฌ ์ข…๋ฅ˜ (SERVER,ย CLIENT,ย INTERNAL)
duration_ms
number
Yes
์ง€์†์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
status
string
Yes
์ƒํƒœ (OK,ย ERROR)
service_name
string
Yes
์„œ๋น„์Šค ์ด๋ฆ„
environment
string
Yes
๋ฐฐํฌ ํ™˜๊ฒฝ
http_method
string (nullable)
No
HTTP ๋ฉ”์„œ๋“œ
http_path
string (nullable)
No
HTTP ๊ฒฝ๋กœ
http_status_code
integer (nullable)
No
HTTP ์ƒํƒœ ์ฝ”๋“œ
labels
object
No
์ถ”๊ฐ€ ๋ ˆ์ด๋ธ”
db_statement
string (nullable)
No
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฌธ

LogItem

๋กœ๊ทธ ์ด๋ฒคํŠธ
Field
Type
Required
Description
timestamp
string (date-time)
Yes
ํƒ€์ž„์Šคํƒฌํ”„
level
string
Yes
๋กœ๊ทธ ๋ ˆ๋ฒจ (DEBUG,ย INFO,ย WARN,ย ERROR)
message
string
Yes
๋กœ๊ทธ ๋ฉ”์‹œ์ง€
service_name
string
Yes
์„œ๋น„์Šค ์ด๋ฆ„
span_id
string (nullable)
No
์ŠคํŒฌ ID
trace_id
string (nullable)
No
ํŠธ๋ ˆ์ด์Šค ID
labels
object
No
์ถ”๊ฐ€ ๋ ˆ์ด๋ธ”

ServiceSummary

์„œ๋น„์Šค ์ง‘๊ณ„ ๋ฉ”ํŠธ๋ฆญ
Field
Type
Required
Description
service_name
string
Yes
์„œ๋น„์Šค ์ด๋ฆ„
environment
string
Yes
๋ฐฐํฌ ํ™˜๊ฒฝ
request_count
number
Yes
์ด ์š”์ฒญ ์ˆ˜
latency_p95_ms
number
Yes
95๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„ ์ง€์—ฐ์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
error_rate
number
Yes
์—๋Ÿฌ์œจ (0~1)
labels
object (nullable)
No
์ถ”๊ฐ€ ๋ ˆ์ด๋ธ”

EndpointMetrics

์—”๋“œํฌ์ธํŠธ ๋ฉ”ํŠธ๋ฆญ
Field
Type
Required
Description
endpoint_name
string
Yes
์—”๋“œํฌ์ธํŠธ ์ด๋ฆ„
service_name
string
Yes
์„œ๋น„์Šค ์ด๋ฆ„
environment
string
Yes
๋ฐฐํฌ ํ™˜๊ฒฝ
request_count
number
Yes
์š”์ฒญ ์ˆ˜
latency_p95_ms
number
Yes
95๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„ ์ง€์—ฐ์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
error_rate
number
Yes
์—๋Ÿฌ์œจ (0~1)
labels
object (nullable)
No
์ถ”๊ฐ€ ๋ ˆ์ด๋ธ”

TraceSummary

ํŠธ๋ ˆ์ด์Šค ์š”์•ฝ
Field
Type
Required
Description
trace_id
string
Yes
ํŠธ๋ ˆ์ด์Šค ID
root_span_name
string
Yes
๋ฃจํŠธ ์ŠคํŒฌ ์ด๋ฆ„
status
string
Yes
์ƒํƒœ (OK,ย ERROR)
duration_ms
number
Yes
์ด ์ง€์†์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ)
start_time
string (date-time)
Yes
์‹œ์ž‘ ์‹œ๊ฐ„
service_name
string
Yes
์„œ๋น„์Šค ์ด๋ฆ„
environment
string
Yes
๋ฐฐํฌ ํ™˜๊ฒฝ
labels
object (nullable)
No
์ถ”๊ฐ€ ๋ ˆ์ด๋ธ”